From 9e285d8dc33a5a18eeb154c69b04de1c1358678d Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 15 Oct 2016 13:17:57 +0200 Subject: [PATCH] Updated gamepad system with extra check Avoid out-of-bounds situation with button array --- src/core.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/core.c b/src/core.c index 78629e8f..3bd85fdd 100644 --- a/src/core.c +++ b/src/core.c @@ -1179,9 +1179,9 @@ float GetGamepadAxisMovement(int gamepad, int axis) { float value = 0; - if ((gamepad < MAX_GAMEPADS) && gamepadReady[gamepad]) + if ((gamepad < MAX_GAMEPADS) && gamepadReady[gamepad] && (axis < MAX_GAMEPAD_AXIS)) { - if (axis < MAX_GAMEPAD_AXIS) value = gamepadAxisState[gamepad][axis]; + value = gamepadAxisState[gamepad][axis]; } return value; @@ -1192,7 +1192,7 @@ bool IsGamepadButtonPressed(int gamepad, int button) { bool pressed = false; - if ((gamepad < MAX_GAMEPADS) && gamepadReady[gamepad] && + if ((gamepad < MAX_GAMEPADS) && gamepadReady[gamepad] && (button < MAX_GAMEPAD_BUTTONS) && (currentGamepadState[gamepad][button] != previousGamepadState[gamepad][button]) && (currentGamepadState[gamepad][button] == 1)) pressed = true; @@ -1204,7 +1204,7 @@ bool IsGamepadButtonDown(int gamepad, int button) { bool result = false; - if ((gamepad < MAX_GAMEPADS) && gamepadReady[gamepad] && + if ((gamepad < MAX_GAMEPADS) && gamepadReady[gamepad] && (button < MAX_GAMEPAD_BUTTONS) && (currentGamepadState[gamepad][button] == 1)) result = true; return result; @@ -1215,7 +1215,7 @@ bool IsGamepadButtonReleased(int gamepad, int button) { bool released = false; - if ((gamepad < MAX_GAMEPADS) && gamepadReady[gamepad] && + if ((gamepad < MAX_GAMEPADS) && gamepadReady[gamepad] && (button < MAX_GAMEPAD_BUTTONS) && (currentGamepadState[gamepad][button] != previousGamepadState[gamepad][button]) && (currentGamepadState[gamepad][button] == 0)) released = true; @@ -1227,7 +1227,7 @@ bool IsGamepadButtonUp(int gamepad, int button) { bool result = false; - if ((gamepad < MAX_GAMEPADS) && gamepadReady[gamepad] && + if ((gamepad < MAX_GAMEPADS) && gamepadReady[gamepad] && (button < MAX_GAMEPAD_BUTTONS) && (currentGamepadState[gamepad][button] == 0)) result = true; return result;