[Scummvm-tracker] [ScummVM] #10860: QFG4: Lock up when casting Trigger after Summon Staff

ScummVM trac at scummvm.org
Mon Jan 7 17:18:36 CET 2019


#10860: QFG4: Lock up when casting Trigger after Summon Staff
--------------------------------+----------------------------
  Reporter:  tomasz89           |      Owner:  (none)
      Type:  defect             |     Status:  new
  Priority:  normal             |  Component:  Engine: SCI
Resolution:                     |   Keywords:  SCI32 original
      Game:  Quest for Glory 4  |
--------------------------------+----------------------------

Comment (by Vhati):

 I patched them to super::dispose() always, and that made both spells'
 effects consistently visible.

 Another bug.
 The cursor lingers after the first casting.
 Then it advances after the second casting.
 I don't know why they're different.

 Somehow it's not getting cached or the cache is erased.
 \\
 \\
 handsOff() calls proc0_7() to cache the cursor and sets global438=1 to
 ensure that consecutive handsOff() calls don't re-cache.

 script 0 - proc0_7()
 {{{
 (procedure (proc0_7)
         (if
                 (not
                         # Open, Trigger, Fetch are ALWAYS exempted!?
                         (proc64999_5 ((User curEvent?) message?) 80 82 87)
                 )
                 (if (g69_mainIconBar curIcon?)
                         (= gl204_myCachedCursor (g69_mainIconBar
 curIcon?))
                 )
         else
                 (= gl204_myCachedCursor 0)
         )
 )
 }}}
 \\
 \\
 handsOn() resets global438 and calls proc0_8(), which restores the cursor
 and clears the cache.

 script 0 - proc0_8()
 {{{
 (procedure (proc0_8)
         (if g204_myCachedCursor
                 (g69_mainIconBar curIcon: g204_myCachedCursor)
                 (g1_Glory setCursor: (global69 getCursor:))
                 (= g204_myCachedCursor 0)

                 # If the cached icon was for the item button,
                 # but it's not showing an active item, advance the cursor.
                 (if
                         (and
                                 (==
                                         (g69_mainIconBar curIcon?)
                                         (g69_mainIconBar at: 6)
                                 )
                                 (not (g69_mainIconBar curInvIcon?))
                         )
                         (g69_mainIconBar advanceCurIcon:)
                 )
         )
 )
 }}}

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


More information about the Scummvm-tracker mailing list