本文整理汇总了C++中MfcArchive类的典型用法代码示例。如果您正苦于以下问题:C++ MfcArchive类的具体用法?C++ MfcArchive怎么用?C++ MfcArchive使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MfcArchive类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: debugC
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;
}
示例2: load
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;
}
示例3: load
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;
}
示例4: InventoryItem
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;
}
示例5: load
bool ObjstateCommand::load(MfcArchive &file) {
debug(5, "ObjStateCommand::load()");
_objtype = kObjTypeObjstateCommand;
_cmd.load(file);
_value = file.readUint32LE();
_objCommandName = file.readPascalString();
return true;
}
示例6: load
bool ObArray::load(MfcArchive &file) {
debugC(5, kDebugLoading, "ObArray::load()");
int count = file.readCount();
resize(count);
for (int i = 0; i < count; i++) {
CObject *t = file.readClass();
push_back(*t);
}
return true;
}
示例7: load
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;
}
示例8: load
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;
}
示例9: load
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;
}
示例10: load
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;
}
示例11: load
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;
}
示例12: save
void GameVar::save(MfcArchive &file) {
file.writePascalString(_varName);
file.writeUint32LE(_varType);
switch (_varType) {
case 0:
file.writeUint32LE(_value.intValue);
break;
case 1:
file.writeUint32LE(_value.intValue); // FIXME
break;
case 2:
file.writePascalString(_value.stringValue);
break;
default:
error("Unknown var type: %d (0x%x)", _varType, _varType);
}
file.writeObject(_parentVarObj);
file.writeObject(_prevVarObj);
file.writeObject(_nextVarObj);
file.writeObject(_field_14);
file.writeObject(_subVars);
}
示例13: load
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;
}
示例14: warning
bool GameLoader::writeSavegame(Scene *sc, const char *fname) {
GameVar *v = _gameVar->getSubVarByName("OBJSTATES")->getSubVarByName("SAVEGAME");
if (!v) {
v = _gameVar->getSubVarByName("OBJSTATES")->addSubVarAsInt("SAVEGAME", 0);
if (!v) {
warning("No state to save");
return false;
}
}
SaveHeader header;
v->setSubVarAsInt("Scene", sc->_sceneId);
saveScenePicAniInfos(sc->_sceneId);
memset(&header, 0, sizeof(header));
header.version = 48; // '0'
strcpy(header.magic, "FullPipe Savegame");
header.updateCounter = _updateCounter;
header.unkField = 1;
Common::MemoryWriteStreamDynamic stream;
MfcArchive *archive = new MfcArchive(&stream);
v = _gameVar->getSubVarByName("OBJSTATES");
GameVar *nxt = 0;
GameVar *prv = 0;
GameVar *par;
if (v) {
nxt = v->_nextVarObj;
prv = v->_prevVarObj;
par = v->_parentVarObj;
v->_parentVarObj = 0;
v->_nextVarObj = 0;
v->_prevVarObj = 0;
}
archive->writeObject(v);
if (v) {
v->_parentVarObj = par;
v->_nextVarObj = nxt;
v->_prevVarObj = prv;
}
getGameLoaderInventory()->savePartial(*archive);
archive->writeUint32LE(_sc2array.size());
debugC(3, kDebugLoading, "Saving %d infos", _sc2array.size());
for (uint i = 0; i < _sc2array.size(); i++) {
archive->writeUint32LE(_sc2array[i]._picAniInfosCount);
if (_sc2array[i]._picAniInfosCount)
debugC(3, kDebugLoading, "Count %d: %d", i, _sc2array[i]._picAniInfosCount);
for (uint j = 0; j < _sc2array[i]._picAniInfosCount; j++) {
_sc2array[i]._picAniInfos[j]->save(*archive);
}
}
header.encSize = stream.size();
// Now obfuscate the data
for (uint i = 0; i < header.encSize; i++)
stream.getData()[i] += i & 0x7f;
if (_savegameCallback)
_savegameCallback(archive, true);
// Now dump it into save file
Common::OutSaveFile *saveFile = g_system->getSavefileManager()->openForSaving(fname);
if (!saveFile) {
warning("Cannot open file for writing: %s", fname);
return false;
}
saveFile->writeUint32LE(header.version);
saveFile->write(header.magic, 32);
saveFile->writeUint32LE(header.updateCounter);
saveFile->writeUint32LE(header.unkField);
saveFile->writeUint32LE(header.encSize);
debugC(3, kDebugLoading, "version: %d magic: %s updateCounter: %d unkField: %d encSize: %d, pos: %d",
header.version, header.magic, header.updateCounter, header.unkField, header.encSize, saveFile->pos());
saveFile->write(stream.getData(), stream.size());
uint headerPos = saveFile->pos();
FullpipeSavegameHeader header2;
strcpy(header2.id, "SVMCR");
header2.version = FULLPIPE_SAVEGAME_VERSION;
//.........这里部分代码省略.........
示例15: load
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;
}