aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2018-01-27 21:55:26 -0500
committerPaul Gilbert2018-01-27 21:55:26 -0500
commit6160f3842c96f5548c228c18a55ff5a5a79e02db (patch)
tree091b580f9eb957b046d2ab7e40dc27f57fb9941b /engines
parentac7ec1febea7b1960f580b3c49c0f5627400ee79 (diff)
downloadscummvm-rg350-6160f3842c96f5548c228c18a55ff5a5a79e02db.tar.gz
scummvm-rg350-6160f3842c96f5548c228c18a55ff5a5a79e02db.tar.bz2
scummvm-rg350-6160f3842c96f5548c228c18a55ff5a5a79e02db.zip
XEEN: Implement save manager save/load methods
Diffstat (limited to 'engines')
-rw-r--r--engines/xeen/saves.cpp29
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