1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-11-02 12:56:39 +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)
{
if (mButtons.size() > 1)
{
mButtons[mControllerFocus]->setStateSelected(false);
if (mControllerFocus == 0)
mControllerFocus = mButtons.size() - 1;
else
mControllerFocus--;
mButtons[mControllerFocus]->setStateSelected(true);
}
if (mButtons.size() <= 1)
return true;
if (mButtons.size() == 2 && mControllerFocus == 0)
return true;
mButtons[mControllerFocus]->setStateSelected(false);
if (mControllerFocus == 0)
mControllerFocus = mButtons.size() - 1;
else
mControllerFocus--;
mButtons[mControllerFocus]->setStateSelected(true);
}
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_RIGHT)
{
if (mButtons.size() > 1)
{
mButtons[mControllerFocus]->setStateSelected(false);
if (mControllerFocus == mButtons.size() - 1)
mControllerFocus = 0;
else
mControllerFocus++;
mButtons[mControllerFocus]->setStateSelected(true);
}
if (mButtons.size() <= 1)
return true;
if (mButtons.size() == 2 && mControllerFocus == mButtons.size() - 1)
return true;
mButtons[mControllerFocus]->setStateSelected(false);
if (mControllerFocus == mButtons.size() - 1)
mControllerFocus = 0;
else
mControllerFocus++;
mButtons[mControllerFocus]->setStateSelected(true);
}
return true;