diff options
Diffstat (limited to 'engines/sherlock/saveload.cpp')
-rw-r--r-- | engines/sherlock/saveload.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/engines/sherlock/saveload.cpp b/engines/sherlock/saveload.cpp index ce6f32dcde..45a4eedb10 100644 --- a/engines/sherlock/saveload.cpp +++ b/engines/sherlock/saveload.cpp @@ -67,7 +67,7 @@ void SaveManager::createSavegameList() { SaveStateList saveList = getSavegameList(_target); for (uint idx = 0; idx < saveList.size(); ++idx) { - int slot = saveList[idx].getSaveSlot() - 1; + int slot = saveList[idx].getSaveSlot(); if (slot >= 0 && slot < MAX_SAVEGAME_SLOTS) _savegames[slot] = saveList[idx].getDescription(); } @@ -89,7 +89,7 @@ SaveStateList SaveManager::getSavegameList(const Common::String &target) { Common::SaveFileManager *saveFileMan = g_system->getSavefileManager(); Common::StringArray filenames; Common::String saveDesc; - Common::String pattern = Common::String::format("%s.0??", target.c_str()); + Common::String pattern = Common::String::format("%s.0##", target.c_str()); SherlockSavegameHeader header; filenames = saveFileMan->listSavefiles(pattern); @@ -201,6 +201,7 @@ void SaveManager::createThumbnail() { } void SaveManager::loadGame(int slot) { + Events &events = *_vm->_events; Common::InSaveFile *saveFile = g_system->getSavefileManager()->openForLoading( generateSaveName(slot)); if (!saveFile) @@ -222,9 +223,11 @@ void SaveManager::loadGame(int slot) { synchronize(s); delete saveFile; + events.clearEvents(); } void SaveManager::saveGame(int slot, const Common::String &name) { + Events &events = *_vm->_events; Common::OutSaveFile *out = g_system->getSavefileManager()->openForSaving( generateSaveName(slot)); @@ -239,6 +242,7 @@ void SaveManager::saveGame(int slot, const Common::String &name) { out->finalize(); delete out; + events.clearEvents(); } Common::String SaveManager::generateSaveName(int slot) { |