Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TOON: Menu fixes, and settings synchronization with ScummVM config #3954

Merged
merged 10 commits into from Jun 12, 2022

Conversation

antoniou79
Copy link
Contributor

@antoniou79 antoniou79 commented Jun 3, 2022

These commits update the menu to bring its behavior closer to the original game.

I've tested with the full game (GOG version) and the English and German Demo versions.

Changes include:

  • Proper sounds to buttons
  • Button click is effected at mouse down, not mouse up
  • Moving the mouse around while holding the mouse button down activates / affects only one control (not every control that the mouse passed over)
  • Button and slider animations in Options Menu
  • Reduce frequency of checking and updating a control's state
  • DEMO: don't allow middle Text option which does not exist in Demo
  • Text options dial moves to area clicked. If Text Off mode conflicts with mute speech or speech volume or "mute all" setting, then dial will select Text On and the proper Font type.
  • Sync music / sfx and speech volume and music status with ScummVM config (via options menu and hotkeys)
  • Sync font type selection with ScummVM config
  • Sync text speed with ScummVM config
  • Do not allow both speech muted and no subtitles (even via hotkeys -- which is an original bug)
  • Video volume is set to the max of the non-muted sound types (music, speech and sfx). As far as I can tell by testing, this is how the original game must handle it too.
  • When text is OFF (or equivalently if ScummVM audio config is set to "Speech") then subtitles won't be displayed on video cutscenes. Tested with subtitles provided by rzil/BLooperZ in the PR that added the support for such subtitles. #1887

These changes should address bug tickets https://bugs.scummvm.org/ticket/11329 and https://bugs.scummvm.org/ticket/7806

The PR includes a translatable String (the one shown in the Quit confirmation dialogue).

A current known issue that I'll try to fix ASAP:
If from Options Menu, the player clicks on Play and keeps the mouse button down, Drew will move to the spot when the cursor was in-game. Edit: This issue has now been fixed in this PR.

Some pending tasks but not for this PR:

  • Text speed is now persisted but it does not affect the subtitles speed in game. Maybe someone with better knowledge of the engine can tackle this (if it was working in the original game and if it's worth implementing anyway). Edit: From just testing, it seems that how this worked in the original was that lower value meant more delay keeping the subtitle on-screen, higher value meant quicker removal of the quote -- I think the dealy counts after the speech has finished (even if speech is muted). It is not related to whether the speech sound is muted or not. The delay seems however to be related to the size (or word count maybe? or the duration of the corresponding speech) of the quote, since there is noticeable difference between small quotes and larger ones.
  • In English Demo, arrow keys can also control the mouse cursor. Also LSHIFT and RSHIFT act as click (both as left click I think?).
  • In English Demo, in Options Menu the mouse cursor turns into an animated pointing hand or an animated grabbing hand (over the video mode lever) or the non-animated arrow cursor. It is laggy though and not worth the trouble to implement in my opinion.

I have not restored all of the original behavior. Certain parts of that behavior are even counter intuitive and in my opinion not worth reproducing. Like for example in the original setting the volume of a sound type to 0, would set that sound type also as muted, but the mute button will only be popped in the Options Menu after you have exited and re-entered the Options Menu). That also might be confusing since "mute" status is not supposed to be connected to volume level. Similarily, in the English demo, the slider needle could only be moved if the player clicked on the needled and moved it while holding it -- the new behavior is more user friendly and follows the approach of the full game and German Demo.

antoniou79 added 10 commits Jun 3, 2022
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)
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.
The fix is for keeping the volume needle indicator at the same position upon resuming the Options Menu
Pressing hotkey M now mutes the music as it should
The original game seems to do something similar to this
If the player clicked and holded the left mouse button down on Play button, in-game Drew would walk to that spot
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:
scummvm#1887
@sev-
Copy link
Member

@sev- sev- commented Jun 12, 2022

Looks great. Would you like it to be included in branch-2-6 or need more time for testing?

@sev-
Copy link
Member

@sev- sev- commented Jun 12, 2022

I'll merge it for now

@sev- sev- merged commit 1380d40 into scummvm:master Jun 12, 2022
8 checks passed
@antoniou79
Copy link
Contributor Author

@antoniou79 antoniou79 commented Jun 12, 2022

Thanks for merging. I will backport it to 2.6.0. I've tested quite a bit with it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants