diff options
author | Paul Gilbert | 2018-01-27 21:55:26 -0500 |
---|---|---|
committer | Paul Gilbert | 2018-01-27 21:55:26 -0500 |
commit | 6160f3842c96f5548c228c18a55ff5a5a79e02db (patch) | |
tree | 091b580f9eb957b046d2ab7e40dc27f57fb9941b /engines/xeen | |
parent | ac7ec1febea7b1960f580b3c49c0f5627400ee79 (diff) | |
download | scummvm-rg350-6160f3842c96f5548c228c18a55ff5a5a79e02db.tar.gz scummvm-rg350-6160f3842c96f5548c228c18a55ff5a5a79e02db.tar.bz2 scummvm-rg350-6160f3842c96f5548c228c18a55ff5a5a79e02db.zip |
XEEN: Implement save manager save/load methods
Diffstat (limited to 'engines/xeen')
-rw-r--r-- | engines/xeen/saves.cpp | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/engines/xeen/saves.cpp b/engines/xeen/saves.cpp index 46b2709069..f94a0fa50d 100644 --- a/engines/xeen/saves.cpp +++ b/engines/xeen/saves.cpp @@ -24,8 +24,10 @@ #include "common/algorithm.h" #include "common/memstream.h" #include "common/substream.h" +#include "common/translation.h" #include "graphics/scaler.h" #include "graphics/thumbnail.h" +#include "gui/saveload.h" #include "xeen/saves.h" #include "xeen/files.h" #include "xeen/xeen.h" @@ -222,13 +224,32 @@ Common::String SavesManager::generateSaveName(int slot) { } bool SavesManager::loadGame() { - // TODO - return false; + if (!g_vm->canLoadGameStateCurrently()) + return false; + + GUI::SaveLoadChooser *dialog = new GUI::SaveLoadChooser(_("Load game:"), _("Load"), false); + int slotNum = dialog->runModalWithCurrentTarget(); + delete dialog; + + if (slotNum != -1) + loadGameState(slotNum); + + return slotNum != -1; } bool SavesManager::saveGame() { - // TODO - return false; + if (!g_vm->canSaveGameStateCurrently()) + return false; + + GUI::SaveLoadChooser *dialog = new GUI::SaveLoadChooser(_("Save game:"), _("Save"), true); + int slotNum = dialog->runModalWithCurrentTarget(); + Common::String saveName = dialog->getResultString(); + delete dialog; + + if (slotNum) + saveGameState(slotNum, saveName); + + return slotNum != -1; } } // End of namespace Xeen |