aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2016-02-01 10:35:13 +0100
committerEugene Sandulenko2016-02-01 10:35:13 +0100
commit68ff933206e091f0cd9712a903228cb9d0801db6 (patch)
tree81bfe44dce3610538dde25f70f3d9eda553e9265
parent7b521edac778b0a0369493054b4810da87d22435 (diff)
parent94cd15bb3e07950bd98f8133e552707a33729e47 (diff)
downloadscummvm-rg350-68ff933206e091f0cd9712a903228cb9d0801db6.tar.gz
scummvm-rg350-68ff933206e091f0cd9712a903228cb9d0801db6.tar.bz2
scummvm-rg350-68ff933206e091f0cd9712a903228cb9d0801db6.zip
Merge pull request #657 from lordhoto/scumm-alt-x
ALL: Handle Alt-x internally in SCUMM.
-rw-r--r--NEWS5
-rw-r--r--README3
-rw-r--r--backends/events/sdl/sdl-events.cpp9
-rw-r--r--engines/scumm/input.cpp8
4 files changed, 17 insertions, 8 deletions
diff --git a/NEWS b/NEWS
index ee5dc7c1c4..94b377598e 100644
--- a/NEWS
+++ b/NEWS
@@ -19,6 +19,10 @@ For a more comprehensive changelog of the latest experimental code, see:
General:
- Updated Munt MT-32 emulation code to version 1.5.0.
+ SDL:
+ - Alt-x no longer quits ScummVM on platforms exhibiting this behavior
+ before. A notable example is our Windows port.
+
3 Skulls of the Toltecs:
- Improved AdLib music support.
@@ -73,6 +77,7 @@ For a more comprehensive changelog of the latest experimental code, see:
- Implemented original Maniac Mansion v0-v1 walking code.
- It is now possible to play Maniac Mansion from within Day of the
Tentacle, with a few caveats. See README for details.
+ - Alt-x can now be used to quit SCUMM games on all platforms.
Tinsel:
- Improved AdLib music support in Discworld 1.
diff --git a/README b/README
index 4d8a51429a..a651603774 100644
--- a/README
+++ b/README
@@ -1487,7 +1487,7 @@ other games.
Ctrl-F5 - Displays the Global Menu
Cmd-q - Quit (Mac OS X)
Ctrl-q - Quit (other unices including Linux)
- Ctrl-z OR Alt-x - Quit (other platforms)
+ Ctrl-z - Quit (other platforms)
Ctrl-u - Mute all sounds
Ctrl-m - Toggle mouse capture
Ctrl-Alt 1-8 - Switch between graphics filters
@@ -1505,6 +1505,7 @@ other games.
of the middle mouse button or wheel.
SCUMM:
+ Alt-x - Quit
Ctrl 0-9 and Alt 0-9 - Load and save game state
Ctrl-d - Starts the debugger
Ctrl-f - Toggle fast mode
diff --git a/backends/events/sdl/sdl-events.cpp b/backends/events/sdl/sdl-events.cpp
index d6880d8e65..7b56a0a955 100644
--- a/backends/events/sdl/sdl-events.cpp
+++ b/backends/events/sdl/sdl-events.cpp
@@ -545,8 +545,8 @@ bool SdlEventSource::handleKeyDown(SDL_Event &ev, Common::Event &event) {
return true;
}
#else
- // Ctrl-z and Alt-X quit
- if ((event.kbd.hasFlags(Common::KBD_CTRL) && ev.key.keysym.sym == 'z') || (event.kbd.hasFlags(Common::KBD_ALT) && ev.key.keysym.sym == 'x')) {
+ // Ctrl-z quits
+ if ((event.kbd.hasFlags(Common::KBD_CTRL) && ev.key.keysym.sym == 'z')) {
event.type = Common::EVENT_QUIT;
return true;
}
@@ -603,11 +603,6 @@ bool SdlEventSource::handleKeyUp(SDL_Event &ev, Common::Event &event) {
#if defined(MACOSX)
if ((mod & KMOD_META) && ev.key.keysym.sym == 'q')
return false; // On Macintosh, Cmd-Q quits
-#elif defined(POSIX)
- // Control Q has already been handled above
-#else
- if ((mod & KMOD_ALT) && ev.key.keysym.sym == 'x')
- return false; // Alt-x quit
#endif
// If we reached here, this isn't an event handled by handleKeyDown(), thus
diff --git a/engines/scumm/input.cpp b/engines/scumm/input.cpp
index 3ce053f6bc..1234eda3cc 100644
--- a/engines/scumm/input.cpp
+++ b/engines/scumm/input.cpp
@@ -130,6 +130,14 @@ void ScummEngine::parseEvent(Common::Event event) {
_debugger->attach();
} else if (event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_s) {
_res->resourceStats();
+ } else if (event.kbd.hasFlags(Common::KBD_ALT) && event.kbd.keycode == Common::KEYCODE_x) {
+ // TODO: Some SCUMM games quit when Alt-x is pressed. However, not
+ // all of them seem to exhibit this behavior. LordHoto found that
+ // the Loom manual does not mention this hotkey. On the other hand
+ // the Sam&Max manual mentions that Alt-x does so on "most"
+ // platforms. We should really check which games exhibit this
+ // behavior and only use it for them.
+ quitGame();
} else {
// Normal key press, pass on to the game.
_keyPressed = event.kbd;