[Scummvm-tracker] [ScummVM :: Bugs] #15363: SCI: SQ3: Text Boxes at Death Scenes Clear the Screen Too Quickly

ScummVM :: Bugs trac at scummvm.org
Wed Sep 18 10:19:15 UTC 2024


#15363: SCI: SQ3: Text Boxes at Death Scenes Clear the Screen Too Quickly
----------------------------+----------------------------
Reporter:  ArthurWalden     |       Owner:  (none)
    Type:  defect           |      Status:  new
Priority:  normal           |   Component:  Engine: SCI
 Version:                   |  Resolution:
Keywords:  sq3, text speed  |        Game:  Space Quest 3
----------------------------+----------------------------
Comment (by eriktorbjorn):

 Looking at [https://github.com/sluicebox/sci-scripts sluicebox's
 decompiled scripts], this seems to be the code responsible for displaying
 the message:

 {{{
                         (4
                                 (= local2 (Print 10 18 #dispose)) ;
 "Shredded like an Iran-Contra document, your many independent parts
 flutter to the bottom of the hopper. This is of little importance to you,
 what with your being dead and all."
                                 (= seconds 6)
                         )
                         (5
                                 (cls)
                                 (EgoDead 901 0 3 4)
                         )
 }}}

 (For reference, I'm looking at rm10.sc of sq3-dos-1.018.)

 I think the `#dispose` thing means that the message does not stay up
 indefinitely, and setting `seconds` to 6 presumably means that the system
 clock has to change the current second six times. Which should take
 anywhere between 5 and 6 seconds. (Because the measurement doesn't start
 at the beginning of a second, it starts at wherever it is at the moment,
 i.e. the first change in second could come almost instantly.)

 At least that's how I read this bit in Interface.sc:

 {{{
         (method (check &tmp thisSeconds)
                 (if seconds
                         (= thisSeconds (GetTime 1)) ; SysTime12
                         (if (!= lastSeconds thisSeconds)
                                 (= lastSeconds thisSeconds)
                                 (if (not (-- seconds))
                                         (self cue:)
                                 )
                         )
                 )
         )
 }}}

 When I tried to measure how long the message stayed up I always seemed to
 get between 5 and 6 seconds. (It would be great if someone could double-
 check that!) If so, it appears to work as designed? It seems to me that it
 should be easy enough to change this behavior, if we really want to, but
 it would have to be on a case-by-case basis.
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/15363#comment:3>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list