[Scummvm-tracker] [ScummVM] #10615: QFG4: Tentacle doesn't retract after crossing pit at start of game

ScummVM trac at scummvm.org
Thu Dec 27 05:04:43 CET 2018


#10615: QFG4: Tentacle doesn't retract after crossing pit at start of game
--------------------------------+-------------------------
  Reporter:  2Mourty            |      Owner:  (none)
      Type:  defect             |     Status:  new
  Priority:  normal             |  Component:  Engine: SCI
Resolution:                     |   Keywords:  Tentacle
      Game:  Quest for Glory 4  |
--------------------------------+-------------------------

Comment (by Vhati):

 Here's how the Mage script goes...
 * State 1-3
   * Cache the slider speed off hero.
   * Set a temporary speed for unfurling the cloth
   * Restore the original slider speed.
 * State 4
   * Decide whether to cross (states 5-7) or abort (8).
 * State 5-7
   * Move across the pit, skip to state 9.
 * State 8
   * An abort message.
 * State 9-10
   * Both routes merge here.
   * Cache the slider speed off hero.
   * Set a temporary speed for folding up the cloth
   * Restore the original slider speed, and normalize hero.
 \\
 \\
 script 710 - sLevitateOverPit::changeState()
 {{{
 (1
         1
         # Cache the original slider speed.
         (= local2 (g0_hero cycleSpeed?))

         (g0_hero
                 view: 711
                 loop: 0
                 cel: 0
                 cycleSpeed: 8  # Temporary fixed speed.
                 setCycle: End self
         )
 )

 # ...

 (3
         3
         # Restore the original slider speed.
         (g0_hero cycleSpeed: local2 setLoop: 1 1 setCycle: Fwd)
 # ...
 )

 # ...

 (9
         9
         # Cache original slider speed again!?
         (= local2 (g0_hero cycleSpeed?))

         (g0_hero
                 view: 711
                 setLoop: 0 1
                 setCel: 2
                 cycleSpeed: 8  # Temporary fixed speed.
                 setCycle: Beg self
         )
 )
 (10
         10
         # Restore the original slider speed.
         (g0_hero cycleSpeed: local2 normalize: 1)
 # ...
 )
 }}}
 \\
 \\
 sLevitateOverPit already caches in state 1 and restores in state 10.
 That's good.

 In the middle, a patch clobbers state 3's restoration... setting a fixed
 speed that lasts throughout the crossing.

 At state 9, we don't want the fixed speed cached, so that line is erased.
 This has to be a second patch because the CD and floppy editions have
 different byte counts.

 That's it. State 10 restores the original slider speed.

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


More information about the Scummvm-tracker mailing list