diff options
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; } } |