Cutscene subtitles support is implemented but subtitles are still work in progress
I was able to test with subtitles provided by rzil (BLooperZ) in this PR:
https://github.com/scummvm/scummvm/pull/1887
The original deals with this by activating the subtitles (Font 1) when deactivating speech
The original also has the bug whereby on some edge cases (eg using the hotkeys to mute dialogue and disable text while in-game) both text and speech get disabled, which results in behavior like the actors are stuck doing nothing when examing an item or such. We fix this bug here.
These bring them closer to the original behavior
Changes include:
- Proper sounds for buttons and switches
- Button clicking is effected in mouse down (not mouse up)
- A confirmation dialogue before quiting the game
- Button and slider animations in Options Menu (Main Menu has no button animations, just two frames)
- Reduced frequency of checking and updating a control's state
- (Demo) do not allow selection of middle Text option, which does not exist in Demo
- (Full Game) The text option dial now rotates towards the area clicked.
- Moving the mouse around while holding the left mouse button down affects at most one control (the selected one)
Up until last commit, everything was working fine but the amount of files changed was too large. This commit tries to reduce the changes.
- Add a fake constructor to Keymap, text-to-speech, setDescription (save-state)
- Redirecting functions for PopUpWidget::appendEntry, ButtonWidget::setLabel, GUIErrorMessage
- Use the above functions and constructors to reduce changes in Engines
- Fix warnings being in unicode. Only output english text in - Warnings, Errors, etc.
- Mark some strings as "translation" strings. (Not yet added to POTFILES)
- Remove some CP related things from po/modules.mk
- Previously used some Common::convertToU32 where it was not necessary, replace this with u32constructor
- 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
This flag is removed for a few reasons:
* Engines universally set this flag to true for widths > 320,
which made it redundant everywhere;
* This flag functioned primarily as a "force 1x scaler" flag,
since its behaviour was almost completely undocumented and users
would need to figure out that they'd need an explicit non-default
scaler set to get a scaler to operate at widths > 320;
* (Most importantly) engines should not be in the business of
deciding how the backend may choose to render its virtual screen.
The choice of rendering behaviour belongs to the user, and the
backend, in that order.
A nearby future commit restores the default1x scaler behaviour in
the SDL backend code for the moment, but in the future it is my
hope that there will be a better configuration UI to allow users
to specify how they want scaling to work for high resolutions.