[Scummvm-git-logs] scummvm master -> 5fa0168e8864b03501ffbc35c0112ce4bcfbf0ed

sluicebox noreply at scummvm.org
Mon May 9 16:33:50 UTC 2022


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:
5fa0168e88 SCI32: Fix KQ7 wooden nickel hotspot in Faux Shop


Commit: 5fa0168e8864b03501ffbc35c0112ce4bcfbf0ed
    https://github.com/scummvm/scummvm/commit/5fa0168e8864b03501ffbc35c0112ce4bcfbf0ed
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2022-05-09T12:31:04-04:00

Commit Message:
SCI32: Fix KQ7 wooden nickel hotspot in Faux Shop

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 908e727452f..926d602398a 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -176,6 +176,7 @@ static const char *const selectorNameTable[] = {
 	"track",        // Phant2
 	"update",       // Phant2
 	"xOff",         // Phant2
+	"addRespondVerb",// KQ7
 	"eachElementDo",// KQ7
 	"fore",         // KQ7
 	"back",         // KQ7
@@ -310,6 +311,7 @@ enum ScriptPatcherSelectors {
 	SELECTOR_track,
 	SELECTOR_update,
 	SELECTOR_xOff,
+	SELECTOR_addRespondVerb,
 	SELECTOR_eachElementDo,
 	SELECTOR_fore,
 	SELECTOR_back,
@@ -7075,6 +7077,43 @@ static const uint16 kq7StopTimersPatch[] = {
 	PATCH_END
 };
 
+// The wooden nickel can't be given to the Faux Shop owner in early versions of
+//  KQ7 because the script doesn't register the hotspot. This was fixed in later
+//  versions. We add the missing shopOwner:addRespondVerb call.
+//
+// Applies to: PC 1.4 and PC 1.51 English/German/French
+// Responsible method: rm5000:init
+static const uint16 kq7FauxShopWoodenNickelSignature[] = {
+	SIG_MAGICDWORD,
+	0x38, SIG_SELECTOR16(ignoreActors),     // pushi ignoreActors
+	0x78,                                   // push1
+	0x78,                                   // push1
+	SIG_ADDTOOFFSET(+13),
+	0x34, SIG_UINT16(0x1000),               // ldi 1000 [ signal ]
+	SIG_ADDTOOFFSET(+2),
+	0x38, SIG_SELECTOR16(setCel),           // pushi setCel
+	0x78,                                   // push1
+	0x39, 0x09,                             // pushi 09
+	0x38, SIG_SELECTOR16(init),             // pushi init
+	0x76,                                   // push0
+	SIG_END
+};
+
+static const uint16 kq7FauxShopWoodenNickelPatch[] = {
+	0x39, PATCH_SELECTOR8(cel),             // pushi cel
+	0x78,                                   // push1
+	0x39, 0x09,                             // pushi 09
+	PATCH_ADDTOOFFSET(+13),
+	0x34, PATCH_UINT16(0x5000),             // ldi 5000 [ signal | ignoreActors flag ]
+	PATCH_ADDTOOFFSET(+2),
+	0x38, PATCH_SELECTOR16(init),           // pushi init
+	0x76,                                   // push0
+	0x38, PATCH_SELECTOR16(addRespondVerb), // pushi addRespondVerb
+	0x78,                                   // push1
+	0x39, 0x3b,                             // pushi 3b [ wooden nickel ]
+	PATCH_END
+};
+
 //          script, description,                                      signature                                 patch
 static const SciScriptPatcherEntry kq7Signatures[] = {
 	{  true,     0, "disable video benchmarking",                  1, kq7BenchmarkSignature,                    kq7BenchmarkPatch },
@@ -7084,6 +7123,7 @@ static const SciScriptPatcherEntry kq7Signatures[] = {
 	{  true,    30, "fix allowing too many saves",                 1, kq7TooManySavesSignature,                 kq7TooManySavesPatch },
 	{  true,  1250, "fix opening cartoon",                         1, kq7OpeningCartoonSignature,               kq7OpeningCartoonPatch },
 	{  true,  1250, "fix statue gem cel",                          1, kq7StatueGemCelSignature,                 kq7StatueGemCelPatch },
+	{  true,  5000, "fix wooden nickel in faux shop",              1, kq7FauxShopWoodenNickelSignature,         kq7FauxShopWoodenNickelPatch },
 	{  true,  5300, "fix snake oil salesman disposal",             1, kq7SnakeOilSalesmanSignature,             kq7SnakeOilSalesmanPatch },
 	{  true,  5301, "fix chicken cartoon",                         1, kq7ChickenCartoonSignature,               kq7ChickenCartoonPatch },
 	{  true,  6100, "fix extra ambrosia",                          1, kq7ExtraAmbrosiaSignature,                kq7ExtraAmbrosiaPatch },




More information about the Scummvm-git-logs mailing list