bool ExCommand::load(MfcArchive &file) { debugC(5, kDebugLoading, "ExCommand::load()"); _parentId = file.readUint16LE(); _messageKind = file.readUint32LE(); _x = file.readSint32LE(); _y = file.readSint32LE(); _field_14 = file.readUint32LE(); _sceneClickX = file.readUint32LE(); _sceneClickY = file.readUint32LE(); _field_20 = file.readUint32LE(); _field_24 = file.readUint32LE(); _param = file.readUint32LE(); _field_2C = file.readUint32LE(); _field_30 = file.readUint32LE(); _field_34 = file.readUint32LE(); _messageNum = file.readUint32LE(); _field_3C = 0; if (g_fp->_gameProjectVersion >= 12) { _excFlags = file.readUint32LE(); _parId = file.readUint32LE(); } _objtype = kObjTypeExCommand; return true; }
bool GameProject::load(MfcArchive &file) { debug(5, "GameProject::load()"); _field_4 = 0; _headerFilename = 0; _field_10 = 12; g_fp->_gameProjectVersion = file.readUint32LE(); g_fp->_pictureScale = file.readUint16LE(); g_fp->_scrollSpeed = file.readUint32LE(); _headerFilename = file.readPascalString(); debug(1, "_gameProjectVersion = %d", g_fp->_gameProjectVersion); debug(1, "_pictureScale = %d", g_fp->_pictureScale); debug(1, "_scrollSpeed = %d", g_fp->_scrollSpeed); debug(1, "_headerFilename = %s", _headerFilename); _sceneTagList = new SceneTagList(); _sceneTagList->load(file); if (g_fp->_gameProjectVersion >= 3) _field_4 = file.readUint32LE(); if (g_fp->_gameProjectVersion >= 5) { file.readUint32LE(); file.readUint32LE(); } return true; }
bool Sc2::load(MfcArchive &file) { debugC(5, kDebugLoading, "Sc2::load()"); _sceneId = file.readUint16LE(); _motionController = (MotionController *)file.readClass(); _count1 = file.readUint32LE(); debugC(4, kDebugLoading, "count1: %d", _count1); if (_count1 > 0) { _data1 = (int32 *)malloc(_count1 * sizeof(int32)); for (int i = 0; i < _count1; i++) { _data1[i] = file.readUint32LE(); } } else { _data1 = 0; } _defPicAniInfosCount = file.readUint32LE(); debugC(4, kDebugLoading, "defPicAniInfos: %d", _defPicAniInfosCount); if (_defPicAniInfosCount > 0) { _defPicAniInfos = (PicAniInfo **)malloc(_defPicAniInfosCount * sizeof(PicAniInfo *)); for (int i = 0; i < _defPicAniInfosCount; i++) { _defPicAniInfos[i] = new PicAniInfo(); _defPicAniInfos[i]->load(file); } } else { _defPicAniInfos = 0; } _picAniInfos = 0; _picAniInfosCount = 0; _entranceDataCount = file.readUint32LE(); debugC(4, kDebugLoading, "_entranceData: %d", _entranceDataCount); if (_entranceDataCount > 0) { _entranceData = (EntranceInfo **)malloc(_entranceDataCount * sizeof(EntranceInfo *)); for (int i = 0; i < _entranceDataCount; i++) { _entranceData[i] = new EntranceInfo(); _entranceData[i]->load(file); } } else { _entranceData = 0; } if (file.size() - file.pos() > 0) error("Sc2::load(): (%d bytes left)", file.size() - file.pos()); return true; }
bool EntranceInfo::load(MfcArchive &file) { debug(5, "EntranceInfo::load()"); _sceneId = file.readUint32LE(); _field_4 = file.readUint32LE(); _messageQueueId = file.readUint32LE(); file.read(_gap_C, 292); // FIXME, Ugh _field_130 = file.readUint32LE(); return true; }
bool EntranceInfo::load(MfcArchive &file) { debugC(5, kDebugLoading, "EntranceInfo::load()"); _sceneId = file.readUint32LE(); _field_4 = file.readUint32LE(); _messageQueueId = file.readUint32LE(); file.skip(292); // FIXME: Ugh _field_130 = file.readUint32LE(); return true; }
bool PreloadItems::load(MfcArchive &file) { debugC(5, kDebugLoading, "PreloadItems::load()"); int count = file.readCount(); clear(); for (int i = 0; i < count; i++) { PreloadItem *t = new PreloadItem(); t->preloadId1 = file.readUint32LE(); t->preloadId2 = file.readUint32LE(); t->sceneId = file.readUint32LE(); t->param = file.readSint32LE(); push_back(t); } return true; }
bool GameObject::load(MfcArchive &file) { debug(5, "GameObject::load()"); _okeyCode = 0; _flags = 0; _field_20 = 0; _id = file.readUint16LE(); _objectName = file.readPascalString(); _ox = file.readUint32LE(); _oy = file.readUint32LE(); _priority = file.readUint16LE(); if (g_fp->_gameProjectVersion >= 11) { _field_8 = file.readUint32LE(); } return true; }
bool Interaction::load(MfcArchive &file) { debug(5, "Interaction::load()"); _objectId1 = file.readUint16LE(); _objectId2 = file.readUint16LE(); _staticsId1 = file.readUint16LE(); _staticsId2 = file.readUint16LE(); _objectId3 = file.readUint16LE(); _objectState2 = file.readUint32LE(); _objectState1 = file.readUint32LE(); _xOffs = file.readUint32LE(); _yOffs = file.readUint32LE(); _sceneId = file.readUint32LE(); _flags = file.readUint32LE(); _actionName = file.readPascalString(); _messageQueue = (MessageQueue *)file.readClass(); return true; }
bool PicAniInfo::load(MfcArchive &file) { debugC(5, kDebugLoading, "PicAniInfo::load()"); type = file.readUint32LE(); objectId = file.readUint16LE(); field_6 = file.readUint16LE(); field_8 = file.readUint32LE(); sceneId = file.readUint16LE(); field_E = file.readUint16LE(); ox = file.readSint32LE(); oy = file.readSint32LE(); priority = file.readUint32LE(); staticsId = file.readUint16LE(); movementId = file.readUint16LE(); dynamicPhaseIndex = file.readUint16LE(); flags = file.readUint16LE(); field_24 = file.readUint32LE(); someDynamicPhaseIndex = file.readUint32LE(); return true; }
bool Inventory2::loadPartial(MfcArchive &file) { // Inventory2_SerializePartially int numInvs = file.readUint32LE(); for (int i = 0; i < numInvs; i++) { InventoryItem *t = new InventoryItem(); t->itemId = file.readUint16LE(); t->count = file.readUint16LE(); _inventoryItems.push_back(t); } return true; }
bool Inventory::load(MfcArchive &file) { debug(5, "Inventory::load()"); _sceneId = file.readUint16LE(); int numInvs = file.readUint32LE(); for (int i = 0; i < numInvs; i++) { InventoryPoolItem *t = new InventoryPoolItem(); t->id = file.readUint16LE(); t->pictureObjectNormal = file.readUint16LE(); t->pictureObjectId1 = file.readUint16LE(); t->pictureObjectHover = file.readUint16LE(); t->pictureObjectSelected = file.readUint16LE(); t->flags = file.readUint32LE(); t->field_C = 0; t->field_A = -536; _itemsPool.push_back(t); } return true; }
bool GameVar::load(MfcArchive &file) { _varName = file.readPascalString(); _varType = file.readUint32LE(); debugCN(6, kDebugLoading, "[%03d] ", file.getLevel()); for (int i = 0; i < file.getLevel(); i++) debugCN(6, kDebugLoading, " "); debugCN(6, kDebugLoading, "<%s>: ", transCyrillic(_varName)); switch (_varType) { case 0: _value.intValue = file.readUint32LE(); debugC(6, kDebugLoading, "d --> %d", _value.intValue); break; case 1: _value.intValue = file.readUint32LE(); // FIXME debugC(6, kDebugLoading, "f --> %f", _value.floatValue); break; case 2: { Common::String str = file.readPascalString(); _value.stringValue = (char *)calloc(str.size() + 1, 1); Common::strlcpy(_value.stringValue, str.c_str(), str.size() + 1); debugC(6, kDebugLoading, "s --> %s", _value.stringValue); } break; default: error("Unknown var type: %d (0x%x)", _varType, _varType); } file.incLevel(); _parentVarObj = file.readClass<GameVar>(); _prevVarObj = file.readClass<GameVar>(); _nextVarObj = file.readClass<GameVar>(); _field_14 = file.readClass<GameVar>(); _subVars = file.readClass<GameVar>(); file.decLevel(); return true; }
bool ObjstateCommand::load(MfcArchive &file) { debug(5, "ObjStateCommand::load()"); _objtype = kObjTypeObjstateCommand; _cmd.load(file); _value = file.readUint32LE(); _objCommandName = file.readPascalString(); return true; }
bool GameVar::load(MfcArchive &file) { _varName = file.readPascalString(); _varType = file.readUint32LE(); debugN(6, "[%03d] ", file.getLevel()); for (int i = 0; i < file.getLevel(); i++) debugN(6, " "); debugN(6, "<%s>: ", transCyrillic((byte *)_varName)); switch (_varType) { case 0: _value.intValue = file.readUint32LE(); debug(6, "d --> %d", _value.intValue); break; case 1: _value.intValue = file.readUint32LE(); // FIXME debug(6, "f --> %f", _value.floatValue); break; case 2: _value.stringValue = file.readPascalString(); debug(6, "s --> %s", _value.stringValue); break; default: error("Unknown var type: %d (0x%x)", _varType, _varType); } file.incLevel(); _parentVarObj = (GameVar *)file.readClass(); _prevVarObj = (GameVar *)file.readClass(); _nextVarObj = (GameVar *)file.readClass(); _field_14 = (GameVar *)file.readClass(); _subVars = (GameVar *)file.readClass(); file.decLevel(); return true; }
bool Background::load(MfcArchive &file) { debug(5, "Background::load()"); _bgname = file.readPascalString(); int count = file.readUint16LE(); for (int i = 0; i < count; i++) { PictureObject *pct = new PictureObject(); pct->load(file, i == 0); addPictureObject(pct); } assert(g_fp->_gameProjectVersion >= 4); _bigPictureArray1Count = file.readUint32LE(); assert(g_fp->_gameProjectVersion >= 5); _bigPictureArray2Count = file.readUint32LE(); _bigPictureArray = (BigPicture ***)calloc(_bigPictureArray1Count, sizeof(BigPicture **)); debug(6, "bigPictureArray[%d][%d]", _bigPictureArray1Count, _bigPictureArray2Count); for (int i = 0; i < _bigPictureArray1Count; i++) { _bigPictureArray[i] = (BigPicture **)calloc(_bigPictureArray2Count, sizeof(BigPicture *)); for (int j = 0; j < _bigPictureArray2Count; j++) { _bigPictureArray[i][j] = new BigPicture(); _bigPictureArray[i][j]->load(file); } } return true; }
bool SoundList::load(MfcArchive &file, char *fname) { debug(5, "SoundList::load()"); _soundItemsCount = file.readUint32LE(); _soundItems = (Sound **)calloc(_soundItemsCount, sizeof(Sound *)); if (fname) { _libHandle = (NGIArchive *)makeNGIArchive(fname); } else { _libHandle = 0; } for (int i = 0; i < _soundItemsCount; i++) { Sound *snd = new Sound(); _soundItems[i] = snd; snd->load(file, _libHandle); } return true; }
bool Sound::load(MfcArchive &file, NGIArchive *archive) { debug(5, "Sound::load()"); MemoryObject::load(file); _id = file.readUint32LE(); _description = file.readPascalString(); assert(g_fp->_gameProjectVersion >= 6); _objectId = file.readUint16LE(); if (archive && archive->hasFile(_memfilename)) { Common::SeekableReadStream *s = archive->createReadStreamForMember(_memfilename); _soundData = (byte *)calloc(s->size(), 1); s->read(_soundData, s->size()); delete s; } return true; }
bool ExCommand::load(MfcArchive &file) { debug(5, "ExCommand::load()"); _parentId = file.readUint16LE(); _messageKind = file.readUint32LE(); _x = file.readUint32LE(); _y = file.readUint32LE(); _field_14 = file.readUint32LE(); _sceneClickX = file.readUint32LE(); _sceneClickY = file.readUint32LE(); _field_20 = file.readUint32LE(); _field_24 = file.readUint32LE(); _keyCode = file.readUint32LE(); _field_2C = file.readUint32LE(); _field_30 = file.readUint32LE(); _field_34 = file.readUint32LE(); _messageNum = file.readUint32LE(); _field_3C = 0; if (g_fullpipe->_gameProjectVersion >= 12) { _excFlags = file.readUint32LE(); _parId = file.readUint32LE(); } return true; }