aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Fioramonti2017-09-26 05:40:23 -0700
committerColin Snover2017-10-07 00:56:00 -0500
commitec1cfcbf47593545357ca3730fdb36b345f669de (patch)
tree2e00d1f74ed51502bd9398cc1a3ea02548b27bb1
parent45d117737c2cdc3d43ad1a7bc61d6b27c6212607 (diff)
downloadscummvm-rg350-ec1cfcbf47593545357ca3730fdb36b345f669de.tar.gz
scummvm-rg350-ec1cfcbf47593545357ca3730fdb36b345f669de.tar.bz2
scummvm-rg350-ec1cfcbf47593545357ca3730fdb36b345f669de.zip
SCI: Add workaround for uninit read during wordsearch in castlebrain
During the wordsearch puzzle (room 320 click left door) the game will crash because of an uninitalized read of temp variables in word::dispatchEvent (which gets called a lot), if the player clicks the same letter or different letters aggressively or holds down the enter key. Fixes Trac#9783.
-rw-r--r--engines/sci/engine/workarounds.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp
index 9c271db250..842240db47 100644
--- a/engines/sci/engine/workarounds.cpp
+++ b/engines/sci/engine/workarounds.cpp
@@ -273,6 +273,7 @@ static const uint16 sig_uninitread_sq1_1[] = {
const SciWorkaroundEntry uninitializedReadWorkarounds[] = {
{ GID_CAMELOT, 40, 40, 0, "Rm40", "handleEvent", NULL, 0, { WORKAROUND_FAKE, 0 } }, // when looking at the ground at the pool of Siloam - bug #6401
{ GID_CASTLEBRAIN, 280, 280, 0, "programmer", "dispatchEvent", NULL, 0, { WORKAROUND_FAKE, 0xf } }, // pressing 'q' on the computer screen in the robot room, and closing the help dialog that pops up (bug #5143). Moves the cursor to the view with the ID returned (in this case, the robot hand)
+ { GID_CASTLEBRAIN, 320, 325, 0, "word", "dispatchEvent", NULL, -1, { WORKAROUND_FAKE, 0 } }, // holding down enter key during the word search puzzle, temp 14 and 15 - bug #9783
{ GID_CNICK_KQ, -1, 0, 1, "Character", "say", NULL, -1, { WORKAROUND_FAKE, 0 } }, // checkers/backgammon, like in hoyle 3 - temps 504 and 505 - bug #6255
{ GID_CNICK_KQ, -1, 700, 0, "gcWindow", "open", NULL, -1, { WORKAROUND_FAKE, 0 } }, // when entering the control menu, like in hoyle 3
{ GID_CNICK_KQ, 300, 303, 0, "theDoubleCube", "<noname520>", NULL, 5, { WORKAROUND_FAKE, 0 } }, // while playing backgammon with doubling enabled - bug #6426 (same as the theDoubleCube::make workaround for Hoyle 3)