本文整理汇总了C++中common::InSaveFile::readUint16LE方法的典型用法代码示例。如果您正苦于以下问题:C++ InSaveFile::readUint16LE方法的具体用法?C++ InSaveFile::readUint16LE怎么用?C++ InSaveFile::readUint16LE使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类common::InSaveFile
的用法示例。
在下文中一共展示了InSaveFile::readUint16LE方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
bool GameDatabaseV3::getSavegameDescription(const char *filename, Common::String &description, int16 version) {
Common::InSaveFile *in;
char desc[64];
if (!(in = g_system->getSavefileManager()->openForLoading(filename))) {
return false;
}
uint32 header = in->readUint32BE();
if (header != MKTAG('S','G','A','M')) {
warning("Save game header missing");
delete in;
return false;
}
int32 size = in->readUint32LE();
if (size != in->size() - 64) {
warning("Unexpected save game size. Expected %d, size is %d (file size - 64)", size, in->size() - 64);
delete in;
return false;
}
int16 saveVersion = in->readUint16LE();
if (saveVersion != version) {
warning("Save game %s was saved with a different version of the game. Game version is %d, save version is %d", filename, version, saveVersion);
delete in;
return false;
}
in->read(desc, 64);
description = desc;
delete in;
return true;
}
示例2: loadGame
bool LabEngine::loadGame(int slot) {
Common::String fileName = generateSaveFileName(slot);
Common::SaveFileManager *saveFileManager = _system->getSavefileManager();
Common::InSaveFile *file = saveFileManager->openForLoading(fileName);
if (!file)
return false;
SaveGameHeader header;
if (!readSaveGameHeader(file, header)) {
delete file;
return false;
}
_roomNum = file->readUint16LE();
_music->checkRoomMusic(1, _roomNum);
_direction = file->readUint16LE();
setQuarters(file->readUint16LE());
// Conditions
for (int i = 0; i < _conditions->_lastElement / (8 * 2); i++)
_conditions->_array[i] = file->readUint16LE();
// Rooms found
for (int i = 0; i < _roomsFound->_lastElement / (8 * 2); i++)
_roomsFound->_array[i] = file->readUint16LE();
_specialLocks->load(file);
// Breadcrumbs
for (int i = 0; i < MAX_CRUMBS; i++) {
_breadCrumbs[i]._crumbRoomNum = file->readUint16LE();
_breadCrumbs[i]._crumbDirection = file->readUint16LE();
}
_droppingCrumbs = (_breadCrumbs[0]._crumbRoomNum != 0);
_followingCrumbs = false;
for (int i = 0; i < MAX_CRUMBS; i++) {
if (_breadCrumbs[i]._crumbRoomNum == 0)
break;
_numCrumbs = i;
}
delete file;
_curFileName = " ";
_closeDataPtr = nullptr;
_followingCrumbs = false;
_graphics->_longWinInFront = false;
_event->initMouse();
_mainDisplay = true;
_alternate = false;
_event->simulateEvent();
_graphics->screenUpdate();
return true;
}
示例3: loadGameState
Common::Error ToucheEngine::loadGameState(int num) {
bool loadOk = false;
Common::String gameStateFileName = generateGameStateFileName(_targetName.c_str(), num);
Common::InSaveFile *f = _saveFileMan->openForLoading(gameStateFileName);
if (f) {
uint16 version = f->readUint16LE();
if (version < kCurrentGameStateVersion) {
warning("Unsupported gamestate version %d (index %d)", version, num);
} else {
f->skip(2 + kGameStateDescriptionLen);
loadGameStateData(f);
if (f->err() || f->eos()) {
warning("Can't read file '%s'", gameStateFileName.c_str());
} else {
loadOk = true;
}
}
delete f;
}
return loadOk ? Common::kNoError : Common::kUnknownError;
}
示例4:
int16 GameDatabaseV3::loadgame(const char *filename, int16 version) {
Common::InSaveFile *in;
uint32 expectedSize = 4 + 4 + 2 + _gameStateSize;
if (!(in = g_system->getSavefileManager()->openForLoading(filename))) {
warning("Can't open file '%s', game not loaded", filename);
return 1;
}
uint32 header = in->readUint32BE();
if (header != MKTAG('S','G','A','M')) {
warning("Save game header missing");
delete in;
return 1;
}
uint32 size = in->readUint32LE();
int16 saveVersion = in->readUint16LE();
if (saveVersion != version) {
warning("Save game %s was saved with a different version of the game. Game version is %d, save version is %d", filename, version, saveVersion);
delete in;
return 1;
}
if (size != expectedSize) {
warning("Unexpected save game size. Expected %d, size is %d", expectedSize, size);
delete in;
return 1;
}
in->skip(64); // skip savegame description
in->read(_gameState, _gameStateSize);
delete in;
_objectPropertyCache.clear(); // make sure to clear cache
return 0;
}
示例5: loadgame
void ToltecsEngine::loadgame(const char *filename) {
Common::InSaveFile *in;
if (!(in = g_system->getSavefileManager()->openForLoading(filename))) {
warning("Can't open file '%s', game not loaded", filename);
return;
}
SaveHeader header;
kReadSaveHeaderError errorCode = readSaveHeader(in, false, header);
if (errorCode != kRSHENoError) {
warning("Error loading savegame '%s'", filename);
delete in;
return;
}
_sound->stopAll();
_music->stopSequence();
g_engine->setTotalPlayTime(header.playTime * 1000);
_cameraX = in->readUint16LE();
_cameraY = in->readUint16LE();
_cameraHeight = in->readUint16LE();
_guiHeight = in->readUint16LE();
_sceneWidth = in->readUint16LE();
_sceneHeight = in->readUint16LE();
_sceneResIndex = in->readUint32LE();
_walkSpeedX = in->readUint16LE();
_walkSpeedY = in->readUint16LE();
_counter01 = in->readUint32LE();
_counter02 = in->readUint32LE();
_movieSceneFlag = in->readByte() != 0;
_flag01 = in->readByte();
_mouseX = in->readUint16LE();
_mouseY = in->readUint16LE();
_mouseDisabled = in->readUint16LE();
_system->warpMouse(_mouseX, _mouseY);
_system->showMouse(_mouseDisabled == 0);
_palette->loadState(in);
_script->loadState(in);
_anim->loadState(in);
_screen->loadState(in);
if (header.version >= 2)
_sound->loadState(in);
if (header.version >= 3)
_music->loadState(in);
delete in;
loadScene(_sceneResIndex);
_newCameraX = _cameraX;
_newCameraY = _cameraY;
}
示例6: loadgame
void BbvsEngine::loadgame(const char *filename) {
Common::InSaveFile *in;
if (!(in = g_system->getSavefileManager()->openForLoading(filename))) {
warning("Can't open file '%s', game not loaded", filename);
return;
}
SaveHeader header;
kReadSaveHeaderError errorCode = readSaveHeader(in, false, header);
if (errorCode != kRSHENoError) {
warning("Error loading savegame '%s'", filename);
delete in;
return;
}
g_engine->setTotalPlayTime(header.playTime * 1000);
memset(_sceneObjects, 0, sizeof(_sceneObjects));
for (int i = 0; i < kSceneObjectsCount; ++i) {
_sceneObjects[i].walkDestPt.x = -1;
_sceneObjects[i].walkDestPt.y = -1;
}
_currSceneNum = 0;
_newSceneNum = in->readUint32LE();
initScene(false);
_prevSceneNum = in->readUint32LE();
_gameState = in->readUint32LE();
_mouseCursorSpriteIndex = in->readUint32LE();
_mousePos.x = in->readUint16LE();
_mousePos.y = in->readUint16LE();
_currVerbNum = in->readUint32LE();
_activeItemType = in->readUint32LE();
_activeItemIndex = in->readUint32LE();
_verbPos.x = in->readUint16LE();
_verbPos.y = in->readUint16LE();
_inventoryButtonIndex = in->readUint32LE();
_currInventoryItem = in->readUint32LE();
_currTalkObjectIndex = in->readUint32LE();
_currCameraNum = in->readUint32LE();
_cameraPos.x = in->readUint16LE();
_cameraPos.y = in->readUint16LE();
_newCameraPos.x = in->readUint16LE();
_newCameraPos.y = in->readUint16LE();
_dialogSlotCount = in->readUint32LE();
_walkMousePos.x = in->readUint16LE();
_walkMousePos.y = in->readUint16LE();
in->read(_backgroundSoundsActive, kSceneSoundsCount);
in->read(_inventoryItemStatus, kInventoryItemStatusCount);
in->read(_dialogItemStatus, kDialogItemStatusCount);
in->read(_gameVars, kGameVarsCount);
in->read(_sceneVisited, kSceneVisitedCount);
for (int i = 0; i < _gameModule->getSceneObjectDefsCount(); ++i) {
SceneObject *obj = &_sceneObjects[i];
obj->x = in->readUint32LE();
obj->y = in->readUint32LE();
obj->animIndex = in->readUint32LE();
obj->frameIndex = in->readUint32LE();
obj->frameTicks = in->readUint32LE();
obj->walkCount = in->readUint32LE();
obj->xIncr = in->readUint32LE();
obj->yIncr = in->readUint32LE();
obj->turnValue = in->readUint32LE();
obj->turnCount = in->readUint32LE();
obj->turnTicks = in->readUint32LE();
obj->walkDestPt.x = in->readUint16LE();
obj->walkDestPt.y = in->readUint16LE();
obj->anim = obj->animIndex > 0 ? _gameModule->getAnimation(obj->animIndex) : 0;
}
updateWalkableRects();
// Restart scene background sounds
for (int i = 0; i < _gameModule->getSceneSoundsCount(); ++i) {
if (_backgroundSoundsActive[i]) {
SceneSound *sceneSound = _gameModule->getSceneSound(i);
playSound(sceneSound->soundNum, true);
}
}
_currAction = 0;
_currActionCommandIndex = -1;
delete in;
}