aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/saves.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2018-04-03 22:00:18 -0400
committerPaul Gilbert2018-04-03 22:00:18 -0400
commit4fefa8828283d7f6857327b3e19ccaf8cbee33a5 (patch)
tree63f2f11073d658ffbf55a298e113dd4d70aaa2c7 /engines/xeen/saves.cpp
parente5c4adb3c0ecdc74df2f5edc69f19af265f93be2 (diff)
downloadscummvm-rg350-4fefa8828283d7f6857327b3e19ccaf8cbee33a5.tar.gz
scummvm-rg350-4fefa8828283d7f6857327b3e19ccaf8cbee33a5.tar.bz2
scummvm-rg350-4fefa8828283d7f6857327b3e19ccaf8cbee33a5.zip
XEEN: Don't allow saving in the war zone
Diffstat (limited to 'engines/xeen/saves.cpp')
-rw-r--r--engines/xeen/saves.cpp25
1 files changed, 16 insertions, 9 deletions
diff --git a/engines/xeen/saves.cpp b/engines/xeen/saves.cpp
index a055627af4..7eadac139c 100644
--- a/engines/xeen/saves.cpp
+++ b/engines/xeen/saves.cpp
@@ -258,18 +258,25 @@ bool SavesManager::loadGame() {
}
bool SavesManager::saveGame() {
- if (!g_vm->canSaveGameStateCurrently())
+ Map &map = *g_vm->_map;
+ Windows &windows = *g_vm->_windows;
+
+ if (map.mazeData()._mazeFlags & RESTRICTION_SAVE) {
+ ErrorScroll::show(g_vm, Res.SAVE_OFF_LIMITS, WT_NONFREEZED_WAIT);
return false;
+ } else if (!g_vm->canSaveGameStateCurrently()) {
+ return false;
+ } else {
+ GUI::SaveLoadChooser *dialog = new GUI::SaveLoadChooser(_("Save game:"), _("Save"), true);
+ int slotNum = dialog->runModalWithCurrentTarget();
+ Common::String saveName = dialog->getResultString();
+ delete dialog;
- GUI::SaveLoadChooser *dialog = new GUI::SaveLoadChooser(_("Save game:"), _("Save"), true);
- int slotNum = dialog->runModalWithCurrentTarget();
- Common::String saveName = dialog->getResultString();
- delete dialog;
-
- if (slotNum != -1)
- saveGameState(slotNum, saveName);
+ if (slotNum != -1)
+ saveGameState(slotNum, saveName);
- return slotNum != -1;
+ return slotNum != -1;
+ }
}
} // End of namespace Xeen