diff options
-rw-r--r-- | README | 6 | ||||
-rw-r--r-- | doc/running-hotkeys.tex | 6 | ||||
-rw-r--r-- | engines/scumm/input.cpp | 19 |
3 files changed, 31 insertions, 0 deletions
@@ -810,6 +810,12 @@ other games. [ and ] - Music volume, down/up - and + - Text speed, slower/faster F5 - Displays a save/load box + Alt-F5 - Displays the original save/load box, if the + game has one. This is not intended for saving + or loading a game, and may even crash ScummVM + in some games, but it is currently the only + way to see your IQ points in Indiana Jones and + the Last Crusade without dying. Space - Pauses Period (.) - Skips current line of text in some games Enter - Simulate left mouse button press diff --git a/doc/running-hotkeys.tex b/doc/running-hotkeys.tex index 156afc43df..28f0ceba70 100644 --- a/doc/running-hotkeys.tex +++ b/doc/running-hotkeys.tex @@ -34,6 +34,12 @@ other games. $[$ and $]$ & Music volume, down/up\\ - and + & Text speed, slower/faster\\ F5 & Displays a save/load box\\ + Alt-F5 & Displays the original save/load box, if the game\\ + & has one. This is not intended for saving or\\ + & loading a game, and may even crash ScummVM in\\ + & some games, but it is currently the only way to\\ + & see your IQ points in Indiana Jones and the Last\\ + & Crusade without dying.\\ Space & Pauses\\ Period (.) & Skips current line of text in some games\\ Enter & Simulate left mouse button press\\ diff --git a/engines/scumm/input.cpp b/engines/scumm/input.cpp index e0c6eaab13..52bff5bd01 100644 --- a/engines/scumm/input.cpp +++ b/engines/scumm/input.cpp @@ -313,6 +313,12 @@ void ScummEngine::processInput() { #ifndef DISABLE_SCUMM_7_8 void ScummEngine_v8::processKeyboard(int lastKeyHit) { + // Alt-F5 brings up the original save/load dialog + + if (lastKeyHit == 440 && !(_game.features & GF_DEMO)) { + lastKeyHit = 315; + } + // If a key script was specified (a V8 feature), and it's trigger // key was pressed, run it. if (_keyScriptNo && (_keyScriptKey == lastKeyHit)) { @@ -435,6 +441,12 @@ void ScummEngine_v2::processKeyboard(int lastKeyHit) { // Fall back to default behavior ScummEngine::processKeyboard(lastKeyHit); } + + // Alt-F5 brings up the original save/load dialog + + if (lastKeyHit == 440) { + lastKeyHit = 314+5; + } // Store the input type. So far we can't distinguish // between 1, 3 and 5. @@ -469,6 +481,13 @@ void ScummEngine::processKeyboard(int lastKeyHit) { else saveloadkey = VAR(VAR_MAINMENU_KEY); + // Alt-F5 brings up the original save/load dialog. + + if (lastKeyHit == 440 && _game.version > 2 && _game.version < 8) { + lastKeyHit = saveloadkey; + saveloadkey = -1; + } + if (lastKeyHit == saveloadkey) { if (VAR_SAVELOAD_SCRIPT != 0xFF && _currentRoom != 0) runScript(VAR(VAR_SAVELOAD_SCRIPT), 0, 0, 0); |