[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
Tue Mar 22 11:56:25 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):
Alternative version of workaround 1 that doesn't depend on knowing which
variable holds the door state. On the other hand, you have to know two
object numbers instead of one. But I think it's kind of elegant anyway:
{{{
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index ba5545ccd01..aaa6a68a491 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -1056,7 +1056,34 @@ void ScummEngine_v5::o5_findObject() {
getResultPos();
int x = getVarOrDirectByte(PARAM_1);
int y = getVarOrDirectByte(PARAM_2);
- setResult(findObject(x, y));
+ int obj = findObject(x, y);
+
+ // WORKAROUND: In some versions of Loom, it's possible to walk
right
+ // through the closed cell door if you allowed Stoke to lead you
into
+ // the cell rather than skipping the cutscene. This is because the
open
+ // door (object 623) is made touchable or untouchable by the entry
+ // script, and this flag is not updated when the cutscene latest
closes
+ // the door.
+ //
+ // The FM Towns and TurboGrafx-16 versions fix this by making sure
the
+ // object is untouchable at the end of the cutscene. The Macintosh
and
+ // VGA talkie versions make sure the object script checks if the
door
+ // is open. This makes the script identical to the script for the
wall
+ // to the left of the door (object 609).
+ //
+ // The difference between these fixes is what happens if you click
on
+ // the ground just below the closed door. Of course, once you've
been
+ // through the sleep cutscene the entry script will make that
object
+ // untouchable so you only have a small window in which to see the
bug.
+ //
+ // Since the VGA talkie version (sadly) is the most common these
days,
+ // let's go with that fix. But we do it by redirecting the click
to the
+ // wall object instead.
+
+ if (_game.id == GID_LOOM && _game.version == 3 && _game.platform
== Common::kPlatformDOS && _currentRoom == 38 && obj == 623)
+ obj = 609;
+
+ setResult(obj);
}}}
--
Ticket URL: <https://bugs.scummvm.org/ticket/13367#comment:19>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list