aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Montoir2007-01-07 23:18:18 +0000
committerGregory Montoir2007-01-07 23:18:18 +0000
commit216bcae2111156cd82791f2919d438b1f548cfe3 (patch)
tree571e5a5bde944ddd0e9be38ad69b034578b1f247
parentab180132c13e3e67a01ec02cce95e617cf7a6fc8 (diff)
downloadscummvm-rg350-216bcae2111156cd82791f2919d438b1f548cfe3.tar.gz
scummvm-rg350-216bcae2111156cd82791f2919d438b1f548cfe3.tar.bz2
scummvm-rg350-216bcae2111156cd82791f2919d438b1f548cfe3.zip
possible fix for bug #1193185
svn-id: r25051
-rw-r--r--engines/scumm/input.cpp6
-rw-r--r--engines/scumm/verbs.cpp21
2 files changed, 16 insertions, 11 deletions
diff --git a/engines/scumm/input.cpp b/engines/scumm/input.cpp
index 52bff5bd01..ae7b5682df 100644
--- a/engines/scumm/input.cpp
+++ b/engines/scumm/input.cpp
@@ -172,14 +172,14 @@ void ScummEngine::parseEvents() {
// The following two cases enable dialog choices to be
// scrolled through in the SegaCD version of MI
// as nothing else uses the wheel don't bother
- // checking the gameid
+ // checking the gameid. Values are taken from script-14.
case OSystem::EVENT_WHEELDOWN:
- _keyPressed = 'a';
+ _keyPressed = 55;
break;
case OSystem::EVENT_WHEELUP:
- _keyPressed = 'q';
+ _keyPressed = 54;
break;
case OSystem::EVENT_QUIT:
diff --git a/engines/scumm/verbs.cpp b/engines/scumm/verbs.cpp
index 0efb37ea19..ae585104dd 100644
--- a/engines/scumm/verbs.cpp
+++ b/engines/scumm/verbs.cpp
@@ -485,13 +485,18 @@ void ScummEngine::checkExecVerbs() {
if (_mouseAndKeyboardStat < MBS_MAX_KEY) {
/* Check keypresses */
- vs = &_verbs[1];
- for (i = 1; i < _numVerbs; i++, vs++) {
- if (vs->verbid && vs->saveid == 0 && vs->curmode == 1) {
- if (_mouseAndKeyboardStat == vs->key) {
- // Trigger verb as if the user clicked it
- runInputScript(1, vs->verbid, 1);
- return;
+ if (!(_game.id == GID_MONKEY && _game.platform == Common::kPlatformSegaCD)) {
+ // This is disabled in the SegaCD version as the "vs->key" values setup
+ // by script-17 conflict with the values expected by the generic keyboard
+ // input script
+ vs = &_verbs[1];
+ for (i = 1; i < _numVerbs; i++, vs++) {
+ if (vs->verbid && vs->saveid == 0 && vs->curmode == 1) {
+ if (_mouseAndKeyboardStat == vs->key) {
+ // Trigger verb as if the user clicked it
+ runInputScript(1, vs->verbid, 1);
+ return;
+ }
}
}
}
@@ -623,7 +628,7 @@ void ScummEngine::verbMouseOver(int verb) {
if (_verbs[_verbMouseOver].type != kImageVerbType) {
drawVerb(_verbMouseOver, 0);
}
-
+
if (_verbs[verb].type != kImageVerbType && _verbs[verb].hicolor) {
drawVerb(verb, 1);
_verbMouseOver = verb;