[Scummvm-git-logs] scummvm branch-2-1 -> 19d51a1049ba74fbddfe1e005f4da899ca444df4

sluicebox 22204938+sluicebox at users.noreply.github.com
Fri Sep 27 04:50:03 CEST 2019


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:
175ec2c454 SCI: Remove trailing commas from patch arrays
19d51a1049 SCI32: Fix QFG4 bridge secret exit


Commit: 175ec2c4542e1453156041a6eca26a726642c626
    https://github.com/scummvm/scummvm/commit/175ec2c4542e1453156041a6eca26a726642c626
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2019-09-26T19:49:26-07:00

Commit Message:
SCI: Remove trailing commas from patch arrays

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 72196ad..7256acc 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -1329,7 +1329,7 @@ static const uint16 ecoquest2SignatureIconBarTutorial[] = {
 	SIG_MAGICDWORD,
 	0x8d, 0x01,                         // lst 01  [ uninitialized ]
 	0x4a, 0x08,                         // send 08 [ EventHandler firstTrue: handleEvent temp1 ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 ecoquest2PatchIconBarTutorial[] = {
@@ -1387,7 +1387,7 @@ static const uint16 ecoquest2SignatureRoom500Items[] = {
 	0x4a, 0x06,                         // send 06 [ ego has: 11 ]
 	0x18,                               // not
 	0x30, SIG_UINT16(0x0058),           // bnt 0058 [ don't initialize paper ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 ecoquest2PatchRoom500Items[] = {
@@ -3200,7 +3200,7 @@ static const uint16 icemanDestroyerTimer2Signature[] = {
 	0x38, SIG_UINT16(0x0187),           // pushi 0187
 	0x39, 0x05,                         // pushi 05
 	0x47, 0xff, 0x00, 0x04,             // calle proc255_0 [ print 391 5 ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 icemanDestroyerTimer2Patch[] = {
@@ -3255,7 +3255,7 @@ static const uint16 icemanClimbDownHatchSignature[] = {
 	0x39, SIG_SELECTOR8(setScript),     // pushi setScript
 	0x78,                               // push1
 	0x72, SIG_UINT16(0xfc24),           // lofsa downTheHatchScript
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 icemanClimbDownHatchPatch[] = {
@@ -7931,14 +7931,14 @@ static const uint16 pq3SignatureDoctorMouthSpeed[] = {
 	0x78,                                // push1
 	SIG_ADDTOOFFSET(+13),
 	0x4a, 0x1c,                          // send 1c [ doctorMouth ... cycleSpeed: 1 ... ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 pq3PatchDoctorMouthSpeed[] = {
 	0x32, PATCH_UINT16(0x0002),          // jmp 0002
 	PATCH_ADDTOOFFSET(+15),
 	0x4a, 0x16,                          // send 16 [ don't set cycleSpeed, use default (6) ]
-	PATCH_END,
+	PATCH_END
 };
 
 // The house fire on day six reoccurs if you return to the hospital. Flag 66
@@ -7972,7 +7972,7 @@ static const uint16 pq3SignatureHouseFireRepeats[] = {
 	0x35, 0x01,                          // ldi 01
 	0x65, 0x10,                          // aTop cycles
 	0x32, SIG_UINT16(0x003e),            // jmp 003e [ end of method ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 pq3PatchHouseFireRepeats[] = {
@@ -7997,7 +7997,7 @@ static const uint16 pq3PatchHouseFireRepeats[] = {
 	0x31, 0x04,                          // bnt 04 [ state 8 ]
 	0x35, 0x01,                          // ldi 01
 	0x65, 0x10,                          // aTop cycles
-	PATCH_END,
+	PATCH_END
 };
 
 //          script, description,                                 signature                     patch
@@ -12710,7 +12710,7 @@ static const uint16 qfg4InnDoorCDSignature[] = {
 	0x81, 0x00,                         // lag 00
 	0x4a, SIG_UINT16(0x0008),           // send 08  [ hero setHeading: 0 self ]
 	0x32, SIG_UINT16(0x00c3),           // jmp 00c3 [ end of method ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 qfg4InnDoorCDPatch[] = {
@@ -12747,7 +12747,7 @@ static const uint16 qfg4WalkUpSlopeCDSignature[] = {
 	0x76,                               // push0
 	SIG_ADDTOOFFSET(+8),
 	0x4a, SIG_UINT16(0x000e),           // send 0e [ hero setMotion: 0 ... ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 qfg4WalkUpSlopeCDPatch[] = {
@@ -12766,7 +12766,7 @@ static const uint16 qfg4WalkDownSlopeCDSignature[] = {
 	0x38, SIG_UINT16(0x0218),           // pushi handsOff [ hard-coded for CD ]
 	SIG_ADDTOOFFSET(+15),
 	0x4a, SIG_UINT16(0x0008),           // send 08 [ hero setStep: ... ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 qfg4WalkDownSlopeCDPatch[] = {
@@ -12786,7 +12786,7 @@ static const uint16 qfg4WalkDownSlopeNrsSignature[] = {
 	0x38, SIG_UINT16(0x0218),           // pushi handsOff [ hard-coded for CD ]
 	SIG_ADDTOOFFSET(+15),
 	0x4a, SIG_UINT16(0x0008),           // send 08 [ hero setStep: ... ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 qfg4WalkDownSlopeNrsPatch[] = {
@@ -13077,7 +13077,7 @@ static const uint16 qfg4ArgumentMessageFloppySignature[] = {
 	0x76,                               // push0
 	0x54, SIG_UINT16(0x0004),           // self 04  [ self dispose: ]
 	0x32, SIG_UINT16(0x0049),           // jmp 0049 [ end of method ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 qfg4ArgumentMessageFloppyPatch[] = {
@@ -13092,7 +13092,7 @@ static const uint16 qfg4ArgumentMessageFloppyPatch[] = {
 	0x81, 0x01,                         // lag 01
 	0x4a, PATCH_UINT16(0x0004),         // send 04 [ Glory handsOn: ]
 	0x33, 0x26,                         // jmp 26 [ self dispose:, end of method ]
-	PATCH_END,
+	PATCH_END
 };
 
 // The great hall door options in room 627 are incorrect at night after Katrina
@@ -13354,7 +13354,7 @@ static const uint16 qfg4Room627SqueakFloppySignature[] = {
 	0x78,                               // push1
 	0x39, 0x71,                         // pushi 71 [ flag 113 ]
 	0x45, 0x02, SIG_UINT16(0x0002),     // callb proc0_2 02 [ set flag 113 (incorrect, removed from CD) ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 qfg4Room627SqueakFloppyPatch[] = {
@@ -13363,7 +13363,7 @@ static const uint16 qfg4Room627SqueakFloppyPatch[] = {
 	0x32, PATCH_UINT16(0x0039),         // jmp 0039 [ skip squeak message if door has been oiled ]
 	PATCH_ADDTOOFFSET(+26),
 	0x32, PATCH_UINT16(0x0004),         // jmp 0004 [ don't set flag 113 ]
-	PATCH_END,
+	PATCH_END
 };
 
 static const uint16 qfg4Room627SqueakCDSignature[] = {
@@ -13377,13 +13377,13 @@ static const uint16 qfg4Room627SqueakCDSignature[] = {
 	0x39, 0x71,                         // pushi 71 [ flag 113 ]
 	0x45, 0x04, SIG_UINT16(0x0002),     // callb proc0_4 02 [ selected action other than listening? (incorrect) ]
 	0x31, 0x2c,                         // bnt 2c [ skip squeak message ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 qfg4Room627SqueakCDPatch[] = {
 	PATCH_ADDTOOFFSET(+10),
 	0x32, PATCH_UINT16(0x0032),         // jmp 0032 [ skip squeak message if door has been oiled ]
-	PATCH_END,
+	PATCH_END
 };
 
 // Looking through the keyhole in room 627 into the great hall responds with a
@@ -13522,7 +13522,7 @@ static const uint16 qfg4ChaseRepeatsSignature[] = {
 	0x46, SIG_UINT16(0xfde7),           // calle proc64999_5 0a
 	      SIG_UINT16(0x0005),
 	      SIG_UINT16(0x000a),
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 qfg4ChaseRepeatsPatch[] = {
@@ -13540,7 +13540,7 @@ static const uint16 qfg4ChaseRepeatsPatch[] = {
 	0x38, PATCH_UINT16(0x00a4),         // pushi 00a4 [ flag 164 ]
 	0x45, 0x03, PATCH_UINT16(0x0002),   // callb proc0_3 02 [ clear chase flag 164 ]
 	0x33, 0x31,                         // jmp 31 [ continue room init ]
-	PATCH_END,
+	PATCH_END
 };
 
 // When the necrotaurs catch hero in the woods to take him to the dungeon, two
@@ -13760,7 +13760,7 @@ static const uint16 qfg4GateOptionsSignature[] = {
 	0x39, SIG_MAGICDWORD, 0xe2,         // pushi e2
 	0x39, 0x69,                         // pushi 69
 	0x72,                               // lofsa aGate
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 qfg4GateOptionsPatch[] = {
@@ -13803,7 +13803,7 @@ static const uint16 qfg4Room631LockSqueakSignature[] = {
 	0x38, SIG_SELECTOR16(cue),          // pushi cue [ no squeak ]
 	SIG_ADDTOOFFSET(+7),
 	0x39, SIG_SELECTOR8(play),          // pushi play [ squeak ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 qfg4Room631LockSqueakPatch[] = {
@@ -13852,7 +13852,7 @@ static const uint16 qfg4Room640LockSqueakSignature[] = {
 	0x39, SIG_SELECTOR8(play),          // pushi play [ squeak ]
 	SIG_ADDTOOFFSET(+28),
 	0x38, SIG_SELECTOR16(cue),          // pushi cue [ no squeak ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 qfg4Room640LockSqueakPatch[] = {
@@ -13907,7 +13907,7 @@ static const uint16 qfg4Room643LockSqueakSignature[] = {
 	0x39, SIG_SELECTOR8(play),          // pushi play [ squeak ]
 	SIG_ADDTOOFFSET(+28),
 	0x38, SIG_SELECTOR16(cue),          // pushi cue [ no squeak ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 qfg4Room643LockSqueakPatch[] = {
@@ -13976,7 +13976,7 @@ static const uint16 qfg4Room661LockSqueakSignature[] = {
 	0x39, SIG_SELECTOR8(play),          // pushi play [ squeak ]
 	SIG_ADDTOOFFSET(+28),
 	0x38, SIG_SELECTOR16(cue),          // pushi cue [ no squeak ]
-	SIG_END,
+	SIG_END
 };
 
 static const uint16 qfg4Room661LockSqueakPatch[] = {


Commit: 19d51a1049ba74fbddfe1e005f4da899ca444df4
    https://github.com/scummvm/scummvm/commit/19d51a1049ba74fbddfe1e005f4da899ca444df4
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2019-09-26T19:49:37-07:00

Commit Message:
SCI32: Fix QFG4 bridge secret exit

Fixes bug #10774

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 7256acc..f559590 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -14000,6 +14000,49 @@ static const uint16 qfg4Room661LockSqueakPatch[] = {
 	PATCH_END
 };
 
+// When exiting the Thieves' Guild secret passage (room 340) to the town bridge
+//  (room 290), hero appears in an out of bounds area on the far right of the
+//  screen for 120 ticks and then abruptly teleports to the bridge secret exit.
+//  This is due to not initializing hero until after the 120 tick delay, causing
+//  him to be initially visible in his position from the previous room.
+//
+// We fix this by hiding hero initially so that he appears when emerging from
+//  the secret exit under the bridge after the delay.
+//
+// Applies to: All versions
+// Responsible method: sThiefEnter:changeState
+// Fixes bug: #10774
+static const uint16 qfg4BridgeSecretExitSignature[] = {
+	0x3c,                               // dup
+	0x35, 0x00,                         // ldi 00
+	0x1a,                               // eq?
+	SIG_MAGICDWORD,
+	0x31, 0x07,                         // bnt 07 [ state 1 ]
+	0x35, 0x78,                         // ldi 78
+	0x65, SIG_ADDTOOFFSET(+1),          // aTop ticks [ ticks = 120 ]
+	0x32, SIG_UINT16(0x00dd),           // jmp 00dd [ end of method ]
+	0x3c,                               // dup
+	0x35, 0x01,                         // ldi 01
+	0x1a,                               // eq?
+	0x30, SIG_UINT16(0x0020),           // bnt 0020 [ state 2 ]
+	SIG_END
+};
+
+static const uint16 qfg4BridgeSecretExitPatch[] = {
+	0x2f, 0x0c,                         // bt 0c [ state 1 ]
+	0x39, PATCH_SELECTOR8(hide),        // pushi hide
+	0x76,                               // push0
+	0x81, 0x00,                         // lag 00
+	0x4a, PATCH_UINT16(0x0004),         // send 04 [ hero hide: ]
+	0x35, 0x78,                         // ldi 78
+	0x65, PATCH_GETORIGINALBYTE(+9),    // aTop ticks [ ticks = 120 ]
+	0x3c,                               // dup
+	0x35, 0x01,                         // ldi 01
+	0x1a,                               // eq?
+	0x31, 0x20,                         // bnt 20 [ state 2 ]
+	PATCH_END
+};
+
 //          script, description,                                     signature                      patch
 static const SciScriptPatcherEntry qfg4Signatures[] = {
 	{  true,     0, "prevent autosave from deleting save games",   1, qfg4AutosaveSignature,         qfg4AutosavePatch },
@@ -14027,6 +14070,7 @@ static const SciScriptPatcherEntry qfg4Signatures[] = {
 	{  true,   270, "fix town gate after a staff dream",           1, qfg4DreamGateSignature,        qfg4DreamGatePatch },
 	{  true,   270, "fix town gate doormat at night",              1, qfg4TownGateDoormatSignature,  qfg4TownGateDoormatPatch },
 	{  true,   290, "fix chase repeating",                         1, qfg4ChaseRepeatsSignature,     qfg4ChaseRepeatsPatch },
+	{  true,   290, "fix bridge secret exit",                      1, qfg4BridgeSecretExitSignature, qfg4BridgeSecretExitPatch },
 	{  true,   300, "fix empty burgomeister room teller",          1, qfg4EmptyBurgoRoomSignature,   qfg4EmptyBurgoRoomPatch },
 	{  true,   320, "fix pathfinding at the inn",                  1, qfg4InnPathfindingSignature,   qfg4InnPathfindingPatch },
 	{  true,   320, "fix talking to absent innkeeper",             1, qfg4AbsentInnkeeperSignature,  qfg4AbsentInnkeeperPatch },





More information about the Scummvm-git-logs mailing list