[Scummvm-tracker] [ScummVM] #10615: QFG4: Head Monk tentacles do not go back down after crossing chasm at start of game

Vhati trac at scummvm.org
Thu Nov 29 20:14:05 CET 2018


#10615: QFG4: Head Monk tentacles do not go back down after crossing chasm 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):

 > The mage isn't given an option to backtrack.

 The code used to be there.
 "send hero setScript sLevitateOverPit" walks to the edge.

 script 710 - sLevitateOverPit::changeState(0)
 {{{
 (= register (if (> (global0 x?) 190) 1 else 0))
 (if register
         # Right stalagmite.
         (g0_hero setMotion: PolyPath 218 48 self)
 else
         # Left stalagmite.
         (g0_hero setMotion: PolyPath 143 83 self)
 )
 }}}
 \\
 \\
 However, hero's cloth action and levitate's effect are only allowed on the
 righthand side.

 script 28 - hero::doVerb(54)
 {{{
 (and
         (== g11_myRoomNum 710)
         (> (g0_hero x?) 190)
         (< (g0_hero y?) 125)
 )
 (self setScript: (ScriptID 710 1)) # sLevitateOverPit
 (return 1)
 }}}

 script 21 - levitateSpell::doVerb(4)
 {{{
 (and
         (== g11_myRoomNum 710)
         (== (g0_hero script?) (ScriptID 710 1)) # sLevitateOverPit
         (== ((g0_hero script?) state?) 3)
 )
 ((g0_hero script?) register: 1)
 ((g0_hero script?) cue:)
 }}}
 \\
 \\
 Then register became a flag, not for the direction, but for just crossing
 at all.

 script 710 - sLevitateOverPit::changeState()
 {{{
 (4
 # ...
 # Skip the crossing if register wasn't set.
         (if register (= cycles 1) else (self changeState: 8))
 )
 (5
 # ...
         (if register
                 # Go left.
                 (g0_hero setMotion: MoveTo 143 83 self)
         else
                 # Go right. This will never happen.
                 (g0_hero setMotion: MoveTo 218 48 self)
         )
 )
 # ...
 # State 7 skips over 8, and the two routes merge again at 9 to reset hero.
 (8
         # "It's hard to do much with the wind pushing at your sheet,
         #   so you put it away."
         (g91_gloryMessager say: 10 6 8 0 self)
 )
 }}}

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


More information about the Scummvm-tracker mailing list