1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-11-02 19:56:41 +00:00

Controller menus: don't wrap focus when only two buttons

This commit is contained in:
Andrew Lanzone 2025-05-11 13:48:50 -07:00
parent 4c5db612f0
commit c9ce93a22f

View file

@ -456,27 +456,31 @@ namespace MWGui
} }
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_LEFT) else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_LEFT)
{ {
if (mButtons.size() > 1) if (mButtons.size() <= 1)
{ return true;
mButtons[mControllerFocus]->setStateSelected(false); if (mButtons.size() == 2 && mControllerFocus == 0)
if (mControllerFocus == 0) return true;
mControllerFocus = mButtons.size() - 1;
else mButtons[mControllerFocus]->setStateSelected(false);
mControllerFocus--; if (mControllerFocus == 0)
mButtons[mControllerFocus]->setStateSelected(true); mControllerFocus = mButtons.size() - 1;
} else
mControllerFocus--;
mButtons[mControllerFocus]->setStateSelected(true);
} }
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_RIGHT) else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_RIGHT)
{ {
if (mButtons.size() > 1) if (mButtons.size() <= 1)
{ return true;
mButtons[mControllerFocus]->setStateSelected(false); if (mButtons.size() == 2 && mControllerFocus == mButtons.size() - 1)
if (mControllerFocus == mButtons.size() - 1) return true;
mControllerFocus = 0;
else mButtons[mControllerFocus]->setStateSelected(false);
mControllerFocus++; if (mControllerFocus == mButtons.size() - 1)
mButtons[mControllerFocus]->setStateSelected(true); mControllerFocus = 0;
} else
mControllerFocus++;
mButtons[mControllerFocus]->setStateSelected(true);
} }
return true; return true;