diff options
author | Strangerke | 2016-04-11 00:17:17 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-05-10 09:54:21 +0200 |
commit | 192bc349350e33e44d15f59e548dcecd4a7b253c (patch) | |
tree | 82a2abdc026342c9a4a8fff09bb0cb6c0e85f7f1 /engines/gnap | |
parent | ff43147ee3e7c80d156cd5f145519cfb33a50811 (diff) | |
download | scummvm-rg350-192bc349350e33e44d15f59e548dcecd4a7b253c.tar.gz scummvm-rg350-192bc349350e33e44d15f59e548dcecd4a7b253c.tar.bz2 scummvm-rg350-192bc349350e33e44d15f59e548dcecd4a7b253c.zip |
GNAP: Fix savegames
Diffstat (limited to 'engines/gnap')
-rw-r--r-- | engines/gnap/menu.cpp | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/engines/gnap/menu.cpp b/engines/gnap/menu.cpp index e8de9da3e4..1ffd7ab1c5 100644 --- a/engines/gnap/menu.cpp +++ b/engines/gnap/menu.cpp @@ -547,6 +547,7 @@ void GnapEngine::updateMenuStatusMainMenu() { } } else { // Save / Load +#if 1 _timers[2] = 10; playSound(0x108F4, 0); @@ -568,12 +569,15 @@ void GnapEngine::updateMenuStatusMainMenu() { loadGameState(savegameId); _wasSavegameLoaded = true; _menuDone = true; + _sceneDone = true; + playSound(0x108F4, 0); + } else { + playSound(0x108F5, 0); } } } - -#if 0 -// Original Code +#else + // Original Code _timers[2] = 10; playSound(0x108F4, 0); _gameSys->removeSpriteDrawItem(_menuSprite1, 262); @@ -628,14 +632,21 @@ Common::Error GnapEngine::saveGameState(int slot, const Common::String &desc) { } void GnapEngine::synchronize(Common::Serializer &s) { - s.syncAsSint32LE(_newSceneNum); - s.syncAsSint32LE(_currentSceneNum); - s.syncAsSint32LE(_newCursorValue); - s.syncAsUint32LE(_inventory); - s.syncAsUint32LE(_gameFlags); - - if (s.isLoading() && isFlag(kGFUnk24)) { - _timers[9] = 600; + if (s.isSaving()) { + s.syncAsSint32LE(_currentSceneNum); + s.syncAsSint32LE(_prevSceneNum); + s.syncAsSint32LE(_cursorValue); + s.syncAsUint32LE(_inventory); + s.syncAsUint32LE(_gameFlags); + } else { + s.syncAsSint32LE(_newSceneNum); + s.syncAsSint32LE(_currentSceneNum); + s.syncAsSint32LE(_newCursorValue); + s.syncAsUint32LE(_inventory); + s.syncAsUint32LE(_gameFlags); + + if (isFlag(kGFUnk24)) + _timers[9] = 600; } } |