[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