From 6160f3842c96f5548c228c18a55ff5a5a79e02db Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 27 Jan 2018 21:55:26 -0500 Subject: XEEN: Implement save manager save/load methods --- engines/xeen/saves.cpp | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'engines') 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 -- cgit v1.2.3