[Scummvm-tracker] [ScummVM] #10789: QFG4: Peering through doors at absent bats in the castle

Vhati trac at scummvm.org
Sat Dec 1 00:09:45 CET 2018


#10789: QFG4: Peering through doors at absent bats in the castle
--------------------------------+----------------------------
  Reporter:  Vhati              |      Owner:  (none)
      Type:  defect             |     Status:  new
  Priority:  low                |  Component:  Engine: SCI
Resolution:                     |   Keywords:  SCI32 original
      Game:  Quest for Glory 4  |
--------------------------------+----------------------------

Comment (by Vhati):

 Bat stairway is 632.
 The lower room is 644.
 The upper room, with the crest bookshelf, is 663.

 The stairway tracks which bats have been killed with plot flags (331-334).
 They're in a bitmask, so instead of calling proc0_4(), we can check all
 four simultaneously (0000000000011110 == 30d).

 {{{
 global[520] & 30 == 30
 }}}
 \\
 \\
 The lower room was an easy fix. Combining the largely redundant say()
 calls makes room.

 script 644 - sPeepingTom::changeState(1)
 {{{
 (1
         (if (< (g0_hero x?) 60)
                 # You don't see any sign of life or movement beyond the
 door.
                 (g91_gloryMessager say: 2 155 27 1 self 640)
         else
                 # You catch a brief glimpse of the elusive flash of wings
                 #   on the other side of the door.
                 (g91_gloryMessager say: 2 155 29 1 self 640)
         )
 )
 }}}
 \\
 \\
 The upper room has the same problem, always reporting bats.

 script 663 - sPeepingTom::changeState()
 {{{
 (0
         (global1 handsOff:)
         (global0
                 view: 4
                 setLoop: 0 1
                 setCel: 0
                 setCycle: End self
         )
 )
 (1
         # You catch a brief glimpse of the elusive flash of wings
         #   on the other side of the door.
         (global91 say: 2 155 29 1 self 640)
 )
 (2 (= seconds 3))
 (3 (global0 setCycle: Beg self))
 (4
         (global0 normalize:)
         (global1 handsOn:)
         (self dispose:)
 )
 }}}
 \\
 \\
 I can't find freeable bytes to fix that one.
 I'd rather not jump to a distant code cave somewhere else in the script,
 and back.

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


More information about the Scummvm-tracker mailing list