summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorshuffle2 <godisgovernment@gmail.com>2014-05-29 14:02:24 -0700
committershuffle2 <godisgovernment@gmail.com>2014-05-29 14:02:24 -0700
commitd18bc31e74cd016f522412cb7fd71dbcc5371ecb (patch)
tree5de1f664576cbb3b265b23193133f030d467cd94 /Source
parentfee69236d5bc25d9d502b9deaf10eeea13b482fa (diff)
parent8c70ee719410a075c4a59a3e73ad8bd3fa2bf6f3 (diff)
Merge pull request #429 from RachelBryk/netplay-pid
Make sure netplay player IDs are actually unique.
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/NetPlayServer.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp
index 731f3b1093..c7145079bf 100644
--- a/Source/Core/Core/NetPlayServer.cpp
+++ b/Source/Core/Core/NetPlayServer.cpp
@@ -153,7 +153,16 @@ unsigned int NetPlayServer::OnConnect(sf::SocketTCP& socket)
rpac >> player.name;
// give new client first available id
- player.pid = (PlayerId)(m_players.size() + 1);
+ PlayerId pid = 1;
+ for (auto i = m_players.begin(); i != m_players.end(); ++i)
+ {
+ if (i->second.pid == pid)
+ {
+ pid++;
+ i = m_players.begin();
+ }
+ }
+ player.pid = pid;
// try to automatically assign new user a pad
for (PadMapping& mapping : m_pad_map)