[Scummvm-tracker] [ScummVM] #9806: SCI: SQ4 Windows: Stuck when picking up matches

ScummVM trac at scummvm.org
Sun Mar 24 05:05:33 CET 2019


#9806: SCI: SQ4 Windows: Stuck when picking up matches
----------------------------+---------------------------------------
  Reporter:  dafioram       |      Owner:  sluicebox
      Type:  defect         |     Status:  new
  Priority:  normal         |  Component:  Engine: SCI
Resolution:                 |   Keywords:  original has-pull-request
      Game:  Space Quest 4  |
----------------------------+---------------------------------------
Changes (by sluicebox):

 * keywords:   => original has-pull-request
 * owner:  (none) => sluicebox


Comment:

 Script patches for CD version:
 https://github.com/scummvm/scummvm/pull/1553/

 Great sleuthing everybody! I count three bugs, and in the process found
 two unrelated ones.

 All three let you to break out of the dodge sequence and leave the room
 before it's complete, resulting in a broken state. The matches are one
 symptom, you'll also die if you leave the bar and go north. The fix is to
 prevent breaking out of the dodge sequence before it completes with "Boy
 was that close!" or death.

 BUGS:

 1. Clicking Do on the bar door doesn't check to see if you're in the dodge
 sequence. It should be testing ulence:egoBusy before running enterBar, so
 I added that. That's what happens when you click Do on the timepod.

 2. Dodging quickly before the biker reaches his first checkpoint causes
 the player to prematurely regain control, allowing walking off to another
 screen or in to the bar. Each biker script in each room has an unnecessary
 handsOn call that causes this. Removing these fixes that. Fortunately it's
 always the same byte sequence so one patch can be applied to them all.
 Affects all rooms.

 3. Clicking a verb (Do, Look, etc) on something that ego wasn't facing
 prior to crouching will change ego's heading and view, breaking ego out of
 crouch mode and allowing walking away without dodging. The first verb
 event doesn't even reach its target. For example, with the submitted save
 game, clicking Smell on the force field generator makes ego stand up with
 no message. Setting ego:looper to 0 when crouching prevents this, and
 looper is automatically restored after dodging. Affects all rooms.

 These script bugs exist in the floppy versions but in those the bikers
 move so fast that there's no time to exploit them, which explains how they
 went unnoticed during the game's initial round of QA. They later slowed
 down the bikers in the CD version and that exposed these bugs.

 It should now be impossible to walk away from the dodge sequence in any
 room.

 Regarding the attached save game: the first two bugs will be fixed
 immediately, but the third won't until ego crouches a second time since
 ego is already crouched with a looper set. Clicking Hand on the door will
 still make ego stand up. Next crouch will be escape-proof.

-- 
Ticket URL: <https://bugs.scummvm.org/ticket/9806#comment:7>
ScummVM <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list