aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2018-03-21 21:05:33 -0400
committerPaul Gilbert2018-03-21 21:05:33 -0400
commit001f2434c6c09a2121fc60f5fa4bd54f6303d75f (patch)
treecd549b041cf11bbbd9bb73c54c3e5e026c6fb2bd
parenta86a4e02863823da44961a9c0708eef1cdfd9f42 (diff)
downloadscummvm-rg350-001f2434c6c09a2121fc60f5fa4bd54f6303d75f.tar.gz
scummvm-rg350-001f2434c6c09a2121fc60f5fa4bd54f6303d75f.tar.bz2
scummvm-rg350-001f2434c6c09a2121fc60f5fa4bd54f6303d75f.zip
XEEN: Don't allow GMM load/save on the main menus or intro/end cutscenes
-rw-r--r--engines/xeen/dialogs/dialogs_control_panel.cpp6
-rw-r--r--engines/xeen/saves.cpp3
-rw-r--r--engines/xeen/xeen.cpp4
3 files changed, 6 insertions, 7 deletions
diff --git a/engines/xeen/dialogs/dialogs_control_panel.cpp b/engines/xeen/dialogs/dialogs_control_panel.cpp
index 177c7785f8..17c86ad5e3 100644
--- a/engines/xeen/dialogs/dialogs_control_panel.cpp
+++ b/engines/xeen/dialogs/dialogs_control_panel.cpp
@@ -169,9 +169,11 @@ int ControlPanel::execute() {
intf.drawParty(true);
if (result == 3) {
- saves.loadGame();
+ if (g_vm->canLoadGameStateCurrently())
+ saves.loadGame();
} else if (result == 4) {
- saves.saveGame();
+ if (g_vm->canSaveGameStateCurrently())
+ saves.saveGame();
}
return result;
diff --git a/engines/xeen/saves.cpp b/engines/xeen/saves.cpp
index 0d4717679d..e2944d33fd 100644
--- a/engines/xeen/saves.cpp
+++ b/engines/xeen/saves.cpp
@@ -245,9 +245,6 @@ void SavesManager::newGame() {
}
bool SavesManager::loadGame() {
- if (!g_vm->canLoadGameStateCurrently())
- return false;
-
GUI::SaveLoadChooser *dialog = new GUI::SaveLoadChooser(_("Load game:"), _("Load"), false);
int slotNum = dialog->runModalWithCurrentTarget();
delete dialog;
diff --git a/engines/xeen/xeen.cpp b/engines/xeen/xeen.cpp
index 1c5fe4ac9e..eeace13c08 100644
--- a/engines/xeen/xeen.cpp
+++ b/engines/xeen/xeen.cpp
@@ -183,11 +183,11 @@ Common::Error XeenEngine::loadGameState(int slot) {
}
bool XeenEngine::canLoadGameStateCurrently() {
- return _mode != MODE_COMBAT;
+ return _mode != MODE_COMBAT && _mode != MODE_STARTUP;
}
bool XeenEngine::canSaveGameStateCurrently() {
- return _mode != MODE_COMBAT;
+ return _mode != MODE_COMBAT && _mode != MODE_STARTUP;
}
void XeenEngine::playGame() {