Fix potential integer overflow issue with stick axes

This commit is contained in:
Cameron Gutman 2014-08-20 22:12:45 -07:00
parent 4bec02f47f
commit 10212bd38b

View File

@ -274,8 +274,8 @@ public class ControllerHandler {
Vector2d leftStickVector = handleDeadZone(event.getAxisValue(mapping.leftStickXAxis), Vector2d leftStickVector = handleDeadZone(event.getAxisValue(mapping.leftStickXAxis),
event.getAxisValue(mapping.leftStickYAxis), mapping.leftStickDeadzoneRadius); event.getAxisValue(mapping.leftStickYAxis), mapping.leftStickDeadzoneRadius);
leftStickX = (short)Math.round(leftStickVector.getX() * 0x7FFF); leftStickX = (short)(leftStickVector.getX() * 0x7FFE);
leftStickY = (short)Math.round(-leftStickVector.getY() * 0x7FFF); leftStickY = (short)(-leftStickVector.getY() * 0x7FFE);
} }
// Handle right stick events outside of the deadzone // Handle right stick events outside of the deadzone
@ -283,8 +283,8 @@ public class ControllerHandler {
Vector2d rightStickVector = handleDeadZone(event.getAxisValue(mapping.rightStickXAxis), Vector2d rightStickVector = handleDeadZone(event.getAxisValue(mapping.rightStickXAxis),
event.getAxisValue(mapping.rightStickYAxis), mapping.rightStickDeadzoneRadius); event.getAxisValue(mapping.rightStickYAxis), mapping.rightStickDeadzoneRadius);
rightStickX = (short)Math.round(rightStickVector.getX() * 0x7FFF); rightStickX = (short)(rightStickVector.getX() * 0x7FFE);
rightStickY = (short)Math.round(-rightStickVector.getY() * 0x7FFF); rightStickY = (short)(-rightStickVector.getY() * 0x7FFE);
} }
// Handle controllers with analog triggers // Handle controllers with analog triggers