Opened 3 years ago

Closed 3 years ago

#7119 closed defect (fixed)

SCI: LB1: Game hangs when oiling or opening armor if standing in wrong spot

Reported by: SF/boneosaurusrex Owned by: m-kiewitz
Priority: normal Component: Engine: SCI
Keywords: original script Cc:
Game: Laura Bow 1: The Colonel's Bequest

Description

Oiling the armor or opening the visor in the entrance way causes Laura to walk to the armor before performing the action. Depending on where Laura is standing she will get stuck trying to position herself in front of the armor and the game will hang. This is a bug in the original game. Sierra attempted to fix this in Amiga/Atari versions by expanding the area they test to see if Laura has arrived before advancing the script but their fix is incomplete. They patched the script for opening the visor but not for oiling the armor.

In the DOS version, room 37's openVisor:changeState sends laura to 107,152 until ego:inRect(106 150 108 152) passes. In Amiga/Atari this was expanded to 104 148 111 154. oiling:changeState has the same code but they forgot to patch it.

I've included a ScummVM save game (DOS version) of Laura standing in a place where "oil visor" or "open visor" will trip the bug. Laura gets stuck at 110,150 which is outside the old area but inside the new.

Tested with 1.9 latest.

Ticket imported from: bugs/7119.

Attachments (1)

laurabow.020 (26.4 KB ) - added by SF/boneosaurusrex 3 years ago.

Download all attachments as: .zip

Change History (7)

by SF/boneosaurusrex, 3 years ago

Attachment: laurabow.020 added

comment:1 by m-kiewitz, 3 years ago

To me it seems the oil visor code actually uses the same rect as the patched open visor code.

comment:2 by m-kiewitz, 3 years ago

the bug also happens in the Amiga version. Sierra changed the inRect() call, but that one is only called to check if Laura Bow is already near the armor. It doesn't fix Laura Bow getting effectively frozen depending on the position, that she was at when "oil helmet of armor" or "open visor" was typed in.

comment:3 by m-kiewitz, 3 years ago

I just changed the destination coordinate for Laura Bow and it seems no collisions occur anymore. With the original destination, Laura Bow may get into a collision with the armor, which then resulted in the reported endless loop / "freeze". As I said - at least the Amiga version was also affected. I assume that the Atari ST version was also not fixed in that regard.

Please try around a bit. Commit is 5385b4e. Switching this to pending-fixed. Thanks for reporting this bug.

comment:4 by m-kiewitz, 3 years ago

Keywords: original script added
Owner: set to m-kiewitz
Resolution: fixed
Status: newpending

comment:5 by SF/boneosaurusrex, 3 years ago

I tested the nightly on all three versions, it's fixed. Thanks!

You're right, I was all turned around about the coordinate patching, sorry about that.

There are similar bugs when opening the secret passages but they're harder to reproduce; once I can find triggering coordinates I'll make a save game and write it up.

While testing this script patch I found an unrelated sierra bug with the armor. Writing that up now...

comment:6 by m-kiewitz, 3 years ago

Status: pendingclosed
Note: See TracTickets for help on using tickets.