diff options
author | sluicebox | 2019-06-15 18:34:28 -0700 |
---|---|---|
committer | Filippos Karapetis | 2019-06-16 08:05:25 +0300 |
commit | f80c11cf34d2db5e098955fe473b847bfc137d93 (patch) | |
tree | 3457e47a936f4720b032d0d5bdaa3bbe71c8582e /engines/sci | |
parent | f9f1293de6ca2b8438f9cfa3f25a96241c417834 (diff) | |
download | scummvm-rg350-f80c11cf34d2db5e098955fe473b847bfc137d93.tar.gz scummvm-rg350-f80c11cf34d2db5e098955fe473b847bfc137d93.tar.bz2 scummvm-rg350-f80c11cf34d2db5e098955fe473b847bfc137d93.zip |
SCI: Fix SQ4 Monolith Burger door message, bug #10976
Diffstat (limited to 'engines/sci')
-rw-r--r-- | engines/sci/engine/script_patches.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp index f3b00194a5..bba0f46c98 100644 --- a/engines/sci/engine/script_patches.cpp +++ b/engines/sci/engine/script_patches.cpp @@ -11813,6 +11813,52 @@ static const uint16 sq4CdPatchBigAndTallDescription[] = { PATCH_END }; +// Clicking Do on the Monolith Burger door responds with the message for looking +// at the boss and clicking Taste responds with the taste message for the bush. +// The verb handler is missing the modNum for both and also sets the wrong cond +// for the second. +// +// Applies to: English PC CD +// Responsible method: door:doVerb(4) +// Fixes bug #10976 +static const uint16 sq4CdSignatureMonolithBurgerDoor[] = { + SIG_MAGICDWORD, + 0x31, 0x13, // bnt 13 + 0x38, SIG_SELECTOR16(modNum), // pushi modNum + 0x78, // push1 + 0x38, SIG_UINT16(0x0177), // pushi 0177 + 0x38, SIG_SELECTOR16(say), // pushi say + 0x78, // push1 + 0x78, // push1 + 0x81, 0x59, // lag 59 + 0x4a, 0x0c, // send 0c [ Sq4GlobalNarrator modNum 375: say: 1 ] + SIG_ADDTOOFFSET(+9), + 0x38, SIG_SELECTOR16(say), // pushi say + 0x78, // push1 + 0x7a, // push2 + 0x81, 0x59, // lag 59 + 0x4a, 0x06, // send 06 [ Sq4GlobalNarrator say: 2 ] + SIG_ADDTOOFFSET(+25), + 0x38, SIG_SELECTOR16(say), // pushi say + 0x78, // push1 + 0x39, 0x0b, // pushi 0b + 0x81, 0x59, // lag 59 + 0x4a, 0x06, // send 06 [ Sq4GlobalNarrator say: 11 ] + SIG_END +}; + +static const uint16 sq4CdPatchMonolithBurgerDoor[] = { + PATCH_ADDTOOFFSET(+13), + 0x36, // push + PATCH_ADDTOOFFSET(+13), + 0x35, 0x02, // ldi 02 + 0x33, 0xe3, // jmp e3 [ Sq4GlobalNarrator modNum 375: say: 2 ] + PATCH_ADDTOOFFSET(+30), + 0x35, 0x04, // ldi 04 + 0x33, 0xc1, // jmp c1 [ Sq4GlobalNarrator modNum 375: say: 4 ] + PATCH_END +}; + // For Space Quest 4 CD, Sierra added a pick up animation for Roger when he // picks up the rope. // @@ -12658,6 +12704,7 @@ static const SciScriptPatcherEntry sq4Signatures[] = { { true, 370, "CD: sock's sequel police hands-off fix", 1, sq4CdSignatureSocksSequelPoliceHandsOff, sq4CdPatchSocksSequelPoliceHandsOff }, { true, 370, "CD: sock's door restore and message fix", 1, sq4CdSignatureSocksDoor, sq4CdPatchSocksDoor }, { true, 381, "CD: big and tall room description", 1, sq4CdSignatureBigAndTallDescription, sq4CdPatchBigAndTallDescription }, + { true, 385, "CD: monolith burger door message fix", 1, sq4CdSignatureMonolithBurgerDoor, sq4CdPatchMonolithBurgerDoor }, { true, 391, "CD: missing Audio for universal remote control", 1, sq4CdSignatureMissingAudioUniversalRemote, sq4CdPatchMissingAudioUniversalRemote }, { true, 396, "CD: get points for changing back clothes fix", 1, sq4CdSignatureGetPointsForChangingBackClothes, sq4CdPatchGetPointsForChangingBackClothes }, { true, 405, "CD/Floppy: zero gravity blast fix", 1, sq4SignatureZeroGravityBlast, sq4PatchZeroGravityBlast }, |