[Scummvm-tracker] [ScummVM :: Bugs] #14588: SCI: LSL6: Controls dialog misbehaves when subtitles are disabled in the low-res talkie version

ScummVM :: Bugs trac at scummvm.org
Tue Aug 20 17:55:48 UTC 2024


#14588: SCI: LSL6: Controls dialog misbehaves when subtitles are disabled in the
low-res talkie version
-------------------------+-----------------------------------
Reporter:  eriktorbjorn  |       Owner:  (none)
    Type:  defect        |      Status:  new
Priority:  normal        |   Component:  Engine: SCI
 Version:                |  Resolution:
Keywords:                |        Game:  Leisure Suit Larry 6
-------------------------+-----------------------------------
Comment (by eriktorbjorn):

 On second thought, those scripts are probably too short to hide a script
 patch in.

 I ''think'' the `ControlPanel::noClickMessage()` method is what displays
 the help texts. after being called by `ll6ControlPanel::noClickMessage()`:

 {{{
         (method (noClickMessage param1)
                 (Print modeless: 1 font: gUserFont)
                 (gMessager
                         say:
                                 (param1 noClickNoun:)
                                 (param1 noClickVerb:)
                                 0
                                 1
                                 0
                                 (param1 noClickModNum:)
                 )
         )
 }}}

 And that's where I start to flounder. It seems that `gMessager` is a
 variable, not an object, and it points to `larryMessager`. But that
 appears to be just an extension of `Messager`, so maybe `Messager::say()`
 is the interesting part? I'm lost.

 Either way, at some point it will have to look at `gMsgType`, which can be
 either 2 or 3. I believe 2 is speech, while 3 is speech + text. From that
 perspective, it looks to me as if it's `Narrator::say()` that's the
 interesting part. A breakpoint in what the debugger calls
 `talkTitleNar::say()` seems to trace the call back through
 `Messager::sayNext()`, `larryMessager::sayNext()`, and
 `larryMessager::say()` so maybe I am on the right track after all.

 `Narrator::say()` is a larger method, so it may be easier to hide a script
 patch in. I just have no idea what it could test to detect that the text
 has no corresponding audio to play.
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/14588#comment:3>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list