Fixed bug 5307 - Crash when joysticks hats number is odd (Thanks Sockmonsters!)

This commit is contained in:
Sylvain Becker 2020-10-07 17:32:07 +02:00
parent bffbc7e316
commit b7b8ef59a3
1 changed files with 4 additions and 4 deletions

View File

@ -263,10 +263,10 @@ class SDLJoystickHandler_API16 extends SDLJoystickHandler {
float value = ( event.getAxisValue( range.getAxis(), actionPointerIndex) - range.getMin() ) / range.getRange() * 2.0f - 1.0f; float value = ( event.getAxisValue( range.getAxis(), actionPointerIndex) - range.getMin() ) / range.getRange() * 2.0f - 1.0f;
SDLControllerManager.onNativeJoy(joystick.device_id, i, value ); SDLControllerManager.onNativeJoy(joystick.device_id, i, value );
} }
for (int i = 0; i < joystick.hats.size(); i+=2) { for (int i = 0; i < joystick.hats.size()/2; i++) {
int hatX = Math.round(event.getAxisValue( joystick.hats.get(i).getAxis(), actionPointerIndex ) ); int hatX = Math.round(event.getAxisValue( joystick.hats.get(2 * i).getAxis(), actionPointerIndex ));
int hatY = Math.round(event.getAxisValue( joystick.hats.get(i+1).getAxis(), actionPointerIndex ) ); int hatY = Math.round(event.getAxisValue( joystick.hats.get(2 * i + 1).getAxis(), actionPointerIndex ));
SDLControllerManager.onNativeHat(joystick.device_id, i/2, hatX, hatY ); SDLControllerManager.onNativeHat(joystick.device_id, i, hatX, hatY);
} }
} }
break; break;