[Scummvm-tracker] [ScummVM] #10615: QFG4: Tentacle doesn't retract after crossing pit at start of game
ScummVM
trac at scummvm.org
Thu Dec 27 04:10:42 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):
To recap
* All the other scripts are fine.
* Mage sLevitateOverPit is solved by giving it fixed speed.
* Fighter crossByHand originally had a fixed speed but drains stamina
during the crossing, which makes setting a new slower speed problematic.
\\
\\
script 710 - crossByHand::doit()
{{{
(method (doit)
(super doit: &rest)
(if (== state 2) (g0_hero useStamina: 1))
)
}}}
Stamina only drains in state 2, the crossing itself!
If I delay in state 3, there's no drain.
\\
\\
script 710 - crossByHand::changeState()
{{{
(3
(if (not (proc0_4 392)) # Never crossed before.
(proc0_2 392)
# "You just barely made it across the pit."
(g91_gloryMessager say: 10 6 32 0 self)
else
(self cue:)
)
)
(4
(if (not (proc0_4 101)) ((tentacle script?) cue:))
# ...
)
}}}
\\
\\
> By itself "cycles" won't delay [...] MoveTo is already cueing self. If I
decline to pass self [as a caller arg], it won't cue().
Messing with MoveTo was a bad idea.
Nevertheless, the principle can be applied to say().
The code above advances in two different ways: a callback from say() or a
self-cue().
\\
\\
Fighter Patch
{{{
(3
(if (not (proc0_4 392)) # Never crossed before.
(proc0_2 392)
# Last arg is null instead of self.
(g91_gloryMessager say: 10 6 32 0 0)
# Use cycles to advance, not say() or a self-cue.
(= cycles 32)
)
(4
(if (not (proc0_4 101)) ((tentacle script?) cue:))
# ...
)
}}}
Fighter crosses as usual, draining the normal amount of stamina. There's a
message at the end. Then hero hangs on the rope for a moment longer, cues
tentacle, and dismounts.
--
Ticket URL: <https://bugs.scummvm.org/ticket/10615#comment:16>
ScummVM <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list