(input_state_internal) Refactor this code

This commit is contained in:
twinaphex 2019-07-08 21:47:24 +02:00
parent 0f9890c38e
commit 7e6d8eb19a

View File

@ -3083,14 +3083,7 @@ static int16_t input_state_internal(
res |= (1 << id);
}
else
{
rarch_joypad_info_t joypad_info;
joypad_info.axis_threshold = input_driver_axis_threshold;
joypad_info.joy_idx = settings->uints.input_joypad_map[port];
joypad_info.auto_binds = input_autoconf_binds[joypad_info.joy_idx];
res = current_input->input_state(
current_input_data, joypad_info, libretro_input_binds, port, device, idx, id);
}
res = ret;
#ifdef HAVE_OVERLAY
if (input_overlay_is_alive(overlay_ptr) && port == 0)
@ -3157,6 +3150,12 @@ static int16_t input_state_internal(
int16_t input_state(unsigned port, unsigned device,
unsigned idx, unsigned id)
{
rarch_joypad_info_t joypad_info;
int16_t ret = 0;
joypad_info.axis_threshold = input_driver_axis_threshold;
joypad_info.joy_idx = configuration_settings->uints.input_joypad_map[port];
joypad_info.auto_binds = input_autoconf_binds[joypad_info.joy_idx];
if (bsv_movie_is_playback_on())
{
int16_t bsv_result;
@ -3166,19 +3165,14 @@ int16_t input_state(unsigned port, unsigned device,
}
device &= RETRO_DEVICE_MASK;
ret = current_input->input_state(
current_input_data, joypad_info, libretro_input_binds, port, device, idx, id);
if ( (device == RETRO_DEVICE_JOYPAD) &&
(id == RETRO_DEVICE_ID_JOYPAD_MASK))
{
unsigned i;
int16_t res = 0;
int16_t ret = 0;
rarch_joypad_info_t joypad_info;
joypad_info.axis_threshold = input_driver_axis_threshold;
joypad_info.joy_idx = configuration_settings->uints.input_joypad_map[port];
joypad_info.auto_binds = input_autoconf_binds[joypad_info.joy_idx];
ret = current_input->input_state(
current_input_data, joypad_info, libretro_input_binds, port, device, idx, id);
for (i = 0; i < RARCH_FIRST_CUSTOM_BIND; i++)
if (input_state_internal(ret, port, device, idx, i, true))
@ -3186,7 +3180,7 @@ int16_t input_state(unsigned port, unsigned device,
return res;
}
return input_state_internal(0, port, device, idx, id, false);
return input_state_internal(ret, port, device, idx, id, false);
}
/**