Opened 6 years ago

Closed 5 years ago

Last modified 5 years ago

#6458 closed defect (fixed)

SCI: LB2 - Pterodactical door can be opened while wired shut

Reported by: SF/boneosaurusrex Owned by: m-kiewitz
Priority: normal Component: Engine: SCI
Keywords: original script Cc:
Game: Laura Bow 2: The Dagger of Amon-Ra

Description

There is a bug in Laura Bow 2 with the door in the pterodactyl room in both the floppy and CD versions. The door can be locked and open at the same time, causing the door to appear open while the sprite of the locked door handles floats in the air. In Sierra SCI this can corrupt the state to the point that the game later crashes, but I haven't seen that in ScummVM.

During the Act 5 chase scene in the pterodactyl room you're supposed to close the door and then lock the door by tying wire around the door handles. If you then try to open the door, the door is reported to be locked and it appears that nothing happens. If you then leave the room and come back the door is open but the wired door handles remain floating in the air, as the door is still considered locked though open. At this point, in Sierra SCI if you go west to the armory, close and board the door there, and then go north the game will often crash on the room transition.

Other ways to observe this:

  1. With the door closed and wired, try to open the door. ("This door is locked")
  2. Save the game.
  3. Load the saved game.
  4. The door is now open with floating wires.

Or:

  1. With the door closed and wired, go north to the t-rex room.
  2. Return to the pterodactyl room.
  3. Try to open the wired door, it will open with floating wires.

I've attached a ScummVM savegame of the CD version immediately after entering the pterodactyl from the mastodon room, before attempting anything with the door. I've also attached a Sierra SCI savegame, but that one is from the floppy version. Sorry for the inconsistency there, it just happened to be the one I had savegames for.

Steps I've found to reliably crash Sierra SCI on this, in case you're curious:

  1. Close and lock the doors with wire.
  2. Go north to the t-rex room.
  3. Return to the pterodactyl room.
  4. Try to open the wired doors, they will open with floating wires.
  5. Go east to the mastodon room.
  6. Go west to the pterodactyl room.
  7. Go west to the armory.
  8. Close and board the doors.
  9. Go north to the hallway room, and the game will crash on transition.

ScummVM 1.7.0 nightly
Laura Bow 2 1.0 Floppy English & 1.1 CD English

Ticket imported from: bugs/6458.

Attachments (5)

LB2SG.014 (17.4 KB ) - added by SF/boneosaurusrex 6 years ago.
laurabow2-cd.007 (52.6 KB ) - added by SF/boneosaurusrex 6 years ago.
sierra_sci_crash.png (115.4 KB ) - added by SF/boneosaurusrex 6 years ago.
floating_wired_doorhandle.png (39.8 KB ) - added by SF/boneosaurusrex 6 years ago.
wire_crash.png (38.2 KB ) - added by SF/boneosaurusrex 5 years ago.

Download all attachments as: .zip

Change History (10)

by SF/boneosaurusrex, 6 years ago

Attachment: sierra_sci_crash.png added

comment:1 by Strangerke, 6 years ago

Component: Engine: SCI
Game: Laura Bow 2: The Dagger of Amon-Ra

comment:2 by m-kiewitz, 5 years ago

partly fixed by 6d2f0bbcd4cce22a8bd58bfaf94cd235a484f19b
It's not possible anymore to internally open the door in case it's locked

I need to also patch in code, so that the locked state is kept. Which is currently being lost when reentering the room

comment:3 by m-kiewitz, 5 years ago

The issue should now be fully fixed (commit e70923464ee757bc2d33040559383a49cddb6a83)

Effectively 2 script bugs were responsible.
1) the game switched between an internal open + closed state even when the door was wired/locked
2) the game didn't save the wired/locked state properly, that's why it was possible to open it again after leaving and reentering the room

Old saves made after wiring the door will still have issues. Please try to wire the door and verify, that the issue is solved. I can't check that by myself, because I don't have such a saved game. The saved game attached to this bug was made after wiring the door.

You may also enter "vv g 97 1" inside the SCI debugger to "fix" those older saves.

by SF/boneosaurusrex, 5 years ago

Attachment: wire_crash.png added

comment:4 by SF/boneosaurusrex, 5 years ago

It's now crashing when wiring the door; screenshot attached. This crash is also now occurring when obtaining the wires.

In the attached save game the door handle had not been wired, that is the initial state of the room. There is no way to remove the wires from the door once they're on so it's a one-time shot. You're not allowed to try until Act V and I had saved immediately after entering the room without touching anything. I have an earlier save game from the end of Act IV, and I'm getting the same crash when I start from there.

I get the same results if I use the suggested debug command "vv g 97 1".

Tested using mingw-w32-master-5eaddc58 on WinXP & Win7 using CD and floppy versions.

comment:5 by m-kiewitz, 5 years ago

I only see a screenshot and no saved game.

Wait, I already figured it out. The 2nd patch of mine doesn't have a terminator. I just added that. Will commit it in a second.

comment:6 by SF/boneosaurusrex, 5 years ago

The fix works; everything looks great. Tested CD and floppy versions.

comment:7 by Strangerke, 5 years ago

Owner: set to m-kiewitz
Resolution: fixed
Status: newclosed

comment:8 by m-kiewitz, 5 years ago

Keywords: original script added
Note: See TracTickets for help on using tickets.