Opened 17 years ago

Closed 17 years ago

Last modified 13 months 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 17 years ago.
Patch against a March 11 CVS snapshot

Download all attachments as: .zip

Change History (8)

by eriktorbjorn, 17 years ago

Patch against a March 11 CVS snapshot

comment:1 by fingolfin, 17 years ago

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

comment:2 by fingolfin, 17 years ago

Owner: set to aquadran

comment:3 by eriktorbjorn, 17 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, 17 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, 17 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, 17 years ago

Resolution: outdated
Status: newclosed

comment:7 by digitall, 13 months ago

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