[Scummvm-tracker] [ScummVM :: Bugs] #15303: SCI: LSL5: Timed message skipped during LSL5 coffee scene (symptom of a bigger problem?)
ScummVM :: Bugs
trac at scummvm.org
Mon Aug 19 05:25:40 UTC 2024
#15303: SCI: LSL5: Timed message skipped during LSL5 coffee scene (symptom of a
bigger problem?)
-------------------------+-----------------------------------
Reporter: eriktorbjorn | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: SCI
Version: | Resolution:
Keywords: | Game: Leisure Suit Larry 5
-------------------------+-----------------------------------
Comment (by eriktorbjorn):
Just to clarify, if we don't want to rely on `gGameTime` working the same
way in the English version as in the non-English version, my aim was to
rewrite
{{{
(method (doit)
(if (> (GetTime) ticks)
(self dispose: disposeWhenDone)
(return)
)
(if eyes
(self cycle: eyes)
)
(if mouth
(self cycle: mouth)
)
)
}}}
into
{{{
(method (doit)
(if (> (- (GetTime) ticks) 0)
(self dispose: disposeWhenDone)
(return)
)
(if eyes
(self cycle: eyes)
)
(if mouth
(self cycle: mouth)
)
)
}}}
making it a hybrid of the two scripts. There's already 3 bytes that can be
saved by using the shorter form of the `bnt` instruction, but m-kiewitz
suggested it may be possible to optimize even the earlier parts of the
script. If so, that should simplify the patch and I might give that
another try. But I read SCI byte code much the same way as I read German:
slowly, often incorrectly, and my vocabulary is vanishingly small.
I guess we should be thankful Sierra didn't add an optimization pass to
their compiler!
--
Ticket URL: <https://bugs.scummvm.org/ticket/15303#comment:39>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list