[Scummvm-tracker] [ScummVM] #10830: QFG4: Stuck at closed town gate after resting til night

Vhati trac at scummvm.org
Sat Dec 8 05:53:46 CET 2018


#10830: QFG4: Stuck at closed town gate after resting til night
--------------------------------+----------------------------
  Reporter:  Vhati              |      Owner:  (none)
      Type:  defect             |     Status:  new
  Priority:  normal             |  Component:  Engine: SCI
Resolution:                     |   Keywords:  SCI32 original
      Game:  Quest for Glory 4  |
--------------------------------+----------------------------

Comment (by Vhati):

 script 270 - rm270::init()
 {{{
 # If arriving at night and not waking from a dream room.
 (if (and g121_myIsNight (not (== g12_myPrevRoomNum 110)))
         (= local2 1)
         (fSouth init:)
         (gateTeller init: fSouth 270 9 125)
 else
         (g2_myCurrentRoom south: 290)
 )
 # ...
 (g0_hero setScript: sComeOnIn)
 }}}
 \\
 \\
 fSouth::init() makes its "heading" property a doorMat that schedules
 sTo290Night... which shows gateTeller. That prompts about climbing the
 wall.
 \\
 \\
 Even if hero walked to the staff during the day, doit() constantly checks
 for nightfall, to init fSouth and gateTeller. It sets local2=1 to stop
 further checking & inits.
 \\
 \\
 script 270 - rm270::doit()
 {{{
 (if (and g121_myIsNight (not local2))
         (= local2 1)
         (fSouth init:)
         (gateTeller init: fSouth 270 9 125)
 )
 }}}
 \\
 \\
 If hero came from a dream room, sComeOnIn::changeState(0) schedules
 sAfterTheDream. It does nearly the opposite, disposing fSouth and
 gateTeller.
 \\
 \\
 script 270 - sAfterTheDream::changeState(2)
 {{{
 (gateTeller dispose:)
 (fSouth actions: 0)
 (if (fSouth heading?)
         ((fSouth heading?) dispose:)
         (fSouth heading: 0)
 )
 }}}
 However, local2 will still be 1.
 If time passes until nightfall, doit() will never check again to init
 another doorMat.

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


More information about the Scummvm-tracker mailing list