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 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; }
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 PictureObject::load(MfcArchive &file, bool bigPicture) { debug(5, "PictureObject::load()"); GameObject::load(file); if (bigPicture) _picture = new BigPicture(); else _picture = new Picture(); _picture->load(file); _pictureObject2List = new Common::Array<GameObject *>; int count = file.readUint16LE(); if (count > 0) { GameObject *o = new GameObject(); o->load(file); _pictureObject2List->push_back(o); } _ox2 = _ox; _oy2 = _oy; #if 0 _picture->displayPicture(); #endif 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 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 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 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 GameLoader::load(MfcArchive &file) { debugC(1, kDebugLoading, "GameLoader::load()"); _gameName = file.readPascalString(); debugC(1, kDebugLoading, "_gameName: %s", _gameName.c_str()); _gameProject = new GameProject(); _gameProject->load(file); g_fp->_gameProject = _gameProject; if (g_fp->_gameProjectVersion < 12) { error("Old gameProjectVersion: %d", g_fp->_gameProjectVersion); } _gameName = file.readPascalString(); debugC(1, kDebugLoading, "_gameName: %s", _gameName.c_str()); _inventory.load(file); _interactionController->load(file); debugC(1, kDebugLoading, "sceneTag count: %d", _gameProject->_sceneTagList->size()); _sc2array.resize(_gameProject->_sceneTagList->size()); int i = 0; for (SceneTagList::const_iterator it = _gameProject->_sceneTagList->begin(); it != _gameProject->_sceneTagList->end(); ++it, i++) { char tmp[12]; snprintf(tmp, 11, "%04d.sc2", it->_sceneId); debugC(1, kDebugLoading, "sc: %s", tmp); _sc2array[i].loadFile((const char *)tmp); } _preloadItems.load(file); _field_FA = file.readUint16LE(); _field_F8 = file.readUint16LE(); debugC(1, kDebugLoading, "_field_FA: %d\n_field_F8: %d", _field_FA, _field_F8); _gameVar = (GameVar *)file.readClass(); return true; }
bool MessageQueue::load(MfcArchive &file) { debug(5, "MessageQueue::load()"); _dataId = file.readUint16LE(); int count = file.readUint16LE(); assert(g_fullpipe->_gameProjectVersion >= 12); _queueName = file.readPascalString(); for (int i = 0; i < count; i++) { ExCommand *tmp = (ExCommand *)file.readClass(); _exCommands.push_back(tmp); } _id = -1; _field_14 = 0; _parId = 0; _isFinished = 0; return true; }
bool PicAniInfo::load(MfcArchive &file) { debug(5, "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.readUint32LE(); oy = file.readUint32LE(); 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 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 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 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; }