Opened 18 years ago

Closed 17 years ago

Last modified 21 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 18 years ago.
Patch against a February 2 CVS snapshot

Download all attachments as: .zip

Change History (8)

by eriktorbjorn, 18 years ago

Attachment: cmi-missing-sounds.diff added

Patch against a February 2 CVS snapshot

comment:1 by SF/khalek, 18 years ago

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

comment:2 by SF/khalek, 18 years ago

Owner: set to SF/khalek

comment:3 by SF/khalek, 18 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, 18 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, 21 months ago

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