mirror of
https://github.com/libretro/RetroArch
synced 2025-02-27 18:41:01 +00:00
allow wraparound of settings when pressing left key for int and float types
This commit is contained in:
parent
aa6301e0d6
commit
4a68904733
@ -166,7 +166,6 @@ static int setting_uint_action_left_default(void *data, bool wraparound)
|
||||
|
||||
(void)wraparound; /* TODO/FIXME - handle this */
|
||||
|
||||
|
||||
overflowed = setting->step > *setting->value.target.unsigned_integer;
|
||||
|
||||
if (!overflowed)
|
||||
@ -204,7 +203,6 @@ static int setting_uint_action_right_default(void *data, bool wraparound)
|
||||
|
||||
(void)wraparound; /* TODO/FIXME - handle this */
|
||||
|
||||
|
||||
*setting->value.target.unsigned_integer =
|
||||
*setting->value.target.unsigned_integer + setting->step;
|
||||
|
||||
@ -355,20 +353,36 @@ static int setting_fraction_action_left_default(
|
||||
void *data, bool wraparound)
|
||||
{
|
||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||
double min = 0.0f;
|
||||
bool overflowed = false;
|
||||
|
||||
if (!setting)
|
||||
return -1;
|
||||
|
||||
min = setting->min;
|
||||
|
||||
(void)wraparound; /* TODO/FIXME - handle this */
|
||||
|
||||
*setting->value.target.fraction =
|
||||
*setting->value.target.fraction - setting->step;
|
||||
overflowed = setting->step > *setting->value.target.fraction;
|
||||
|
||||
if (!overflowed)
|
||||
*setting->value.target.fraction = *setting->value.target.fraction - setting->step;
|
||||
|
||||
if (setting->enforce_minrange)
|
||||
{
|
||||
double min = setting->min;
|
||||
if (*setting->value.target.fraction < min)
|
||||
*setting->value.target.fraction = min;
|
||||
if (overflowed || *setting->value.target.fraction < 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.fraction = max;
|
||||
else
|
||||
#endif
|
||||
*setting->value.target.fraction = min;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -1027,26 +1041,38 @@ static rarch_setting_t setting_bind_setting(const char* name,
|
||||
|
||||
static int setting_int_action_left_default(void *data, bool wraparound)
|
||||
{
|
||||
double min = 0.0f;
|
||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||
double min = 0.0f;
|
||||
bool overflowed = false;
|
||||
|
||||
if (!setting)
|
||||
return -1;
|
||||
|
||||
min = setting->min;
|
||||
min = setting->min;
|
||||
|
||||
(void)wraparound; /* TODO/FIXME - handle this */
|
||||
|
||||
if (*setting->value.target.integer != min)
|
||||
*setting->value.target.integer =
|
||||
*setting->value.target.integer - setting->step;
|
||||
overflowed = setting->step > *setting->value.target.integer;
|
||||
|
||||
if (!overflowed)
|
||||
*setting->value.target.integer = *setting->value.target.integer - setting->step;
|
||||
|
||||
if (setting->enforce_minrange)
|
||||
{
|
||||
if (*setting->value.target.integer < min)
|
||||
*setting->value.target.integer = min;
|
||||
}
|
||||
if (overflowed || *setting->value.target.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.integer = max;
|
||||
else
|
||||
#endif
|
||||
*setting->value.target.integer = min;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user