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

Add checkbox to make holding the D-pad act like holding the joystick on the file and pause screens #454

Merged
merged 2 commits into from
Jun 19, 2022

Conversation

jbodner09
Copy link
Contributor

Before this change, each movement of the cursor with the D-pad required a new press. Holding the D-pad only ever moved a single cursor position. This was in contrast with the joystick, which, when held, continuously moves the cursor according to a timer (10 frames to the second position and to change pause screen pages, 2 frames for subsequent positions).

This change adds an option to make holding the D-pad now behave identically to the joystick, where the cursor continuously moves according to a timer. Note that there is one small behavior change when this option is disabled: holding the D-pad for longer than 10 frames on the page switch buttons will automatically trigger a page switch. This essentially now makes it take a single long press to switch pages instead of two presses (one to move the cursor to the switch button and another to actually switch pages).

This PR also fixes an unguarded debug camera action. Specifically, pressing D-pad right will reset the camera to its default position during certain cutscenes. This appears to be vanilla behavior to the debug ROM that wasn't intended to be unguarded, and was most easily triggered during the singing frogs minigame, so this PR also closes #448.

…on the file and pause screens. Also fix unguarded debug camera action.
@briaguya-ai
Copy link
Contributor

this is exciting! can you think of a scenario where someone would want to have the dpad working with presses but not holds?

@MelonSpeedruns
Copy link
Contributor

Looks great! However, I honestly think all of it should be behind the gDpadPauseName cvar, instead of yet another option.

@jbodner09
Copy link
Contributor Author

Personally, I like the original behavior of presses only, because I've found myself to be more precise with my cursor aiming since I have a tendency to be heavy-thumbed when thinking about what I want to equip. I'm also the sort of person who believes more customization isn't ever a bad thing, although if we're worried about the proliferation of check boxes, I'd have no problem making this just be a hidden cvar that's turned on by default (but of course would do nothing if gDpadPauseName isn't enabled) and edited via the cvars file only.

@briaguya-ai
Copy link
Contributor

Personally, I like the original behavior of presses only, because I've found myself to be more precise with my cursor aiming since I have a tendency to be heavy-thumbed when thinking about what I want to equip. I'm also the sort of person who believes more customization isn't ever a bad thing, although if we're worried about the proliferation of check boxes, I'd have no problem making this just be a hidden cvar that's turned on by default (but of course would do nothing if gDpadPauseName isn't enabled) and edited via the cvars file only.

That sounds good to me! Might want to invert the naming on it so it can default to off.

Copy link
Collaborator

@Kenix3 Kenix3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since DPad is not authentically supported on the UI, I would say just wrap it in the DPad UI existing CVar rather than add a new one. Alternatively, have two CVars, but always set them both at the same time.

@jbodner09
Copy link
Contributor Author

Now that I think about it, new players wouldn't have any reason to think that the two inputs should behave differently, so a hidden on-by-default cvar it is!

…D-pad hold behavior with the existing cvar instead, changed cvar for debug check too
@NEstelami NEstelami merged commit 5a872f8 into HarbourMasters:develop Jun 19, 2022
th-2021 pushed a commit to th-2021/Shipwright-cmake that referenced this pull request Jun 19, 2022
…on the file and pause screens (HarbourMasters#454)

* Add checkbox to make holding the D-pad act like holding the joystick on the file and pause screens.  Also fix unguarded debug camera action.

* Removed new cvar from UI, made it enabled by default and control the D-pad hold behavior with the existing cvar instead, changed cvar for debug check too
@jbodner09 jbodner09 deleted the fixdpadstuff branch June 20, 2022 03:06
stratomaster64 pushed a commit to stratomaster64/Shipwright that referenced this pull request Jun 20, 2022
…on the file and pause screens (HarbourMasters#454)

* Add checkbox to make holding the D-pad act like holding the joystick on the file and pause screens.  Also fix unguarded debug camera action.

* Removed new cvar from UI, made it enabled by default and control the D-pad hold behavior with the existing cvar instead, changed cvar for debug check too
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.

Zora's river Five Frogs D-pad camera.
5 participants