OS: Windows 2000 Sp4
ScummVM: 0.7.1 as well as daily build
Game: the dig - german
This bug happens at the beginning of the game, if you
contact Cora for the first time using the pen ultimate.
When Boston talks to Cora the first two sentences "ja,
ja, ja, Boston. Ich habe sie drauf" ("yeah, yeah, yeah,
Boston. I'm on you") are correctly displayed in german.
However the next two sentences "Hättest du wohl gern"
("you wish") and "In deinen Träumen" ("in your dreams")
are displayed in german as well as in english at the
same time.
I remember, that a long time ago I submitted a bug
report for the english version of the dig, that the
subtitles for the two sentences ("you wish", "in your
dreams"), were missing. Seems as someone has hardcoded
these two sentences into ScummVM and forgot to add a
language check, but that is just a guess.
Attaching screenshot.
Logged In: YES
user_id=801628
Isn't that just because both Cora and Boston are saying the
line at the same time (hence the subtitles both in light
[Cora] and dark [Boston] blue)? I seem to remember that's
how it worked in the English version, at least.
Logged In: YES
user_id=547613
What are trying to say?
And what has the this to do with the fact, that there are
two english (!) lines in a german game?
Have you looked at the screenshot? It shows three lines (one
in german and two in english).
Logged In: YES
user_id=801628
You're right, of course. I had looked at the screenshot but
I was thinking about half a dozen things at the same time
and I just mixed everything up and somehow got into my mind
that you were reporting the fact that the line was there
twice (which is normal, since both characters are speaking).
Of course, it shouldn't be there in English in a German
version and what I wrote was indeed irrelevant - just forget
about my post, I'll just go and hide in shame. :)
Logged In: YES
user_id=12935
Your guess is wrong, we haven't hardcoded anything. However, I can
reproduce the bug.
Logged In: YES
user_id=12935
Now, we translate strings on the fly based on their string ID,
which is prepended to the text (e.g. "/NEWTON.031/"). In this
case, the prefix is missing in enqueueTextCentered; but notice
that briefly before that, a printActor.msg is invoked with a
string ID prefix but no body text after it.
The problem:
1) printActor.msg("/NEWTON.032/") causes text to be printed
when it shouldn't
2) enqueueTextCentered doesn't translate the text it gets
The question is how the original text system really worked, at
this point I can only guess. Maybe we need to add a check;
when a string ID is found but no text follow it, then we just
store that message ID, but do not actually cause text to be
printed; and if afterwards a string is printed w/o a string
ID, we just use the previously "stored" string ID. This seems
really awkward and artifical to me, though...
Logged In: YES
user_id=34715
It looks like the developers failed to add translation prefixes to
all the strings in data files and worked around problem in
executable.
The string translation function in the Dig disasm. includes
compares to about 12 strings, adding the correct translation
prefix in each case.
Logged In: YES
user_id=12935
Yuck, how evil. But thanks for pointing this out, Kirben. Do you have a list
of the strings which are remapped?
Logged In: YES
user_id=34715
Yes I have attached the disasm. of that section in the Dig,
which shows exactly what strings to compare and change.
Hard coded strings
Logged In: YES
user_id=12935
Thanks Kirben. BTW, I see we are checking for the tag strings PU_M001
and PU_M002 in our code right now -- does the original COMI code have
something like that, too?