-
Notifications
You must be signed in to change notification settings - Fork 141
tweak: Allow exit during match outcome #2074
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
base: main
Are you sure you want to change the base?
tweak: Allow exit during match outcome #2074
Conversation
|
I think it was always possible to move the cursor (even if it doesn't show) to the button above the idle worker button and use that to bring up the quit menu. Much better to have ESC working at all times, though. |
I swear that has worked for me before too, but I haven't been able to reproduce it. |
| { | ||
|
|
||
| TheMouse->setCursor( Mouse::ARROW ); | ||
| TheMouse->setVisibility(true); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of doing that, perhaps we should not hide mouse in victory screen?
Because now when toggling Quit Menu, then Mouse will be visible anyway, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The cursor is hidden as part of the ScriptActions::doDisableInput method. It's preferable not to touch this as it may be used in other pathways (such as via script commands or during cinematic playback).
While we could simply re-enable the mouse after doDisableInput is called, it does not feel as clean. It makes sense to enforce cursor visibility when showing the quit menu to remove the responsibility from other call sites.
Additionally, as the control bar is also disabled on match outcome, it makes sense to leave the cursor hidden to further communicate to the user that they cannot access it. Pressing ESC will of course reveal the cursor, but by then the user will no longer have any reason to access the control bar.
We can create a follow-up task if we want to try and figure a way to have only the options button on the control bar available during the match outcome and leave the cursor visible. I expect such a task will be a lot more involved.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I cancel the QuitMenu (using Esc key), the mouse stays visible. Shouldn't it be hidden again?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Either that or never hidden at all I would say.
If mouse visibility is difficult to control with just a single boolean flag, then perhaps it requires flags similar to how we do it for the cursor capture (see CursorCaptureBlockReason).
The core principle of using the flags approach is that multiple systems can ask for hiding a cursor but do not conflict with each other.
This change allows players to bring up the quit menu and exit the game during the match outcome screen via the ESC key. Players are no longer forced to wait for the duration of the match outcome before they can exit the game.
QUIT_MENU.mp4