SCI: LB1: Commands lockup game when colliding with obstacles
|Reported by:||sluicebox||Owned by:||bluegr|
|Cc:||Game:||Laura Bow 1: The Colonel's Bequest|
The Colonel's Bequest contains over 20 commands which lockup the game if entered while you're colliding with an obstacle. The prime example is opening the upstairs secret passages with "move closet". I've seen old walkthroughs recommend saving before every attempt just in case. This bug affects all versions (DOS/Amiga/Atari ST) and also occurs with Sierra's interpreter.
I've written a script patch that fixes all instances of this.
Attached are saves for all versions in front of a closet. The speed is turned down which makes this easy to reproduce:
- Walk towards the closet, which since you're already up against it will briefly switch Laura's view from standing to walking.
- Quickly press a letter key to bring up the input window while the walking view is displayed. (before she goes back to standing)
- Enter "move closet" or "open closet". Laura will turn around and the game will lockup.
These commands also lockup when entered while colliding:
"open door" at top-of-stairs closet
"look in doghouse"
"knock door" at cellar door
"give necklace" when Celie is in rocking chair
"open door" at dollhouse
"sit" at swing
"pull ring" / "ring bell with cane" at bell tower
"look holes" in secret passages
"open vault with crowbar" / "close vault"
"put valve in shaft"
"look bottle with monocle"
"read newspaper" in attic
"tell lillian about gertie" in kitchen or study
Those are the ones I'm certain of and there might be more but the script patch fixes the root problem.
The root cause is code in CB1:doit that performs an elaborate check every cycle to see if Laura appears blocked and stops her motion if so. I don't know why this game needs this code to manage basic motion that the core classes should have covered but that's what introduces this edge case. This code doesn't appear in other SCI games I've looked at so only this game has this bug.