mirror of
https://github.com/libretro/RetroArch
synced 2025-04-18 14:42:30 +00:00
Merge pull request #5157 from Grotke/fix-uint-wrap-left
Fix uint menu options wrap left
This commit is contained in:
commit
bcb97caa4e
@ -211,6 +211,7 @@ static int setting_uint_action_left_default(void *data, bool wraparound)
|
|||||||
{
|
{
|
||||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||||
double min = 0.0f;
|
double min = 0.0f;
|
||||||
|
bool overflowed = false;
|
||||||
|
|
||||||
if (!setting)
|
if (!setting)
|
||||||
return -1;
|
return -1;
|
||||||
@ -219,16 +220,28 @@ static int setting_uint_action_left_default(void *data, bool wraparound)
|
|||||||
|
|
||||||
(void)wraparound; /* TODO/FIXME - handle this */
|
(void)wraparound; /* TODO/FIXME - handle this */
|
||||||
|
|
||||||
if (*setting->value.target.unsigned_integer != min)
|
|
||||||
*setting->value.target.unsigned_integer =
|
overflowed = setting->step > *setting->value.target.unsigned_integer;
|
||||||
*setting->value.target.unsigned_integer - setting->step;
|
|
||||||
|
if (!overflowed)
|
||||||
|
*setting->value.target.unsigned_integer = *setting->value.target.unsigned_integer - setting->step;
|
||||||
|
|
||||||
if (setting->enforce_minrange)
|
if (setting->enforce_minrange)
|
||||||
{
|
{
|
||||||
if (*setting->value.target.unsigned_integer < min)
|
if (overflowed || *setting->value.target.unsigned_integer < min)
|
||||||
|
{
|
||||||
|
settings_t *settings = config_get_ptr();
|
||||||
|
|
||||||
|
#ifdef HAVE_MENU
|
||||||
|
double max = setting->max;
|
||||||
|
|
||||||
|
if (settings && settings->bools.menu_navigation_wraparound_enable)
|
||||||
|
*setting->value.target.unsigned_integer = max;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
*setting->value.target.unsigned_integer = min;
|
*setting->value.target.unsigned_integer = min;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user