aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorFilippos Karapetis2010-07-14 02:28:17 +0000
committerFilippos Karapetis2010-07-14 02:28:17 +0000
commitab36bdfd003d51d399e7e0c7fbf16390b6253f24 (patch)
treed1a2953c6b6419ae0c53a0bbe758c8efad7ab15a /engines/sci/engine
parent1cb53050835e443bad589d035b9a5f91b600e338 (diff)
downloadscummvm-rg350-ab36bdfd003d51d399e7e0c7fbf16390b6253f24.tar.gz
scummvm-rg350-ab36bdfd003d51d399e7e0c7fbf16390b6253f24.tar.bz2
scummvm-rg350-ab36bdfd003d51d399e7e0c7fbf16390b6253f24.zip
SCI: Fixed script bug (invalid call to kStrCpy) in Island of Dr. Brain, room 260 (Hominy Homonym puzzle)
svn-id: r50865
Diffstat (limited to 'engines/sci/engine')
-rw-r--r--engines/sci/engine/kernel.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp
index 1e97671613..18439bc7bc 100644
--- a/engines/sci/engine/kernel.cpp
+++ b/engines/sci/engine/kernel.cpp
@@ -271,6 +271,12 @@ static const SciWorkaroundEntry kUnLoad_workarounds[] = {
SCI_WORKAROUNDENTRY_TERMINATOR
};
+// gameID, scriptNr,lvl, object-name, method-name, call, index, replace
+static const SciWorkaroundEntry kStrCpy_workarounds[] = {
+ { GID_ISLANDBRAIN, 45, 0, "aWord", "addOn", -1, 0, { 0, 0 } }, // Hominy Homonym puzzle, room 260
+ SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
struct SciKernelMapSubEntry {
SciVersion fromVersion;
SciVersion toVersion;
@@ -613,7 +619,7 @@ static SciKernelMapEntry s_kernelMap[] = {
{ MAP_CALL(StrAt), SIG_EVERYWHERE, "ri(i)", NULL, NULL },
{ MAP_CALL(StrCat), SIG_EVERYWHERE, "rr", NULL, NULL },
{ MAP_CALL(StrCmp), SIG_EVERYWHERE, "rr(i)", NULL, NULL },
- { MAP_CALL(StrCpy), SIG_EVERYWHERE, "[r0]r(i)", NULL, NULL },
+ { MAP_CALL(StrCpy), SIG_EVERYWHERE, "[r0]r(i)", NULL, kStrCpy_workarounds },
{ MAP_CALL(StrEnd), SIG_EVERYWHERE, "r", NULL, NULL },
{ MAP_CALL(StrLen), SIG_EVERYWHERE, "[r0]", NULL, NULL },
{ MAP_CALL(StrSplit), SIG_EVERYWHERE, "rr[r0]", NULL, NULL },