From 4e0fb110c805e262d028f815bca95915c4bfc1ec Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 7 Mar 2020 19:21:21 -0800 Subject: [PATCH] Clear the old player index slot when moving to a new one --- src/joystick/SDL_joystick.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/joystick/SDL_joystick.c b/src/joystick/SDL_joystick.c index 929f9582b..95aac9c6f 100644 --- a/src/joystick/SDL_joystick.c +++ b/src/joystick/SDL_joystick.c @@ -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 */