瀏覽代碼

Updated gamepad system with extra check

Avoid out-of-bounds situation with button array
pull/189/head
Ray 8 年之前
父節點
當前提交
9e285d8dc3
共有 1 個檔案被更改,包括 6 行新增6 行删除
  1. +6
    -6
      src/core.c

+ 6
- 6
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))
{
k">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;

Loading…
取消
儲存