[Scummvm-git-logs] scummvm master -> ced47b44eae3307ee9e84299833b275b5b122fca

bluegr bluegr at gmail.com
Mon Oct 22 23:43:57 CEST 2018


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:
ced47b44ea SCI: Script patch for LB1 candles, bug #10743 (#1355)


Commit: ced47b44eae3307ee9e84299833b275b5b122fca
    https://github.com/scummvm/scummvm/commit/ced47b44eae3307ee9e84299833b275b5b122fca
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2018-10-23T00:18:52+03:00

Commit Message:
SCI: Script patch for LB1 candles, bug #10743 (#1355)

Fixes a persistence bug in original game

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 2c3fe5e..7bc44f8 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -3346,6 +3346,32 @@ static const uint16 laurabow1PatchArmorOilingArmFix[] = {
 	PATCH_END
 };
 
+// Jeeves lights the chapel candles (room 58) in act 2 but they don't stay
+//  lit when re-entering until the next act. This is due to Room58:init
+//  incorrectly testing the global variable that tracks Jeeves' act 2 state.
+//
+// We fix this by changing the test from if global155 equals 11, which it
+//  never does, to if it's greater than 11. The global is set to 12 in
+//  lightCandles:changeState(11) and it continues to increment as Jeeves'
+//  chore sequence progresses, ending with 17.
+//
+// Applies to: DOS, Amiga, Atari ST
+// Responsible method: Room58:init
+// Fixes bug #10743
+static const uint16 laurabow1SignatureChapelCandlesPersistence[] = {
+	SIG_MAGICDWORD,
+	0x89, 0x9b,                         // lsg global155 [ Jeeves' act 2 state ]
+	0x35, 0x0b,                         // ldi b
+	0x1a,                               // eq?
+	SIG_END
+};
+
+static const uint16 laurabow1PatchChapelCandlesPersistence[] = {
+	PATCH_ADDTOOFFSET(+4),
+	0x1e,                               // gt?
+	PATCH_END
+};
+
 // LB1 DOS doesn't acknowledge Lillian's presence in room 44 when she's sitting
 //  on the bed in act 4. Look, talk, etc respond that she's not there.
 //  This is due to not setting global 195 which tracks who is in the room.
@@ -3450,6 +3476,7 @@ static const SciScriptPatcherEntry laurabow1Signatures[] = {
 	{  true,    37, "armor move to fix",                        2, laurabow1SignatureArmorMoveToFix,                  laurabow1PatchArmorMoveToFix },
 	{  true,    37, "allowing input, after oiling arm",         1, laurabow1SignatureArmorOilingArmFix,               laurabow1PatchArmorOilingArmFix },
 	{  true,    44, "lillian bed fix",                          1, laurabow1SignatureLillianBedFix,                   laurabow1PatchLillianBedFix },
+  {  true,    58, "chapel candles persistence",               1, laurabow1SignatureChapelCandlesPersistence,        laurabow1PatchChapelCandlesPersistence },
 	{  true,   236, "tell Lilly about Gertie blocking fix 1/2", 1, laurabow1SignatureTellLillyAboutGerieBlockingFix1, laurabow1PatchTellLillyAboutGertieBlockingFix1 },
 	{  true,   236, "tell Lilly about Gertie blocking fix 2/2", 1, laurabow1SignatureTellLillyAboutGerieBlockingFix2, laurabow1PatchTellLillyAboutGertieBlockingFix2 },
 	SCI_SIGNATUREENTRY_TERMINATOR





More information about the Scummvm-git-logs mailing list