Opened 17 years ago

Closed 17 years ago

Last modified 12 months ago

#8170 closed patch (outdated)

CMI: Possible fix for missing talk sounds regression

Reported by: eriktorbjorn Owned by: SF/khalek
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Monkey Island 3

Description

The problem with talk sounds going AWOL when support
for language.tab went missing seems to be caused by
translateText() not being able to find the message it
looks for.

I don't know if this means the message is already
translated in the script itself, but it seems more
sensible to fall back on the possibly untranslated
message than to just fail.

The patch itself is trivial, but I would appreciate
feedback from someone who has a non-English version of
the game.

Ticket imported from: #679356. Ticket imported from: patches/275.

Attachments (1)

cmi-missing-sounds.diff (423 bytes ) - added by eriktorbjorn 17 years ago.
Patch against a February 2 CVS snapshot

Download all attachments as: .zip

Change History (8)

by eriktorbjorn, 17 years ago

Attachment: cmi-missing-sounds.diff added

Patch against a February 2 CVS snapshot

comment:1 by SF/khalek, 17 years ago

works fine here in both the german and english versions.
The german version being properly translated etc.

comment:2 by SF/khalek, 17 years ago

Owner: set to SF/khalek

comment:3 by SF/khalek, 17 years ago

I've applied the change, but want to leave this open until
we do a correct solution. In the case of dialogue which is
when this happens the text is already translated for you to
pick from a list of dialogue lines. Its then used again when
the actual line is said.

Maybe it can't find the text because its trying to translate
the translated text?

maybe we need a translated bit for these strings or something..

comment:4 by eriktorbjorn, 17 years ago

I don't think that's the problem, but then again I don't
understand exactly what's happening.

To take one example (from the English version), when drawing
the conversation menu ScummVM will translate the text
"/WGSO003/Hello. Please don't kill me." to "Hello. Please
don't kill me.". When Guybrush speaks the line, it will fail
to translate the string "/M1GT001/" followed by some
"garbage" (embedded commands to encode which sound to play,
I guess). I.e. the messages don't even have the same identifier.

I think this comes from script-13.dmp, which says something like

localvar1 = getVerbFromXY(localvar6,localvar7)
...
talkActorSimple("/M1GT001/":localvar1:,1)

I have no idea what the M1GT001 identifier is supposed to
be, but it doesn't appear in my language.tab file.

Still, we will have to do *something* about the language.tab
handling, at least for the conversation menus, because it's
unacceptably slow right now. Looks like the game is
redrawing the menu every frame, doing a linear search on
language.tab for every message. If so: Eep.

comment:5 by fingolfin, 17 years ago

Isn't this related to https://sourceforge.net/tracker/index.php?func=detail&aid=702029&group_id=37116&atid=418822 ?

comment:6 by fingolfin, 17 years ago

Resolution: outdated
Status: newclosed

comment:7 by digitall, 12 months ago

Component: Engine: SCUMM
Game: Monkey Island 3
Note: See TracTickets for help on using tickets.