[Scummvm-tracker] [ScummVM] #10835: QFG4: Mage stuck unable to cast spells in endgame crystal room

Vhati trac at scummvm.org
Fri Dec 14 07:04:10 CET 2018


#10835: QFG4: Mage stuck unable to cast spells in endgame crystal room
--------------------------------+----------------------------
  Reporter:  Vhati              |      Owner:  (none)
      Type:  defect             |     Status:  new
  Priority:  high               |  Component:  Engine: SCI
Resolution:                     |   Keywords:  SCI32 original
      Game:  Quest for Glory 4  |
--------------------------------+----------------------------

Comment (by Vhati):

 In project state 2, hero has view:18, holding the staff. Cels 0-9.

 An End cycler is set on hero, which completes and cues when the endCel it
 saw on hero's view during init() is reached.
 \\
 \\
 project::changeState(2)
 {{{
 (g0_hero setCycle End self)
 }}}
 \\
 \\
 avis' getHurt() is switching hero to view:5, plain standing. Only a cel 0.
 \\
 \\
 avis::getHurt() [1c07]
 {{{
 ((and loc4_toldJoke (not (g0_hero script:)))
         (g0_hero view: 5 setLoop: 5 1)
         (g0_hero setScript: sAdavisDies)
 )
 }}}

 hero's setLoop() updates hero's cycler's clientLastCel.
 \\
 \\
 script 64998 - Prop::setLoop()
 {{{
 (method (setLoop &tmp temp0)
         (= temp0 loop)
         (super setLoop: &rest)
         (if (and cycler (!= temp0 loop))
                 (cycler clientLastCel: (self lastCel:))
         )
 )
 }}}
 But the cycler's endCel was NOT updated.
 \\
 \\
 script 64992 - CT::doit()
 {{{
 (method (doit &tmp temp0 temp1)
         (if
         (!= (= temp1 (client cel?)) (= temp0 (self nextCel:)))
                 (if (== temp1 endCel)
                         (self cycleDone:)
                 else
                         (client cel: temp0)
                 )
         )
 )
 }}}
 \\
 \\
 Assuming some mechanism disallows values beyond the loop's last cel,
 hero's cycler will never reach the index it expects. Never complete. And
 never cue.

 At max speed, hero's cycler not only completes. project advances all the
 way to disposal before getHurt() replaces hero's view.

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


More information about the Scummvm-tracker mailing list