Clear the old player index slot when moving to a new one

This commit is contained in:
Cameron Gutman 2020-03-07 19:21:21 -08:00
parent 165ccaa85b
commit 4e0fb110c8

View file

@ -146,6 +146,7 @@ SDL_SetJoystickIDForPlayerIndex(int player_index, SDL_JoystickID instance_id)
SDL_JoystickID existing_instance = SDL_GetJoystickIDForPlayerIndex(player_index);
SDL_JoystickDriver *driver;
int device_index;
int existing_player_index;
if (player_index < 0) {
return SDL_FALSE;
@ -165,6 +166,12 @@ SDL_SetJoystickIDForPlayerIndex(int player_index, SDL_JoystickID instance_id)
return SDL_TRUE;
}
/* Clear the old player index */
existing_player_index = SDL_GetPlayerIndexForJoystickID(instance_id);
if (existing_player_index >= 0) {
SDL_joystick_players[existing_player_index] = -1;
}
SDL_joystick_players[player_index] = instance_id;
/* Update the driver with the new index */