diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/scumm/input.cpp | 3 | ||||
-rw-r--r-- | engines/scumm/script_v4.cpp | 14 |
2 files changed, 10 insertions, 7 deletions
diff --git a/engines/scumm/input.cpp b/engines/scumm/input.cpp index ab32992b03..73e7285f81 100644 --- a/engines/scumm/input.cpp +++ b/engines/scumm/input.cpp @@ -444,6 +444,9 @@ void ScummEngine_v2::processKeyboard(Common::KeyState lastKeyHit) { // On Alt-F5 prepare savegame for the original save/load dialog. if (lastKeyHit.keycode == Common::KEYCODE_F5 && lastKeyHit.flags == Common::KBD_ALT) { prepareSavegame(); + if (_game.id == GID_MANIAC && _game.version == 0) { + runScript(2, 0, 0, 0); + } } if (VAR_KEYPRESS != 0xFF && _mouseAndKeyboardStat) { // Key Input diff --git a/engines/scumm/script_v4.cpp b/engines/scumm/script_v4.cpp index 3075b85207..ab647f72c6 100644 --- a/engines/scumm/script_v4.cpp +++ b/engines/scumm/script_v4.cpp @@ -393,16 +393,12 @@ void ScummEngine_v4::loadIQPoints(byte *ptr, int size) { void ScummEngine_v4::o4_saveLoadGame() { getResultPos(); + byte slot; byte a = getVarOrDirectByte(PARAM_1); - byte slot = a & 0x1F; byte result = 0; - // Slot numbers in older games start with 0, in newer games with 1 - if (_game.version <= 2) - slot++; - - if ((_game.id == GID_MANIAC) && (_game.version <= 1)) { - // Convert older load/save screen + if (_game.version <= 1) { + // Convert V0/V1 load/save screen (they support only one savegame per disk) // 1 Load // 2 Save slot = 1; @@ -411,6 +407,10 @@ void ScummEngine_v4::o4_saveLoadGame() { else if ((a == 2) || (_game.platform == Common::kPlatformNES)) _opcode = 0x80; } else { + slot = a & 0x1F; + // Slot numbers in older games start with 0, in newer games with 1 + if (_game.version <= 2) + slot++; _opcode = a & 0xE0; } |