There was discussion a while back about how people may want to enable
some of the SCUMM enhancements, but not all since some of them affect
gameplay beyond simple bugfixing. This is an initial attempt at the GUI
part of it. The details are very much still up for discussion.
We currently have two widget types for sliders: "Slider" and
"WideSlider". This eliminates the latter, making all sliders use the
available space. This arguably makes them look better, and should make
them easier to manipulate on touch devices like phones.
Did I say "all"? Not quite. In the high resolution layout, the volume
sliders share space with the "Mute all" checkbox. The layout engine does
not cope well with two side-by-side layouts of indeterminate width,
apparently, so there we set a width, cross our fingers and hope that the
checkbox will still have enough space in all translations.
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.