Before the original SCUMM GUI and menus were implemented in ScummVM,
opening the F5 menu when playing DOTT would give localized strings to
(almost) any player.
Now that we can display the original F5 menu, a language accessibility
regression shows up, in that the original CD release of DOTT just
harcoded some of the menu strings in English (such as "Display Text",
"SFX", and so on).
This was fixed in Sam & Max CD (which uses the same menu but with
different colors) and all later games, so it appears to be fair to
bring the official Sam & Max menu translations to DOTT, as an
enhancement.
The seven-year-old me playing DOTT would have been happy to understand
what those settings meant, back then :)
Trac#13947.
Add the "use original gui" checkbox to the custom Loom EGA/VGA
and Monkey 1 CD version game options window.
Also slightly change to layout for consistency with
the other games.
This replaces every single strcpy call in the engine with
Common::strlcpy.
Some of these might cases seem a bit pointless, but it is
supposed to discourage future use of strcpy. If people don't
see a single occasion of it they might think twice before they
use it...
I have added the French strings provided by dwa and made
a little decoder that transfers the character to cp850 if
needed.
This way we can support both original pause/restart/quit
dialogs and the ones that we currently have.
The recent PR 4204 made me aware of some things I had kind of tried to ignore when I updated these dialogs for CJK font support.
Currently, the language for the pause/restart/quit messages is tied to the GUI/launcher language and the translation manager is used to translate the. E. g., if you start the French version of MM or ZAK and have a launcher language setting of English, you will get the English pause/restart/quit messages. If you set the launcher language to French you will get it the French ones. Also, the encodings from the translation manager aren't compatible with the game string encodings (mostly solved by PR 4204, though).
This commit now gets rid of any translation manager use here. Instead, we tie the translations for these messages to the game language.
I have included all strings for the v1/v2 language variants I found in the detection table.
I am interested in having the exact original messages here. However, I have only inserted them from the English interpreters, since those are all I have. For the other languages, for the time being, I have just used the texts from the translation manager and reencoded those with codepage 850. So, if anyone has access to an original v1/v2 interpreter in French, Italian, German, Spanish, Russian or Swedish, he/she might want to extract and replace the strings here with the correct ones...
The tracks built for the SE Talkie already have little to no silence at
the beginning, and the outlook has its own separate track instead of a
continuation of the first one.
That means the settings are of limited use here, and removing them
simplifies the code.
When ripping the audio tracks from CD, you may not get quite what the
game expects, e.g. my copy of Loom has less silence at the start of the
track than the CDDA.SOU file from the Steam version. And the MI1 intro
appears to be timed with the assumption that there is no silence at all
at the start of that track.
This makes it possible to compensate for that without having to edit the
audio file. It may also be of some help with fan soundtrack replacements
for MI1, though I have little experience with that.
Unfortunately that means I had to add the enhancements checkbox to the
EGA Loom settings widget, because I can't see any way to automatically
combine the static and dynamic settings widget. Oh well.
There is a special case for adjusting the padding in Widget::draw() that
is applied, among other things, to widgets whose name contains
"GameOptions". We want that special case to apply to the EGA Loom
options as well, so this is simply another renaming.
At some point, it would probably be a good idea for this special case to
go away.
Because if I constantly have to double-check which is which, even though
there are only three of them, I clearly made a mistake when I first
named them.
After checking a number of different recordings, I've decided that in
order to cover most sensible ones (I'm not going to cater to some
ridiculously slow guitar version!), I really need a range of about 1:40
- 2:50. Apparently the Ozawa version is one of the faster ones.
This is larger than I had hoped for, but you should still have pretty
good control over it at sensible screen resolutions.
It makes it less obvious what the default was, but I think this is a lot
more user friendly. For some reason, it looks awful in RTL languages,
but I have no idea how to fix that.
We now store the difference compared to the default value, rather than
the actual SCUMM ticks. Therefore, the default value for the setting is
0, not DEFAULT_LOOM_OVERTURE_TICKS.
It's hard to make this appear only on EGA Loom, so the tooltip has to
document the fact that it's only useful there. The setting is made
relative to the default tempo, which I feel is a much more sensible way
of presenting it to the user than the raw ticks value.
Different platforms have different levels of support of encodings and
often have slight variations. We already have tables for most encoding
with only CJK missing. Full transcoding inclusion allows us to get reliable
encoding results independently of platform. The biggest con is the need for
external tables encoding.dat.
It removes a duplicate table for korean in graphics/korfont.cpp
This is yet incomplete, since it requires the launcher to be configured in the exact same language as the game (e. g. launcher must be set to Japanese for Japanese FM-Towns games or the pause/restart dialog will be empty). This will be fixed in an extra commit.