From b7b8ef59a33d3ed00f4303c1afa740a353a30419 Mon Sep 17 00:00:00 2001 From: Sylvain Becker Date: Wed, 7 Oct 2020 17:32:07 +0200 Subject: [PATCH] Fixed bug 5307 - Crash when joysticks hats number is odd (Thanks Sockmonsters!) --- .../main/java/org/libsdl/app/SDLControllerManager.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java b/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java index 05674d143..d21788be1 100644 --- a/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java +++ b/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java @@ -263,10 +263,10 @@ class SDLJoystickHandler_API16 extends SDLJoystickHandler { float value = ( event.getAxisValue( range.getAxis(), actionPointerIndex) - range.getMin() ) / range.getRange() * 2.0f - 1.0f; SDLControllerManager.onNativeJoy(joystick.device_id, i, value ); } - for (int i = 0; i < joystick.hats.size(); i+=2) { - int hatX = Math.round(event.getAxisValue( joystick.hats.get(i).getAxis(), actionPointerIndex ) ); - int hatY = Math.round(event.getAxisValue( joystick.hats.get(i+1).getAxis(), actionPointerIndex ) ); - SDLControllerManager.onNativeHat(joystick.device_id, i/2, hatX, hatY ); + for (int i = 0; i < joystick.hats.size()/2; i++) { + int hatX = Math.round(event.getAxisValue( joystick.hats.get(2 * i).getAxis(), actionPointerIndex )); + int hatY = Math.round(event.getAxisValue( joystick.hats.get(2 * i + 1).getAxis(), actionPointerIndex )); + SDLControllerManager.onNativeHat(joystick.device_id, i, hatX, hatY); } } break;