aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorsluicebox2019-06-03 01:13:35 -0700
committersluicebox2019-06-09 15:35:57 -0700
commit9326f2f31d4cd33131c8c384694369f4b27ed600 (patch)
tree7a512fae3d579e2c9ccc8c4bd5cab8b63741236a /engines/sci/engine
parent0074810cb4d9761ef2b3fd4f9350a73faf4da331 (diff)
downloadscummvm-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.cpp49
-rw-r--r--engines/sci/engine/workarounds.cpp1
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
};