[rcore] fix gamepad axis movement and its automation event recording #4184
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.
While working with Automation Events, I recognized that my gamepad input was not recorded correctly. Negative axis movements (e.g. stick going left/up) weren't recorded at all.
Furthermore,
GetGamepadAxisMovement
seems to snap trigger axis values to 0.0 if they are in the region [-0.1, 0.1]. I think the delta/drift check was intended to ignore values in between the range [-1.0, -0.9] instead (since -1.0 is the default state for triggers).This PR addresses both of these issues.
Remark:
With my changes
GetGamepadAxisMovement
always returns the default value for each axis, even if a gamepad is not attached. This makes more sense in my opinion, but it is a behavior change for triggers.Please let me know if you don't want that, and I'll change it back to always return 0.0 if the gamepad isn't available.