diff options
author | sluicebox | 2019-05-01 18:52:36 -0700 |
---|---|---|
committer | Filippos Karapetis | 2019-05-12 11:48:08 +0300 |
commit | 29028731c65e299aa264231b7caa4d6e853f0b85 (patch) | |
tree | ce3bf26093f8340337692c88ef39b7d713cec4de | |
parent | c5b92bcb2eae79b13991b51954b46f06fa9e5bf2 (diff) | |
download | scummvm-rg350-29028731c65e299aa264231b7caa4d6e853f0b85.tar.gz scummvm-rg350-29028731c65e299aa264231b7caa4d6e853f0b85.tar.bz2 scummvm-rg350-29028731c65e299aa264231b7caa4d6e853f0b85.zip |
SCI: Disable FPFP Mac script that uses missing view
Fixes bug #10954
-rw-r--r-- | engines/sci/engine/script_patches.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp index 36abc0bcb3..fe3399a16d 100644 --- a/engines/sci/engine/script_patches.cpp +++ b/engines/sci/engine/script_patches.cpp @@ -1274,11 +1274,37 @@ static const uint16 freddypharkasPatchMacEasterEgg[] = { PATCH_END }; +// FPFP Mac is missing view 844 of Hop Singh leaving town, breaking the scene. +// This occurs when going to the desert (room 200) after the restaurant closes +// but before act 3 ends. This would also crash the original so we just disable +// this minor optional scene. +// +// Applies to: Mac Floppy +// Responsible method: rm200:init +// Fixes bug #10954 +static const uint16 freddypharkasSignatureMacHopSingh[] = { + 0x89, 0x77, // lsg 77 + 0x35, 0x13, // ldi 13 + 0x1a, // eq? [ did restaurant just close? ] + 0x31, 0x46, // bnt 46 [ skip hop singh scene ] + SIG_ADDTOOFFSET(+0x41), + SIG_MAGICDWORD, + 0x72, 0x01, 0xd0, // lofsa hopSingh [ hard-coded big endian for mac ] + 0x4a, 0x20, // send 20 [ hopSingh init: ... setScript: sLeaveTown ] + SIG_END +}; + +static const uint16 freddypharkasPatchMacHopSingh[] = { + 0x33, 0x4b, // jmp 4b [ always skip hop singh scene ] + PATCH_END +}; + // script, description, signature patch static const SciScriptPatcherEntry freddypharkasSignatures[] = { { true, 0, "CD: score early disposal", 1, freddypharkasSignatureScoreDisposal, freddypharkasPatchScoreDisposal }, { true, 15, "Mac: broken inventory", 1, freddypharkasSignatureMacInventory, freddypharkasPatchMacInventory }, { true, 110, "intro scaling workaround", 2, freddypharkasSignatureIntroScaling, freddypharkasPatchIntroScaling }, + { true, 200, "Mac: skip broken hop singh scene", 1, freddypharkasSignatureMacHopSingh, freddypharkasPatchMacHopSingh }, { true, 235, "CD: canister pickup hang", 3, freddypharkasSignatureCanisterHang, freddypharkasPatchCanisterHang }, { true, 270, "Mac: easter egg hang", 1, freddypharkasSignatureMacEasterEgg, freddypharkasPatchMacEasterEgg }, { true, 320, "ladder event issue", 2, freddypharkasSignatureLadderEvent, freddypharkasPatchLadderEvent }, |