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

Restored vanilla pause buffering and input behavior broken by 'easy frame advance' cheat #2511

Merged
merged 3 commits into from
Feb 28, 2023

Conversation

Jengerer
Copy link
Contributor

@Jengerer Jengerer commented Feb 20, 2023

Currently, holding A and repeatedly pausing and unpausing will cause that A input to be repeated, resulting in Link rolling without additional A inputs. Similarly, holding Z and unpausing in front of a candidate actor will cause Link to switch Z-targeting to that actor. In vanilla, pausing and unpausing does not repeat inputs this way.

As a side effect, this also does not allow inputs to be buffered before the Subscreen has finished its closing animation, which is how vanilla also works. The "freeze" before the game resumes is considerably shorter in Shipwright, but it'd be better to implement a fake delay there if we want to make it more forgiving.

Build Artifacts

@garrettjoecox
Copy link
Contributor

Nice! This has been on my todo list for a while but was hoping to have a solution for the “fake delay” you mentioned.

If this behavior simply gets locked behind the one cvar with the input frame cheat we need to adjust the naming and/or description of it. Otherwise this change needs to be behind a separate cvar, and since the input frame cheat depends on it, that should also be reflected in the UI.

…rame advance' cheat

Currently, holding A and repeatedly pausing and unpausing will cause that A input to be repeated, resulting in Link rolling without additional A inputs. Similarly, holding Z and unpausing in front of a candidate actor will cause Link to switch Z-targeting to that actor.

As a side effect, this also does not allow inputs to be buffered before the Subscreen has finished its closing animation, which is how vanilla also works. This is slightly unfortunate because the "freeze" before the game resumes is considerably shorter in Shipwright, but it'd be better to implement a fake delay there if we want to make it more forgiving.
@Jengerer
Copy link
Contributor Author

Jengerer commented Feb 20, 2023

Not sure if I did that right, but I amended my change to put it under a separate CVar and cheat checkbox (and made the checkbox disable if Easy Frame Advance is enabled with the appropriate tooltip). I tried to describe it as accurately as possible, since it doesn't actually buffer the inputs earlier, e.g. if you tap and release A before the Subscreen has finished closing, it won't actually queue the input to be pressed; it has to be held at least until the "vanilla" input window.

I tested and both seem to work fine when toggled independently.

@Jengerer
Copy link
Contributor Author

Whoops, I meant for that last one to go in with a separate PR.

…em tracker notes longer than 8 characters"

This reverts commit 721c18d.
@briaguya-ai briaguya-ai merged commit afc61e6 into HarbourMasters:develop Feb 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants