diff options
author | sluicebox | 2019-06-03 01:13:35 -0700 |
---|---|---|
committer | sluicebox | 2019-06-09 15:35:57 -0700 |
commit | 9326f2f31d4cd33131c8c384694369f4b27ed600 (patch) | |
tree | 7a512fae3d579e2c9ccc8c4bd5cab8b63741236a /engines/sci/engine | |
parent | 0074810cb4d9761ef2b3fd4f9350a73faf4da331 (diff) | |
download | scummvm-rg350-9326f2f31d4cd33131c8c384694369f4b27ed600.tar.gz scummvm-rg350-9326f2f31d4cd33131c8c384694369f4b27ed600.tar.bz2 scummvm-rg350-9326f2f31d4cd33131c8c384694369f4b27ed600.zip |
SCI: Replace SQ4 script patch with workaround
Diffstat (limited to 'engines/sci/engine')
-rw-r--r-- | engines/sci/engine/script_patches.cpp | 49 | ||||
-rw-r--r-- | engines/sci/engine/workarounds.cpp | 1 |
2 files changed, 1 insertions, 49 deletions
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp index 4412ffb533..3e8cb7d783 100644 --- a/engines/sci/engine/script_patches.cpp +++ b/engines/sci/engine/script_patches.cpp @@ -11894,54 +11894,6 @@ static const uint16 sq4CdPatchMazeTalkMessage[] = { PATCH_END }; -// Smelling the sidewalk in room 35 results in a missing message due to not -// passing the cond parameter to Sq4GlobalNarrator:say. We pass the parameter -// and make room by removing an unused parameter passed to theRoom:doVerb. -// -// Applies to: English PC CD -// Responsible method: sidewalk1:doVerb(6) -// Fixes bug #10917 -static const uint16 sq4CdSignatureSidewalkSmellMessage[] = { - 0x31, 0x10, // bnt 10 - SIG_ADDTOOFFSET(+9), - SIG_MAGICDWORD, - 0x76, // push0 - 0x81, 0x59, // lag 59 - 0x4a, 0x0a, // send 0a [ Sq4GlobalNarrator modNum: 25 say: ] - 0x33, 0x24, // jmp 24 [ end of method ] - 0x3c, // dup - 0x35, 0x09, // ldi 09 [ rope ] - 0x1a, // eq? - 0x31, 0x15, // bnt 15 - 0x38, SIG_ADDTOOFFSET(+2), // pushi doVerb - 0x7a, // push2 - 0x8f, 0x01, // lsp 01 [ verb ] - 0x8f, 0x02, // lsp 02 [ unused by theRoom:doVerb ] - SIG_ADDTOOFFSET(+9), - 0x4a, 0x08, // send 08 [ theRoom doVerb: verb param2 ] - SIG_END -}; - -static const uint16 sq4CdPatchSidewalkSmellMessage[] = { - 0x31, 0x12, // bnt 12 - PATCH_ADDTOOFFSET(+9), - 0x78, // push1 - 0x39, 0x0b, // push 0b - 0x81, 0x59, // lag 59 - 0x4a, 0x0c, // send 0c [ Sq4GlobalNarrator modNum: 25 say: 11 ] - 0x33, 0x22, // jmp 22 [ end of method ] - 0x3c, // dup - 0x35, 0x09, // ldi 09 [ rope ] - 0x1a, // eq? - 0x31, 0x13, // bnt 13 - 0x38, PATCH_GETORIGINALUINT16(+25), // pushi doVerb - 0x78, // push1 - 0x8f, 0x01, // lsp 01 [ verb ] - PATCH_ADDTOOFFSET(+9), - 0x4a, 0x06, // send 06 [ theRoom doVerb: verb ] - PATCH_END -}; - // Talking to the red shopper in the mall has a 5% chance of a funny message but // this script is broken in the CD version. After the first time the wrong // message tuple is attempted by the narrator as its modNum value is cleared. @@ -12648,7 +12600,6 @@ static const SciScriptPatcherEntry sq4Signatures[] = { { true, 376, "Floppy: click atm card on sequel police fix", 1, sq4FloppySignatureClickAtmCardOnSequelPolice, sq4FloppyPatchClickAtmCardOnSequelPolice }, { true, 376, "Floppy: throw stuff at sequel police fix", 1, sq4FloppySignatureThrowStuffAtSequelPolice, sq4FloppyPatchThrowStuffAtSequelPolice }, { true, 700, "Floppy: throw stuff at sequel police fix", 1, sq4FloppySignatureThrowStuffAtSequelPolice, sq4FloppyPatchThrowStuffAtSequelPolice }, - { true, 35, "CD: sidewalk smell message fix", 1, sq4CdSignatureSidewalkSmellMessage, sq4CdPatchSidewalkSmellMessage }, { true, 45, "CD: walk in from below for room 45 fix", 1, sq4CdSignatureWalkInFromBelowRoom45, sq4CdPatchWalkInFromBelowRoom45 }, { true, 105, "Floppy: sewer lockup fix", 1, sq4FloppySignatureSewerLockup, sq4FloppyPatchSewerLockup }, { true, 105, "CD: sewer lockup fix", 1, sq4CDSignatureSewerLockup, sq4CDPatchSewerLockup }, diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp index ee4e11fc95..1fd99e4a9f 100644 --- a/engines/sci/engine/workarounds.cpp +++ b/engines/sci/engine/workarounds.cpp @@ -326,6 +326,7 @@ const SciWorkaroundEntry uninitializedReadForParamWorkarounds[] = { { GID_PHANTASMAGORIA2,-1, 64926, 0, "Thumb", "action", NULL, 1, 1,{ WORKAROUND_FAKE, 0 } }, // When dragging one of the volume sliders and releasing the mouse button over the +/- buttons { GID_PHANTASMAGORIA2,-1, 63019, 0, "WynDocTextView", "cue", NULL, 2, 2,{ WORKAROUND_FAKE, 0 } }, // When dragging the slider next to an e-mail message { GID_SHIVERS, -1, 64918, 0, "Str", "strip", NULL, 1, 1,{ WORKAROUND_FAKE, 0 } }, // When starting a new game and entering a name + { GID_SQ4, 35, 928, 0, "Narrator", "say", NULL, 1, 1,{ WORKAROUND_FAKE, 11 } }, // Clicking smell on sidewalk, fixes message due to missing say parameter in sidewalk1:doVerb(6) - bug #10917 SCI_WORKAROUNDENTRY_TERMINATOR }; |