aboutsummaryrefslogtreecommitdiff
path: root/engines/tinsel
diff options
context:
space:
mode:
authorPaul Gilbert2010-06-27 01:06:51 +0000
committerPaul Gilbert2010-06-27 01:06:51 +0000
commitb161310193713f262dec017e11997ef77eac20c6 (patch)
tree89e8c06a8eb4f07330e391489b86078a0206f294 /engines/tinsel
parentdaab502028761f8da7a4f75a7bbd265f8127892d (diff)
downloadscummvm-rg350-b161310193713f262dec017e11997ef77eac20c6.tar.gz
scummvm-rg350-b161310193713f262dec017e11997ef77eac20c6.tar.bz2
scummvm-rg350-b161310193713f262dec017e11997ef77eac20c6.zip
Script workaround fix for bug #2917661 - Crash when interacting with D'Blah
svn-id: r50360
Diffstat (limited to 'engines/tinsel')
-rw-r--r--engines/tinsel/pcode.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/engines/tinsel/pcode.cpp b/engines/tinsel/pcode.cpp
index c472a770d2..98fb078459 100644
--- a/engines/tinsel/pcode.cpp
+++ b/engines/tinsel/pcode.cpp
@@ -148,6 +148,7 @@ static const byte fragment12[] = {OP_JMPTRUE | OPSIZE16, FRAGMENT_WORD(1491),
OP_ONE, OP_LIBCALL | OPSIZE8, 14, // Re-show the cursor
OP_IMM | OPSIZE16, FRAGMENT_WORD(322), OP_LIBCALL | OPSIZE8, 46, // Give back the whistle
OP_JUMP | OPSIZE16, FRAGMENT_WORD(1568)};
+static const byte fragment13[] = {OP_ZERO, OP_GSTORE | OPSIZE16, FRAGMENT_WORD(306)};
#undef FRAGMENT_WORD
@@ -207,6 +208,12 @@ const WorkaroundEntry workaroundList[] = {
// See bug report #2934211.
{TINSEL_V1, true, 352601285, 1569, sizeof(fragment11), fragment11},
{TINSEL_V1, false, 352602304, 1488, sizeof(fragment12), fragment12},
+
+ // DW2: Corrects a bug with global 306 not being cleared if you leave
+ // the marketplace scene whilst D'Blah is talking (even if it's not
+ // actually audible); returning to the scene and clicking on him multiple
+ // times would cause the game to crash
+ {TINSEL_V2, true, 1109294728, 0, sizeof(fragment13), fragment13},
{TINSEL_V0, false, 0, 0, 0, NULL}
};