[Scummvm-git-logs] scummvm master -> 0369e3b8caf1345e792059c0b5f310245e0cbb42

sluicebox 22204938+sluicebox at users.noreply.github.com
Fri Nov 1 16:19:40 CET 2019


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:
0369e3b8ca SCI: Fix PQ1VGA bugs outside Carol's coffee shop


Commit: 0369e3b8caf1345e792059c0b5f310245e0cbb42
    https://github.com/scummvm/scummvm/commit/0369e3b8caf1345e792059c0b5f310245e0cbb42
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2019-11-01T08:17:41-07:00

Commit Message:
SCI: Fix PQ1VGA bugs outside Carol's coffee shop

Fixes bug: #5826

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 0f3f126..1c5a7a2 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -108,6 +108,7 @@ static const char *const selectorNameTable[] = {
 	"localize",     // Freddy Pharkas
 	"roomFlags",    // Iceman
 	"put",          // Police Quest 1 VGA
+	"approachVerbs", // Police Quest 1 VGA, QFG4
 	"newRoom",      // Police Quest 3, GK1
 	"changeState",  // Quest For Glory 1 VGA, QFG4
 	"hide",         // Quest For Glory 1 VGA, QFG4
@@ -178,7 +179,6 @@ static const char *const selectorNameTable[] = {
 	"getSubscriberObj", // RAMA
 	"advanceCurIcon", // QFG4
 	"amount",       // QFG4
-	"approachVerbs", // QFG4
 	"claimed",      // QFG4
 	"cue",          // QFG4
 	"getCursor",    // QFG4
@@ -222,6 +222,7 @@ enum ScriptPatcherSelectors {
 	SELECTOR_localize,
 	SELECTOR_roomFlags,
 	SELECTOR_put,
+	SELECTOR_approachVerbs,
 	SELECTOR_newRoom,
 	SELECTOR_changeState,
 	SELECTOR_hide,
@@ -293,7 +294,6 @@ enum ScriptPatcherSelectors {
 	SELECTOR_getSubscriberObj,
 	SELECTOR_advanceCurIcon,
 	SELECTOR_amount,
-	SELECTOR_approachVerbs,
 	SELECTOR_claimed,
 	SELECTOR_cue,
 	SELECTOR_getCursor,
@@ -8119,8 +8119,52 @@ static const uint16 pq1vgaPatchMapSaveRestoreBug[] = {
 	PATCH_END
 };
 
+// In the first release of PQ1VGA, looking at objects while sitting in the car
+//  outside of Carol's breaks the game. The objects set Look as an approachVerb,
+//  causing ego to float towards them without leaving the car and initializing.
+//
+// We fix this as Sierra did by removing Look from all approachVerbs in room 30.
+//
+// Applies to: English Floppy without 30.HEP and 30.SCR
+// Responsible methods: door:init, harleys:init, willySign:init, carolSign:init,
+//                      carolWindow:init, weeds:init, alley:init, mat:init
+// Fixes bug: #5826
+static const uint16 pq1vgaSignatureFloatOutsideCarols1[] = {
+	0x38, SIG_SELECTOR16(approachVerbs), // pushi approachVerbs
+	SIG_MAGICDWORD,
+	0x78,                                // push1
+	0x78,                                // push1
+	0x54, 0x06,                          // self 06 [ self approachVerbs: 1 ]
+	SIG_END
+};
+
+static const uint16 pq1vgaPatchFloatOutsideCarols1[] = {
+	0x32, PATCH_UINT16(0x0004),          // jmp 0004 [ don't set approachVerbs ]
+	PATCH_END
+};
+
+static const uint16 pq1vgaSignatureFloatOutsideCarols2[] = {
+	0x38, SIG_SELECTOR16(approachVerbs), // pushi approachVerbs
+	SIG_MAGICDWORD,
+	0x7a,                                // push2
+	0x78,                                // push1
+	0x39, 0x04,                          // pushi 04
+	0x54, 0x08,                          // self 08 [ self approachVerbs: 1 4 ]
+	SIG_END
+};
+
+static const uint16 pq1vgaPatchFloatOutsideCarols2[] = {
+	PATCH_ADDTOOFFSET(+3),
+	0x39, 0x01,                          // pushi 01
+	PATCH_ADDTOOFFSET(+2),
+	0x54, 0x06,                          // self 06 [ self approachVerbs: 4 ]
+	PATCH_END
+};
+
 //          script, description,                                         signature                            patch
 static const SciScriptPatcherEntry pq1vgaSignatures[] = {
+	{  true,    30, "float outside carol's (1/2)",                    7, pq1vgaSignatureFloatOutsideCarols1,  pq1vgaPatchFloatOutsideCarols1 },
+	{  true,    30, "float outside carol's (2/2)",                    1, pq1vgaSignatureFloatOutsideCarols2,  pq1vgaPatchFloatOutsideCarols2 },
 	{  true,   152, "getting stuck while briefing is about to start", 1, pq1vgaSignatureBriefingGettingStuck, pq1vgaPatchBriefingGettingStuck },
 	{  true,   341, "put gun in locker bug",                          1, pq1vgaSignaturePutGunInLockerBug,    pq1vgaPatchPutGunInLockerBug },
 	{  true,   500, "map save/restore bug",                           2, pq1vgaSignatureMapSaveRestoreBug,    pq1vgaPatchMapSaveRestoreBug },





More information about the Scummvm-git-logs mailing list