diff options
author | Filippos Karapetis | 2010-07-26 09:16:57 +0000 |
---|---|---|
committer | Filippos Karapetis | 2010-07-26 09:16:57 +0000 |
commit | e1314408213860cb7a3b859ee2e985a2a8294668 (patch) | |
tree | d6357e655224eb9ebbd53289863b09f24a0c9202 | |
parent | d85e01640609f59bd1b3a8e9ffb3f16677832fac (diff) | |
download | scummvm-rg350-e1314408213860cb7a3b859ee2e985a2a8294668.tar.gz scummvm-rg350-e1314408213860cb7a3b859ee2e985a2a8294668.tar.bz2 scummvm-rg350-e1314408213860cb7a3b859ee2e985a2a8294668.zip |
SCI: Fixed bug #3034519, "GK1 Demo: kIsObject Sig Mismatch".
svn-id: r51305
-rw-r--r-- | engines/sci/engine/kernel_tables.h | 2 | ||||
-rw-r--r-- | engines/sci/engine/workarounds.cpp | 6 | ||||
-rw-r--r-- | engines/sci/engine/workarounds.h | 1 |
3 files changed, 8 insertions, 1 deletions
diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h index ff754ab92d..9d85a2ec6f 100644 --- a/engines/sci/engine/kernel_tables.h +++ b/engines/sci/engine/kernel_tables.h @@ -373,7 +373,7 @@ static SciKernelMapEntry s_kernelMap[] = { { MAP_CALL(InitBresen), SIG_EVERYWHERE, "o(i)", NULL, NULL }, { MAP_CALL(Intersections), SIG_EVERYWHERE, "iiiiriiiri", NULL, NULL }, { MAP_CALL(IsItSkip), SIG_EVERYWHERE, "iiiii", NULL, NULL }, - { MAP_CALL(IsObject), SIG_EVERYWHERE, ".", NULL, NULL }, + { MAP_CALL(IsObject), SIG_EVERYWHERE, ".", NULL, kIsObject_workarounds }, { MAP_CALL(Joystick), SIG_EVERYWHERE, "i(.*)", NULL, NULL }, // subop { MAP_CALL(LastNode), SIG_EVERYWHERE, "l", NULL, NULL }, { MAP_CALL(Load), SIG_EVERYWHERE, "ii(i*)", NULL, NULL }, diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp index af30753c03..5a4839d1d8 100644 --- a/engines/sci/engine/workarounds.cpp +++ b/engines/sci/engine/workarounds.cpp @@ -185,6 +185,12 @@ const SciWorkaroundEntry kGraphRedrawBox_workarounds[] = { }; // gameID, room,script,lvl, object-name, method-name, call,index, workaround +const SciWorkaroundEntry kIsObject_workarounds[] = { + { GID_GK1, 50, 999, 0, "List", "eachElementDo", -1, 0, { WORKAROUND_FAKE, 0 } }, // GK1 demo, when asking Grace for messages it gets called with an invalid parameter (type "error") + SCI_WORKAROUNDENTRY_TERMINATOR +}; + +// gameID, room,script,lvl, object-name, method-name, call,index, workaround const SciWorkaroundEntry kMemory_workarounds[] = { { GID_LAURABOW2, 160, 999, 0, "", "export 6", -1, 0, { WORKAROUND_FAKE, 0 } }, // during the intro, when exiting the train { GID_LAURABOW2, 220, 999, 0, "", "export 6", -1, 0, { WORKAROUND_FAKE, 0 } }, // during the intro, when talking to Mr. Augustini diff --git a/engines/sci/engine/workarounds.h b/engines/sci/engine/workarounds.h index cbd31d0849..cef46c793a 100644 --- a/engines/sci/engine/workarounds.h +++ b/engines/sci/engine/workarounds.h @@ -83,6 +83,7 @@ extern const SciWorkaroundEntry kGraphRestoreBox_workarounds[]; extern const SciWorkaroundEntry kGraphFillBoxForeground_workarounds[]; extern const SciWorkaroundEntry kGraphFillBoxAny_workarounds[]; extern const SciWorkaroundEntry kGraphRedrawBox_workarounds[]; +extern const SciWorkaroundEntry kIsObject_workarounds[]; extern const SciWorkaroundEntry kMemory_workarounds[]; extern const SciWorkaroundEntry kPaletteUnsetFlag_workarounds[]; extern const SciWorkaroundEntry kSetPort_workarounds[]; |