[Scummvm-git-logs] scummvm master -> 4b9cafc1f8e0cffca3dbcbc47ba8a6fd4c4907ec
sluicebox
22204938+sluicebox at users.noreply.github.com
Sat Aug 29 00:15:27 UTC 2020
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
4b9cafc1f8 SCI: Fix SQ5 Genetix bridge entrance, bug #11620
Commit: 4b9cafc1f8e0cffca3dbcbc47ba8a6fd4c4907ec
https://github.com/scummvm/scummvm/commit/4b9cafc1f8e0cffca3dbcbc47ba8a6fd4c4907ec
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2020-08-28T17:13:45-07:00
Commit Message:
SCI: Fix SQ5 Genetix bridge entrance, bug #11620
Changed paths:
engines/sci/engine/script_patches.cpp
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index 07954afed9..39a67f9d60 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -18745,6 +18745,42 @@ static const uint16 sq5PatchElevatorHandsOn[] = {
PATCH_END
};
+// When walking to Genetix room 730 from the bridge in room 760, clicking Walk
+// while ego enters the room interrupts the room script, breaks the exits, and
+// prevents WD-40 from returning the communicator. This can make it impossible
+// to leave. The script sHuman760 is missing a call to handsOff which the other
+// entrance scripts have. We fix this by calling handsOff before starting
+// sHuman760. We make room for this by overwriting a redundant handsOn call.
+//
+// Applies to: All versions
+// Responsible method: rm730:init
+// Fixes bug: #11620
+static const uint16 sq5SignatureGenetixBridgeHandsOn[] = {
+ 0x31, 0x16, // bnt 16 [ skip fly code if human ]
+ 0x7a, // push2
+ SIG_MAGICDWORD,
+ 0x38, SIG_UINT16(0x00e6), // pushi 00e6
+ 0x38, SIG_UINT16(0x0096), // pushi 0096
+ 0x47, 0x1f, 0x01, 0x04, // calle proc31_1 [ fly to 230, 150 ]
+ 0x38, SIG_SELECTOR16(handsOn), // pushi handsOn
+ 0x76, // push0
+ 0x81, 0x01, // lag 01
+ 0x4a, 0x04, // send 04 [ SQ5 handsOn: (redundant) ]
+ 0x32, SIG_UINT16(0x00b1), // jmp 00b1 [ end of method ]
+ SIG_END
+};
+
+static const uint16 sq5PatchGenetixBridgeHandsOn[] = {
+ 0x31, 0x0e, // bnt 0e [ skip fly code if human ]
+ PATCH_ADDTOOFFSET(+0x0b),
+ 0x32, PATCH_UINT16(0x00b9), // jmp 00b9 [ end of method ]
+ 0x38, PATCH_SELECTOR16(handsOff), // pushi handsOff
+ 0x76, // push0
+ 0x81, 0x01, // lag 01
+ 0x4a, 0x04, // send 04 [ SQ5 handsOff: ]
+ PATCH_END
+};
+
// script, description, signature patch
static const SciScriptPatcherEntry sq5Signatures[] = {
{ true, 200, "captain chair lockup fix", 1, sq5SignatureCaptainChairFix, sq5PatchCaptainChairFix },
@@ -18753,6 +18789,7 @@ static const SciScriptPatcherEntry sq5Signatures[] = {
{ true, 250, "elevator handsOn fix", 1, sq5SignatureElevatorHandsOn, sq5PatchElevatorHandsOn },
{ true, 305, "wd40 fruit fix", 1, sq5SignatureWd40FruitFix, sq5PatchWd40FruitFix },
{ true, 335, "wd40 alarm countdown fix", 1, sq5SignatureWd40AlarmCountdownFix, sq5PatchWd40AlarmCountdownFix },
+ { true, 730, "genetix bridge handsOn fix", 1, sq5SignatureGenetixBridgeHandsOn, sq5PatchGenetixBridgeHandsOn },
{ true, 30, "ChoiceTalker lockup fix", 1, sciNarratorLockupSignature, sciNarratorLockupPatch },
{ true, 928, "Narrator lockup fix", 1, sciNarratorLockupSignature, sciNarratorLockupPatch },
{ true, 1000, "drive bay pathfinding fix", 1, sq5SignatureDriveBayPathfindingFix, sq5PatchDriveBayPathfindingFix },
More information about the Scummvm-git-logs
mailing list