diff options
| author | shuffle2 <godisgovernment@gmail.com> | 2014-05-29 14:02:24 -0700 |
|---|---|---|
| committer | shuffle2 <godisgovernment@gmail.com> | 2014-05-29 14:02:24 -0700 |
| commit | d18bc31e74cd016f522412cb7fd71dbcc5371ecb (patch) | |
| tree | 5de1f664576cbb3b265b23193133f030d467cd94 /Source | |
| parent | fee69236d5bc25d9d502b9deaf10eeea13b482fa (diff) | |
| parent | 8c70ee719410a075c4a59a3e73ad8bd3fa2bf6f3 (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.cpp | 11 |
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) |
