aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorsluicebox2019-05-01 18:52:36 -0700
committerFilippos Karapetis2019-05-12 11:48:08 +0300
commit29028731c65e299aa264231b7caa4d6e853f0b85 (patch)
treece3bf26093f8340337692c88ef39b7d713cec4de /engines/sci
parentc5b92bcb2eae79b13991b51954b46f06fa9e5bf2 (diff)
downloadscummvm-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
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/engine/script_patches.cpp26
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 },