[Scummvm-tracker] [ScummVM] #10733: SCI: LB1: Commands lockup game when colliding with obstacles

sluicebox trac at scummvm.org
Wed Oct 10 03:15:52 CEST 2018


#10733: SCI: LB1: Commands lockup game when colliding with obstacles
-------------------------------------------------+-------------------------
  Reporter:  sluicebox                           |      Owner:  (none)
      Type:  defect                              |     Status:  new
  Priority:  normal                              |  Component:  Engine: SCI
Resolution:                                      |   Keywords:  has-pull-
      Game:  Laura Bow 1: The Colonel's Bequest  |  request
-------------------------------------------------+-------------------------

Comment (by sluicebox):

 I agree and I'm not wild about patching setMotion, it's risky, but yeah
 there are just too many. I've played through once but this one needs a lot
 of testing.

 DOS, Amiga, and Atari ST's setMotion have the same byte code and from my
 tests with those versions all of this behavior, before and after the
 patch, is consistent.

 Since this patch clears a signal flag the question is who depends on that
 flag's value and when. As far as I can tell from ScummVM source the
 interpreter only writes the flag in kDoBresen and never depends on its
 value. The scripts should be testing the flag through isBlocked but could
 be testing signal directly. The only other scripts that call isBlocked are
 245 and 269. They test to see if Clarence or Gloria are blocked when
 playing billiards and if Jeeves is blocked when sweeping so that they can
 tell you to get out of the way. From my tests that behaves the same. It's
 trickier to search for any instances of directly testing signal for the
 flag but I've tried and haven't found any. So it seems to me that if this
 is going to have any side effects it would be with ego's movement.

 From what I've seen this is a separate bug from the movement lockups that
 have already been fixed. I tried disabling the armor script patches and
 that lockup still occurred. The armor scripts get stuck in an infinite
 movement loop whereas this bug is CB1:doit terminating a script's
 movement.

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


More information about the Scummvm-tracker mailing list