[Scummvm-git-logs] scummvm master -> 8f1af79cc826f60869a5a12ea85b4978fa1e3137
sluicebox
22204938+sluicebox at users.noreply.github.com
Tue Aug 25 04:48:46 UTC 2020
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
38da9bf878 SCI: Add SQ1 workaround for teleporting
8f1af79cc8 SCI: Fix SQ5 elevator door lockup, bug #11605
Commit: 38da9bf8781178c2faf436d6887baf81771cecb2
https://github.com/scummvm/scummvm/commit/38da9bf8781178c2faf436d6887baf81771cecb2
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2020-08-24T21:46:43-07:00
Commit Message:
SCI: Add SQ1 workaround for teleporting
Changed paths:
engines/sci/engine/workarounds.cpp
diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp
index 3e52fe4277..70f794c00e 100644
--- a/engines/sci/engine/workarounds.cpp
+++ b/engines/sci/engine/workarounds.cpp
@@ -544,6 +544,7 @@ const SciWorkaroundEntry uninitializedReadWorkarounds[] = {
{ GID_SQ1, 103, 103, 0, "hand", "internalEvent", NULL, -1, -1, { WORKAROUND_FAKE, 0 } }, // Spanish (and maybe early versions?) only: when moving cursor over input pad, temps 1 and 2
{ GID_SQ1, -1, 703, 0, "", "export 1", NULL, 0, 0, { WORKAROUND_FAKE, 0 } }, // sub that's called from several objects while on sarien battle cruiser
{ GID_SQ1, -1, 703, 0, "firePulsar", "changeState", sig_uninitread_sq1_1, 0, 0, { WORKAROUND_FAKE, 0 } }, // export 1, but called locally (when shooting at aliens)
+ { GID_SQ1, -1, 703, 0, "DeltaurRegion", "init", sig_uninitread_sq1_1, 0, 0, { WORKAROUND_FAKE, 0 } }, // export 1, but called locally (when teleporting to a deltaur room)
{ GID_SQ4, -1, 398, 0, "showBox", "changeState", NULL, 0, 0, { WORKAROUND_FAKE, 0 } }, // CD: called when rummaging in Software Excess bargain bin
{ GID_SQ4, -1, 928, -1, "Narrator", "startText", NULL, 1000, 1000, { WORKAROUND_FAKE, 1 } }, // CD: happens in the options dialog and in-game when speech and subtitles are used simultaneously
{ GID_SQ4, 395, 395, -1, "fromStoreScript", "changeState", NULL, 0, 0, { WORKAROUND_FAKE, 0 } }, // CD: happens when shoplifting in Galaxy Galleria - bug #10229
Commit: 8f1af79cc826f60869a5a12ea85b4978fa1e3137
https://github.com/scummvm/scummvm/commit/8f1af79cc826f60869a5a12ea85b4978fa1e3137
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2020-08-24T21:46:43-07:00
Commit Message:
SCI: Fix SQ5 elevator door lockup, bug #11605
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 446f8e46b8..07954afed9 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -18718,11 +18718,39 @@ static const uint16 sq5PatchTransporterRoomSpeedFix[] = {
PATCH_END
};
+// When the elevator doors close in room 250, sElevatorDoors makes an extra
+// call to handsOn which allows ego to walk around and interact with the room
+// during room transitions, and this can lock up the game by running unexpected
+// scripts such as the chicken closet. We patch out this code since all of
+// sElevatorDoors' callers either call handsOn afterwards or change rooms.
+//
+// Applies to: All versions
+// Responsible method: sElevatorDoors:changeState(2)
+// Fixes bug: #11605
+static const uint16 sq5SignatureElevatorHandsOn[] = {
+ 0x67, 0x12, // pTos client
+ 0x72, SIG_ADDTOOFFSET(+2), // lofsa sOpenElev
+ SIG_MAGICDWORD,
+ 0x1c, // ne?
+ 0x31, 0x08, // bnt 08
+ 0x38, SIG_SELECTOR16(handsOn), // pushi handsOn
+ 0x76, // push0
+ 0x81, 0x01, // lag 01
+ 0x4a, 0x04, // send 04 [ SQ5 handsOn: ]
+ SIG_END
+};
+
+static const uint16 sq5PatchElevatorHandsOn[] = {
+ 0x33, 0x0e, // jmp 0e [ skip SQ5 handsOn: ]
+ PATCH_END
+};
+
// script, description, signature patch
static const SciScriptPatcherEntry sq5Signatures[] = {
{ true, 200, "captain chair lockup fix", 1, sq5SignatureCaptainChairFix, sq5PatchCaptainChairFix },
{ true, 226, "toolbox fix", 1, sq5SignatureToolboxFix, sq5PatchToolboxFix },
{ true, 243, "transporter room speed fix", 3, sq5SignatureTransporterRoomSpeedFix, sq5PatchTransporterRoomSpeedFix },
+ { 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, 30, "ChoiceTalker lockup fix", 1, sciNarratorLockupSignature, sciNarratorLockupPatch },
More information about the Scummvm-git-logs
mailing list