[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
Tue Aug 6 07:34:46 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):
Here's how the English version of LSL5 does it:
{{{
(method (doit)
(if (> (GetTime) ticks)
(self dispose: disposeWhenDone)
(return)
)
(if eyes
(self cycle: eyes)
)
(if mouth
(self cycle: mouth)
)
)
}}}
Here's how the German, French, Spanish, and Italian versions do it (pun
not intended):
{{{
(method (doit)
(if (> (- gGameTime ticks) 0)
(self dispose: disposeWhenDone)
(return)
)
(if eyes
(self cycle: eyes)
)
(if mouth
(self cycle: mouth)
)
)
}}}
Could that be something they did to fix the problem? The `gGameTime`
variable is also present in the English version, so it wasn't added
specifically for these. But mathematics on overflowing integers makes my
head hurt. Here's how the EGA DOS version does it:
{{{
(method (doit)
(if (and (> gGameTime ticks) (< (- gGameTime ticks)
28672))
(self dispose: disposeWhenDone)
(return)
)
(if eyes
(self cycle: eyes)
)
(if mouth
(self cycle: mouth)
)
)
}}}
Which seems just bizarre to me. It's as if someone stumbled over the bug
once and added a quick-and-dirty hack for it, which was then rejected by
whoever made the VGA version.
--
Ticket URL: <https://bugs.scummvm.org/ticket/15303#comment:22>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list