aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2006-12-10 14:28:37 +0000
committerMax Horn2006-12-10 14:28:37 +0000
commit8a32720213097be7658bf19e04f166bcfb9b63e8 (patch)
tree6cbf9fb6be62fb84bebe177016dc0d34d14bfd26
parent08c261a5a639c249d482112eb4a0118cff98a25f (diff)
downloadscummvm-rg350-8a32720213097be7658bf19e04f166bcfb9b63e8.tar.gz
scummvm-rg350-8a32720213097be7658bf19e04f166bcfb9b63e8.tar.bz2
scummvm-rg350-8a32720213097be7658bf19e04f166bcfb9b63e8.zip
Patch #1296058: Showing the original save/load dialog (see also RFE #832460)
svn-id: r24832
-rw-r--r--README6
-rw-r--r--doc/running-hotkeys.tex6
-rw-r--r--engines/scumm/input.cpp19
3 files changed, 31 insertions, 0 deletions
diff --git a/README b/README
index 32f9d1f5c9..99b7ebc3a8 100644
--- a/README
+++ b/README
@@ -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);