Simplify overlay analogs handling.

This commit is contained in:
Themaister 2014-01-08 13:32:51 +01:00
parent 04017b7fd7
commit f61f42c68f

View File

@ -636,15 +636,8 @@ static int16_t input_state(unsigned port, unsigned device, unsigned index, unsig
{
unsigned base = (index == RETRO_DEVICE_INDEX_ANALOG_RIGHT) ? 2 : 0;
base += (id == RETRO_DEVICE_ID_ANALOG_Y) ? 1 : 0;
// Simply adding here could overflow the int16_t.
int sum = res + driver.overlay_state.analog[base];
if (sum > 0x7fff)
res = 0x7fff;
else if (sum < -0x7fff)
res = -0x7fff;
else
res = sum;
if (driver.overlay_state.analog[base])
res = driver.overlay_state.analog[base];
}
#endif