The PSX version doesn't have a credits Smacker video
but has a CREDITS.DAT file containing credits strings which
have to be displayed as a scrolling list of names and roles.
This was deemed necessary by the fact that we have the main thread
and the timer thread which are constantly reaching out to functions which
update the screen in one form or another. By putting locks around calls to
_system->updateScreen() and _system->getPaletteManager()->setPalette()
we should be able to avoid issues like the one described in bug #14638.
I marked all places which seem sensitive enough when the main thread and
the timer are both in full operation. I might dial it back in the future after
we are sure that the original issue is gone.
You can now pause the game via the 'P' key! Also, using CTRL-T
when ScummVM is in debug mode, toggles some on-screen debug
information which was also available in the original DOS version by
launching the game as "sword rev text". Implementing all of this also
meant that I had to finally implement the FPS counter.
I frankly don't know if the PSX version was supposed to have this, but
it appears to work right out of the box...
This now matches the source code and the executable;
this fixes a lot of inaccuracies, implements the tombstone
"death font", implements the Speed setting.
The askForCd() routine is now more accurate as well.
- Where necessary as in, where translated messages are used.
- GUIErrorMessage now takes in U32String
- error messages across some engines use U32Strings. they are changed because they show a message dialog.
After the initial changes just to scummvm/gui for u32, this commit includes the whole project
- Widget creations now always have u32 descriptions, labels, or tooltips
- Message dialogs make use of default arguments instead of providing the same argument explicitly
- encode String::format properly before passing on as argument where necessary
- Modify hugo utils (yesNoBox and notify box) to use u32
- Also provide fake constructors for the above which redirect to the u32 constructor
- Convert all keymap descriptions to u32 across all engines
- showConfirmationDialog in mohawk now uses u32
- showScummVMDialog also uses u32
- Scumm engine has dialogs now which use u32
- General fixes and wrapping convertToU32String for setLabels and related functions
- Add a fake constructor to MesssageDialog which redirects to the u32 constructor
The in-game menu contains not only subtitles and volume settings,
but also load and save game options. Every time the menu was opened
it would write the subtitles and audio volumes to the ConfMan
resulting in toggling on overriding global options for this game, which
was a but strange when it was previously using global options and we
only wanted to load a game. So now the settings are written to ConfMan
from the in-game menu only when they are actually changed.
The were defined as uint8 and the code was inconsistent in the
way they were handled, for example setting them to 1 in some
places and to true in others. It was working but relying on implicit
conversions both ways between 1 and true.
If the language is explicitly set to American English, use the
American version of the panel for the main control panel. In all
other aspects, American English will behave as British English,
so it shouldn't break anything.