[Scummvm-tracker] [ScummVM :: Bugs] #16967: ASYLUM: Sanitarium can become unresponsive when talking to Timber

ScummVM :: Bugs trac at scummvm.org
Tue Sep 1 10:51:48 UTC 2026


#16967: ASYLUM: Sanitarium can become unresponsive when talking to Timber
-------------------------+-----------------------------
Reporter:  eriktorbjorn  |       Owner:  alexbevi
    Type:  defect        |      Status:  closed
Priority:  normal        |   Component:  Engine: Asylum
 Version:                |  Resolution:  fixed
Keywords:                |        Game:  Sanitarium
-------------------------+-----------------------------
Comment (by alexbevi):

 The failure sequence was:

   1. Exit scripts clear flag 480 and begin fading object 1462 out.
   2. Script 13 runs before the fade completes.
   3. It tests flag 479, which is still set, and returns.
   4. The exit finishes and clears 479.
   5. Object 1462 becomes invisible, stops advancing, and script 149 waits
 forever for frame 24.

   The loader now changes that command to test flag 480. This preserves the
 intended sequence:

   - 479=1, 480=1: already visible, skip the fade.
   - 479=0, 480=0: restore the wagon.
   - 479=1, 480=0: cancel the in-progress exit fade.

 {{{
 [Script] Queuing Script idx: 149 from kHitObject (id: 1462, name: 'Timber
 (049) SQ')
 [Script idx: 149]  0: JumpIfActionFind (1462, 6, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 149]  7: HideCursor (0, 0, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 149]  8: JumpAndSetDirection (0, 1569, 722, 8, 1, 1, 0, 0, 0)
 [changeStatus] 2 point1(1568:597) point2(34:66)
 [Script] Entered ActionArea (idx: 46, name: Dog Boy Wagon Exit2)
 [Script] Queuing Script #1 (idx: 0) for Actor (idx: 0)
 [Script] Queuing Script #2 (idx: 12) for Actor (idx: 0)
 [Script idx: 0]  0: Return (0, 0, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 12]  0: JumpIfGameFlag (479, 1, 5, 0, 0, 0, 0, 0, 0)
 [Script idx: 12]  1: ClearGameFlag (480, 0, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 12]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script] Entered ActionArea (idx: 45, name: Dog Boy Wagon Exit)
 [Script] Queuing Script #1 (idx: 0) for Actor (idx: 0)
 [Script] Queuing Script #2 (idx: 11) for Actor (idx: 0)
 [Script idx: 149]  8: JumpAndSetDirection (0, 1569, 722, 8, 2, 1, 0, 0, 0)
 [Script idx: 12]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 0]  0: Return (0, 0, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 11]  0: JumpIfGameFlag (479, 1, 5, 0, 0, 0, 0, 0, 0)
 [Script idx: 11]  1: ClearGameFlag (480, 0, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 11]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script] Entered ActionArea (idx: 47, name: Dog Boy Wagon Enter)
 [Script] Queuing Script #1 (idx: 0) for Actor (idx: 0)
 [Script] Queuing Script #2 (idx: 13) for Actor (idx: 0)
 [Script idx: 149]  8: JumpAndSetDirection (0, 1569, 722, 8, 2, 1, 0, 0, 0)
 [Script idx: 12]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 11]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 0]  0: Return (0, 0, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 13]  0: JumpIfGameFlag (479, 0, 4, 0, 0, 0, 0, 0, 0)
 [Script idx: 13]  5: Return (0, 0, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 149]  8: JumpAndSetDirection (0, 1569, 722, 8, 2, 1, 0, 0, 0)
 [Script idx: 12]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 11]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 149]  8: JumpAndSetDirection (0, 1569, 722, 8, 2, 1, 0, 0, 0)
 [Script idx: 12]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 11]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 149]  8: JumpAndSetDirection (0, 1569, 722, 8, 2, 1, 0, 0, 0)
 [Script idx: 12]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 11]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 149]  8: JumpAndSetDirection (0, 1569, 722, 8, 2, 1, 0, 0, 0)
 [Script idx: 12]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 11]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 149]  8: JumpAndSetDirection (0, 1569, 722, 8, 2, 1, 0, 0, 0)
 [Script idx: 12]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 11]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 149]  8: JumpAndSetDirection (0, 1569, 722, 8, 2, 1, 0, 0, 0)
 [Script idx: 12]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 12]  3: JumpIfGameFlag (480, 0, 5, 0, 0, 0, 0, 0, 0)
 [Script idx: 12]  4: ClearGameFlag (479, 0, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 12]  5: Return (0, 0, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 11]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 149]  8: JumpAndSetDirection (0, 1569, 722, 8, 2, 1, 0, 0, 0)
 [Script idx: 11]  2: EnableObjects (1667, 3, 1, 1462, 0, 0, 0, 0, 0)
 [Script idx: 11]  3: JumpIfGameFlag (480, 0, 5, 0, 0, 0, 0, 0, 0)
 [Script idx: 11]  4: ClearGameFlag (479, 0, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 11]  5: Return (0, 0, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 149]  8: JumpAndSetDirection (0, 1569, 722, 8, 2, 1, 0, 0, 0)
 [changeStatus] 4 point1(1535:656) point2(34:66)
 [Script idx: 149]  9: JumpIfActorCoordinates (0, 1569, 722, 20, 0, 0, 0,
 0, 0)
 [Script idx: 149] 10: ActorFaceTarget (0, 1462, 0, 0, 0, 0, 0, 0, 0)
 [Actor] Facing target 1462 using direction from 0
 [Script idx: 149] 11: WaitUntilFramePlayed (1462, 24, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 149] 11: WaitUntilFramePlayed (1462, 24, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 149] 11: WaitUntilFramePlayed (1462, 24, 0, 0, 0, 0, 0, 0, 0)
 [Script idx: 149] 11: WaitUntilFramePlayed (1462, 24, 0, 0, 0, 0, 0, 0, 0)
 ...
 }}}
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/16967#comment:6>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list