diff --git a/Source/Core/Core/Src/NetPlayServer.cpp b/Source/Core/Core/Src/NetPlayServer.cpp index 715fd5048d..5abf805fe5 100644 --- a/Source/Core/Core/Src/NetPlayServer.cpp +++ b/Source/Core/Core/Src/NetPlayServer.cpp @@ -238,9 +238,11 @@ unsigned int NetPlayServer::OnDisconnect(sf::SocketTCP& socket) SendToClients(spac); } + int pid = m_players[socket].pid; + sf::Packet spac; spac << (MessageId)NP_MSG_PLAYER_LEAVE; - spac << m_players[socket].pid; + spac << pid; m_selector.Remove(socket); @@ -251,6 +253,11 @@ unsigned int NetPlayServer::OnDisconnect(sf::SocketTCP& socket) std::lock_guard lks(m_crit.send); SendToClients(spac); + for (int i = 0; i < 4; i++) + if (m_pad_map[i] == pid) + m_pad_map[i] = -1; + UpdatePadMapping(); + return 0; }