From ec1cfcbf47593545357ca3730fdb36b345f669de Mon Sep 17 00:00:00 2001 From: David Fioramonti Date: Tue, 26 Sep 2017 05:40:23 -0700 Subject: 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. --- engines/sci/engine/workarounds.cpp | 1 + 1 file changed, 1 insertion(+) 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", "", NULL, 5, { WORKAROUND_FAKE, 0 } }, // while playing backgammon with doubling enabled - bug #6426 (same as the theDoubleCube::make workaround for Hoyle 3) -- cgit v1.2.3