Opened 18 years ago

Closed 18 years ago

Last modified 2 years ago

#8188 closed patch (outdated)

CMI: Possible fix for recent conversation regression

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

Description

This patch makes translateString() fall back on the untranslated string, if a translation cannot be found. I think that was already the intention, but I don't quite see how the current implementation is meant to work.

This seems to fix the recent CMI conversation regression - the one that causes Guybrush's first line in a conversation to be neither spoken nor shown - but I haven't really had time to test it much. In particular, CMI is the only translated game that I own and even there I only have the English "translation".

Ticket imported from: #702029. Ticket imported from: patches/293.

Attachments (1)

cmi-talk-regression-fix.diff (928 bytes ) - added by eriktorbjorn 18 years ago.
Patch against a March 11 CVS snapshot

Download all attachments as: .zip

Change History (8)

by eriktorbjorn, 18 years ago

Patch against a March 11 CVS snapshot

comment:1 by fingolfin, 18 years ago

Aquadran, care to comment (I think this is your code) ?

comment:2 by fingolfin, 18 years ago

Owner: set to aquadran

comment:3 by eriktorbjorn, 18 years ago

Aquadran pointed out to me that this patch basically reverts part of his most recent fix. So the good news is that now we know when it broke. The bad news is that my fix undoes his fix.

Actually, this translation stuff doesn't seem to work at all like I imagined. I assumed that what was happening was that it was passing the untranslated string, plus formatting information, to translateText(). But with the patch, trans_buff[] is filled with stuff like 255 5 1 0 0 64 0, i.e. it doesn't contain any readable text at all. Without the patch, all I get is the terminating 0.

So what seems to happen is that translateText() is fed some "dummy" entry which my patch allows to go through untranslated so that it will trigger a call to addVerbToStack(), which will provide the *real* string to translate.

If that's true, then the first call to translateText() seems rather unnecessary. But I haven't yet figured out where it's made from, so I couldn't say if there's any easy way to eliminate it.

comment:4 by fingolfin, 18 years ago

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

comment:5 by eriktorbjorn, 18 years ago

It's probably related. I can't recall the details about the older patch any more, but I do remember that the symptoms were very similar.

Since aquadran's recent patch seems to have fixed - or at least worked around - the bug, perhaps they should both be closed.

comment:6 by fingolfin, 18 years ago

Resolution: outdated
Status: newclosed

comment:7 by digitall, 2 years ago

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