aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorMartin Kiewitz2010-07-10 18:31:11 +0000
committerMartin Kiewitz2010-07-10 18:31:11 +0000
commita92a8d3c54f1a90c480bddc12d7f48c826bcd684 (patch)
tree92180f4bff359ac774226915113ceab16830988c /engines/sci/engine
parent790e9b0351a043d2d5e4c048a081f5f6ab24c9a9 (diff)
downloadscummvm-rg350-a92a8d3c54f1a90c480bddc12d7f48c826bcd684.tar.gz
scummvm-rg350-a92a8d3c54f1a90c480bddc12d7f48c826bcd684.tar.bz2
scummvm-rg350-a92a8d3c54f1a90c480bddc12d7f48c826bcd684.zip
SCI: adding workaround for script error when leaving ulence flats bar in sq1
svn-id: r50787
Diffstat (limited to 'engines/sci/engine')
-rw-r--r--engines/sci/engine/kernel.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp
index 0fd21671a0..bb00f5903b 100644
--- a/engines/sci/engine/kernel.cpp
+++ b/engines/sci/engine/kernel.cpp
@@ -247,6 +247,12 @@ static const SciWorkaroundEntry kDisposeScript_workarounds[] = {
SCI_WORKAROUNDENTRY_TERMINATOR
};
+// gameID, scriptNr,lvl, object-name, method-name, call, index, replace
+static const SciWorkaroundEntry kUnLoad_workarounds[] = {
+ { GID_SQ1, 303, 0, "slotGuy", "dispose", -1, 0, { 1, 0 } }, // parameter 1 is not passed, script error when leaving ulence flats bar
+ SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
struct SciKernelMapSubEntry {
SciVersion fromVersion;
SciVersion toVersion;
@@ -552,8 +558,7 @@ static SciKernelMapEntry s_kernelMap[] = {
{ MAP_CALL(TimesSin), SIG_EVERYWHERE, "ii", NULL, NULL },
{ "SinMult", kTimesSin, SIG_EVERYWHERE, "ii", NULL, NULL },
{ MAP_CALL(TimesTan), SIG_EVERYWHERE, "ii", NULL, NULL },
- { MAP_CALL(UnLoad), SIG_EVERYWHERE, "i[ri]", NULL, NULL },
- // ^^ - in SQ1 when leaving ulence flats bar, kUnLoad is called with just one argument (FIXME?)
+ { MAP_CALL(UnLoad), SIG_EVERYWHERE, "i[ri]", NULL, kUnLoad_workarounds },
{ MAP_CALL(ValidPath), SIG_EVERYWHERE, "r", NULL, NULL },
{ MAP_CALL(Wait), SIG_EVERYWHERE, "i", NULL, NULL },