InputCommon/SDL: Check for errors from SDL_JoystickNumButtons(), SDL_JoystickNumAxes(), SDL_JoystickNumHats().

This commit is contained in:
Admiral H. Curtiss 2024-01-15 15:18:38 +01:00
parent 959c39133b
commit d657ad5932
No known key found for this signature in database
GPG Key ID: F051B4C4044F33FB

View File

@ -342,8 +342,26 @@ GameController::GameController(SDL_GameController* const gamecontroller,
// If a Joystick Button has a GameController equivalent, don't detect it // If a Joystick Button has a GameController equivalent, don't detect it
int n_legacy_buttons = SDL_JoystickNumButtons(joystick); int n_legacy_buttons = SDL_JoystickNumButtons(joystick);
if (n_legacy_buttons < 0)
{
ERROR_LOG_FMT(CONTROLLERINTERFACE, "Error in SDL_JoystickNumButtons(): {}", SDL_GetError());
n_legacy_buttons = 0;
}
int n_legacy_axes = SDL_JoystickNumAxes(joystick); int n_legacy_axes = SDL_JoystickNumAxes(joystick);
if (n_legacy_axes < 0)
{
ERROR_LOG_FMT(CONTROLLERINTERFACE, "Error in SDL_JoystickNumAxes(): {}", SDL_GetError());
n_legacy_axes = 0;
}
int n_legacy_hats = SDL_JoystickNumHats(joystick); int n_legacy_hats = SDL_JoystickNumHats(joystick);
if (n_legacy_hats < 0)
{
ERROR_LOG_FMT(CONTROLLERINTERFACE, "Error in SDL_JoystickNumHats(): {}", SDL_GetError());
n_legacy_hats = 0;
}
std::vector<bool> is_button_mapped(n_legacy_buttons); std::vector<bool> is_button_mapped(n_legacy_buttons);
std::vector<bool> is_axis_mapped(n_legacy_axes); std::vector<bool> is_axis_mapped(n_legacy_axes);
std::vector<bool> is_hat_mapped(n_legacy_hats); std::vector<bool> is_hat_mapped(n_legacy_hats);