[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