[Scummvm-git-logs] scummvm master -> 7841f6af51f0698f03188f557b5fab84fab1da7f
sluicebox
noreply at scummvm.org
Mon Sep 15 22:50:35 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
7841f6af51 SCI: Fix ECO1 duplicate garbage flag
Commit: 7841f6af51f0698f03188f557b5fab84fab1da7f
https://github.com/scummvm/scummvm/commit/7841f6af51f0698f03188f557b5fab84fab1da7f
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2025-09-15T15:46:08-07:00
Commit Message:
SCI: Fix ECO1 duplicate garbage flag
Thanks to @Doomlazer for reporting this
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 188470cf3e5..0f825021b0f 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -1727,6 +1727,49 @@ static const uint16 ecoquest1PatchFleshEaterEgoSpeed[] = {
PATCH_END
};
+// Two rooms contain unrelated pieces of garbage that use the same garbage flag,
+// causing one to disappear after cleaning up the other. This appears to be a
+// copy/paste mistake, as both objects are named `book` even though one is a
+// sheet of metal.
+//
+// We fix this by patching the sheet of metal in room 180 to use flag 26 instead
+// of flag 8. The book in room 200 uses flag 8, and flag 26 is the next in the
+// sequence that isn't used. Either room could be patched, but it's better to
+// not patch 200 because it's garbage is dynamic. Changing that flag could
+// confuse existing save games.
+//
+// Applies to: All versions
+// Responsible method: Heap in script 180
+static const uint16 ecoquest1SignatureGarbageFlagFloppy[] = {
+ SIG_MAGICDWORD, // `book` [ sheet of metal ]
+ SIG_UINT16(0x008a), // x: 138
+ SIG_UINT16(0x0083), // y: 131
+ SIG_ADDTOOFFSET(+64),
+ SIG_UINT16(0x0008), // flag: 8
+ SIG_END
+};
+
+static const uint16 ecoquest1PatchGarbageFlagFloppy[] = {
+ PATCH_ADDTOOFFSET(+68),
+ PATCH_UINT16(0x001a), // flag: 26
+ PATCH_END
+};
+
+static const uint16 ecoquest1SignatureGarbageFlagCD[] = {
+ SIG_MAGICDWORD, // `book` [ sheet of metal ]
+ SIG_UINT16(0x008a), // x: 138
+ SIG_UINT16(0x0083), // y: 131
+ SIG_ADDTOOFFSET(+70),
+ SIG_UINT16(0x0008), // flag: 8
+ SIG_END
+};
+
+static const uint16 ecoquest1PatchGarbageFlagCD[] = {
+ PATCH_ADDTOOFFSET(+74),
+ PATCH_UINT16(0x001a), // flag: 26
+ PATCH_END
+};
+
// script, description, signature patch
static const SciScriptPatcherEntry ecoquest1Signatures[] = {
{ true, 123, "flesh-eater inset speed", 1, ecoquest1SignatureFleshEaterInsetSpeed, ecoquest1PatchFleshEaterInsetSpeed },
@@ -1734,6 +1777,8 @@ static const SciScriptPatcherEntry ecoquest1Signatures[] = {
{ true, 140, "CD: mosaic puzzle fix", 2, ecoquest1SignatureMosaicPuzzleFix, ecoquest1PatchMosaicPuzzleFix },
{ true, 160, "CD: give superfluous oily shell", 1, ecoquest1SignatureGiveOilyShell, ecoquest1PatchGiveOilyShell },
{ true, 160, "CD/Floppy: column puzzle fix", 1, ecoquest1SignatureColumnPuzzleFix, ecoquest1PatchColumnPuzzleFix },
+ { true, 180, "garbage flag fix", 1, ecoquest1SignatureGarbageFlagFloppy, ecoquest1PatchGarbageFlagFloppy },
+ { true, 180, "garbage flag fix", 1, ecoquest1SignatureGarbageFlagCD, ecoquest1PatchGarbageFlagCD },
{ true, 220, "CD: empty apartment messages", 1, ecoquest1SignatureEmptyApartmentMessages, ecoquest1PatchEmptyApartmentMessages },
{ true, 226, "Spanish: disable bleach pump test", 1, ecoquest1SignatureBleachPumpTest, ecoquest1PatchBleachPumpTest },
{ true, 320, "CD: south cliffs position", 1, ecoquest1SignatureSouthCliffsPosition, ecoquest1PatchSouthCliffsPosition },
More information about the Scummvm-git-logs
mailing list