diff --git a/src/config.h b/src/config.h index 67c6060b8..44f9bd300 100644 --- a/src/config.h +++ b/src/config.h @@ -76,7 +76,8 @@ #define MAX_FILEPATH_CAPACITY 8192 // Maximum file paths capacity #define MAX_FILEPATH_LENGTH 4096 // Maximum length for filepaths (Linux PATH_MAX default value) -#define MAX_KEYBOARD_KEYS 512 // Maximum number of keyboard keys supported +#define KEYBOARD_KEYS_MASK 511 // Mask for maximum number of keyboard keys +#define MAX_KEYBOARD_KEYS (KEYBOARD_KEYS_MASK + 1)// Maximum number of keyboard keys supported #define MAX_MOUSE_BUTTONS 8 // Maximum number of mouse buttons supported #define MAX_GAMEPADS 4 // Maximum number of gamepads supported #define MAX_GAMEPAD_AXIS 8 // Maximum number of axis supported (per gamepad) diff --git a/src/rcore.c b/src/rcore.c index 5bc0b4ca6..8e094c148 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -3748,7 +3748,7 @@ void OpenURL(const char *url) #define KEY_STATE_PRESSED ( 2 | KEY_STATE_DOWN) // Flag for key pressed down on frame #define KEY_STATE_RELEASED 4 // Flag for key released on frame #define KEY_STATE_REPEATED ( 8 | KEY_STATE_DOWN) // Flag for key text repeat -#define KEY_STATE(key) CORE.Input.Keyboard.keyState[key & (MAX_KEYBOARD_KEYS - 1)] // Safely accesses key state +#define KEY_STATE(key) CORE.Input.Keyboard.keyState[key & KEYBOARD_KEYS_MASK] // Safely accesses key state // Check if a key has been pressed once bool IsKeyPressed(int key)