Fix menu up/down when menumask disables first entry (#902)

This commit is contained in:
zakk4223
2024-05-20 02:51:45 -04:00
committed by GitHub
parent a2941ae27e
commit 372909e7b6

View File

@@ -1278,37 +1278,38 @@ void HandleUI(void)
{
if (down)
{
if((menumask >= ((uint64_t)1 << (menusub + 1)))) // Any active entries left?
{
do
{
menusub++;
} while ((menumask & ((uint64_t)1 << menusub)) == 0);
}
else
{
menusub = 0; // jump to first item
}
if((menumask >= ((uint64_t)1 << (menusub + 1)))) // Any active entries left?
{
do
{
menusub++;
} while ((menumask & ((uint64_t)1 << menusub)) == 0);
} else {
menusub = 0; // jump to first item
while ((menumask & ((uint64_t)1 << menusub )) == 0) menusub++;
}
menustate = parentstate;
menustate = parentstate;
}
if (up)
{
if (menusub > 0)
{
do
{
--menusub;
} while ((menumask & ((uint64_t)1 << menusub)) == 0);
}
else
{
do
{
menusub++;
} while ((menumask & ((uint64_t)(~0) << (menusub + 1))) != 0); // jump to last item
}
if (menusub > 0)
{
do
{
--menusub;
} while (menusub != 0 && (menumask & ((uint64_t)1 << menusub)) == 0);
if (menusub == 0 && (menumask & 1) == 0) { //If the first menu entry is disabled...
while ((menumask & ((uint64_t)(~0) << (menusub + 1))) != 0) menusub++;
//Go to to last item
}
} else {
do
{
menusub++;
} while ((menumask & ((uint64_t)(~0) << (menusub + 1))) != 0); // jump to last item
}
menustate = parentstate;
}
}