Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Removed the separated "axis map" from the gamepad menu. Analog input now piggy-backs off of binds, so you can bind analog movement directly in the controls menu.
Additionally, added a new client console variable,
cl_analogstraferun
. This rescales analog stick movement when moving diagonally to reach [1.0, 1.0], instead of [0.77, 0.77]. Turned off by default, because this does not match Linux Doom's axis behavior, and some weird devices may not play well with it.I'm doing this for my IWAD's engine branch, since it makes control setup more accessible & straight-forward for new players. It probably needs additional work for inclusion in GZDoom.
Notes
NUM_KEYS
size a lot. This feels quite wasteful to me, since only a small fraction of the total keys can have analog input. I've thought about adding a unique lookup table to convert a axis representation integer into the actual key, but I didn't do it because this was more straight-forward for maintenance if new keys need to be added. Thoughts? (I didn't search the codebase for another dictionary-style class I could use, so maybe the answer's straight-forward.)