Hat cleanup

This commit is contained in:
Clownacy 2020-04-05 00:20:41 +01:00
parent 8fdaea5d8b
commit c187660904
2 changed files with 8 additions and 28 deletions

View file

@ -137,22 +137,22 @@ BOOL ControllerBackend_GetJoystickStatus(JOYSTICK_STATUS *status)
// Then the joystick hats
for (int i = 0; i < total_axes; ++i)
{
status->bButton[buttons_done] = hats[i] == GLFW_HAT_UP;
status->bButton[buttons_done] = hats[i] & GLFW_HAT_UP;
if (++buttons_done >= button_limit)
break;
status->bButton[buttons_done] = hats[i] == GLFW_HAT_RIGHT;
status->bButton[buttons_done] = hats[i] & GLFW_HAT_RIGHT;
if (++buttons_done >= button_limit)
break;
status->bButton[buttons_done] = hats[i] == GLFW_HAT_DOWN;
status->bButton[buttons_done] = hats[i] & GLFW_HAT_DOWN;
if (++buttons_done >= button_limit)
break;
status->bButton[buttons_done] = hats[i] == GLFW_HAT_LEFT;
status->bButton[buttons_done] = hats[i] & GLFW_HAT_LEFT;
if (++buttons_done >= button_limit)
break;

View file

@ -78,42 +78,22 @@ BOOL ControllerBackend_GetJoystickStatus(JOYSTICK_STATUS *status)
{
Uint8 hat = SDL_JoystickGetHat(joystick, i);
status->bButton[buttons_done] = hat == SDL_HAT_UP;
status->bButton[buttons_done] = hat == SDL_HAT_UP || hat == SDL_HAT_LEFTUP || hat == SDL_HAT_RIGHTUP;
if (++buttons_done >= button_limit)
break;
status->bButton[buttons_done] = hat == SDL_HAT_RIGHT;
status->bButton[buttons_done] = hat == SDL_HAT_RIGHT || hat == SDL_HAT_RIGHTUP || hat == SDL_HAT_RIGHTDOWN;
if (++buttons_done >= button_limit)
break;
status->bButton[buttons_done] = hat == SDL_HAT_DOWN;
status->bButton[buttons_done] = hat == SDL_HAT_DOWN || hat == SDL_HAT_LEFTDOWN || hat == SDL_HAT_RIGHTDOWN;
if (++buttons_done >= button_limit)
break;
status->bButton[buttons_done] = hat == SDL_HAT_LEFT;
if (++buttons_done >= button_limit)
break;
status->bButton[buttons_done] = hat == SDL_HAT_RIGHTUP;
if (++buttons_done >= button_limit)
break;
status->bButton[buttons_done] = hat == SDL_HAT_RIGHTDOWN;
if (++buttons_done >= button_limit)
break;
status->bButton[buttons_done] = hat == SDL_HAT_LEFTUP;
if (++buttons_done >= button_limit)
break;
status->bButton[buttons_done] = hat == SDL_HAT_LEFTDOWN;
status->bButton[buttons_done] = hat == SDL_HAT_LEFT || hat == SDL_HAT_LEFTUP || hat == SDL_HAT_LEFTDOWN;
if (++buttons_done >= button_limit)
break;