[Scummvm-tracker] [ScummVM :: Bugs] #13367: SCUMM: Loom (EGA) - Bobbin as Rusty can exit the cell when the door is locked
ScummVM :: Bugs
trac at scummvm.org
Mon Mar 21 14:30:42 UTC 2022
#13367: SCUMM: Loom (EGA) - Bobbin as Rusty can exit the cell when the door is
locked
--------------------------------+----------------------------
Reporter: antoniou79 | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: SCUMM
Version: | Resolution:
Keywords: glitch, blacksmiths | Game: Loom
--------------------------------+----------------------------
Comment (by eriktorbjorn):
Possible workaround, though I've only given it a quick test with the
English DOS EGA version so it's merely proof-of-concept. Maybe there's
some better way:
{{{
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index ba5545ccd01..6ebdd1f7d52 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -1479,6 +1479,22 @@ void ScummEngine_v5::o5_loadRoomWithEgo() {
obj = getVarOrDirectWord(PARAM_1);
room = getVarOrDirectByte(PARAM_2);
+ // WORKAROUND: Bug #13367. In the EGA DOS version, it's possible
to
+ // walk through the closed cell door, if you click on the ground
just
+ // below it. This is because while the door is closd when Stoke
leaves
+ // the room, the open door object is not set to untouchable.
+ //
+ // Later versions work around this by adding code to the object's
+ // script to check if the door is open or not. That's the fix we
+ // emulate here.
+
+ if (_game.id == GID_LOOM && _game.version == 3 && _game.platform
== Common::kPlatformDOS && _currentRoom == 38 && !readVar(36339)) {
+ fetchScriptWordSigned();
+ fetchScriptWordSigned();
+ runScript(204, false, false, nullptr);
+ return;
+ }
+
a = derefActor(VAR(VAR_EGO), "o5_loadRoomWithEgo");
a->putActor(room);
}}}
--
Ticket URL: <https://bugs.scummvm.org/ticket/13367#comment:13>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list