|
@@ -2952,10 +2952,14 @@ int GetGamepadAxisCount(int gamepad)
|
|
|
// Get axis movement vector for a gamepad
|
|
|
float GetGamepadAxisMovement(int gamepad, int axis)
|
|
|
{
|
|
|
- float value = 0;
|
|
|
+ float value = (axis == GAMEPAD_AXIS_LEFT_TRIGGER || axis == GAMEPAD_AXIS_RIGHT_TRIGGER)? -1.0f : 0.0f;
|
|
|
|
|
|
- if ((gamepad < MAX_GAMEPADS) && CORE.Input.Gamepad.ready[gamepad] && (axis < MAX_GAMEPAD_AXIS) &&
|
|
|
- (fabsf(CORE.Input.Gamepad.axisState[gamepad][axis]) > 0.1f)) value = CORE.Input.Gamepad.axisState[gamepad][axis]; // 0.1f = GAMEPAD_AXIS_MINIMUM_DRIFT/DELTA
|
|
|
+ if ((gamepad < MAX_GAMEPADS) && CORE.Input.Gamepad.ready[gamepad] && (axis < MAX_GAMEPAD_AXIS)) {
|
|
|
+ float movement = value < 0.0f ? CORE.Input.Gamepad.axisState[gamepad][axis] : fabs(CORE.Input.Gamepad.axisState[gamepad][axis]);
|
|
|
+
|
|
|
+ // 0.1f = GAMEPAD_AXIS_MINIMUM_DRIFT/DELTA
|
|
|
+ if (movement > value + 0.1f) value = CORE.Input.Gamepad.axisState[gamepad][axis];
|
|
|
+ }
|
|
|
|
|
|
return value;
|
|
|
}
|
|
@@ -3599,7 +3603,8 @@ static void RecordAutomationEvent(void)
|
|
|
for (int axis = 0; axis < MAX_GAMEPAD_AXIS; axis++)
|
|
|
{
|
|
|
// Event type: INPUT_GAMEPAD_AXIS_MOTION
|
|
|
- if (CORE.Input.Gamepad.axisState[gamepad][axis] > 0.1f)
|
|
|
+ float defaultMovement = (axis == GAMEPAD_AXIS_LEFT_TRIGGER || axis == GAMEPAD_AXIS_RIGHT_TRIGGER)? -1.0f : 0.0f;
|
|
|
+ if (GetGamepadAxisMovement(gamepad, axis) != defaultMovement)
|
|
|
{
|
|
|
currentEventList->events[currentEventList->count].frame = CORE.Time.frameCounter;
|
|
|
currentEventList->events[currentEventList->count].type = INPUT_GAMEPAD_AXIS_MOTION;
|