aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/dialogs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/scumm/dialogs.cpp')
-rw-r--r--engines/scumm/dialogs.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/engines/scumm/dialogs.cpp b/engines/scumm/dialogs.cpp
index 880fab04a5..bef267f6f2 100644
--- a/engines/scumm/dialogs.cpp
+++ b/engines/scumm/dialogs.cpp
@@ -439,7 +439,7 @@ ScummMenuDialog::ScummMenuDialog(ScummEngine *scumm)
new GUI::ButtonWidget(this, "ScummMain.Resume", "Resume", kPlayCmd, 'P');
new GUI::ButtonWidget(this, "ScummMain.Load", "Load", kLoadCmd, 'L');
- new GUI::ButtonWidget(this, "ScummMain.Save", "Save", kSaveCmd, 'S');
+ _saveButton = new GUI::ButtonWidget(this, "ScummMain.Save", "Save", kSaveCmd, 'S');
new GUI::ButtonWidget(this, "ScummMain.Options", "Options", kOptionsCmd, 'O');
#ifndef DISABLE_HELP
@@ -471,6 +471,15 @@ ScummMenuDialog::~ScummMenuDialog() {
delete _loadDialog;
}
+void ScummMenuDialog::reflowLayout() {
+ // For v4+ games do not allow to save in room 0 just as original did.
+ // It is not possible to load such saves
+ if ((_vm->_game.version >= 4) && (_vm->_currentRoom == 0))
+ _saveButton->setEnabled(false);
+
+ Dialog::reflowLayout();
+}
+
void ScummMenuDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
switch (cmd) {
case kSaveCmd: