Removed code duplicating comments in NetPlayServer.cpp OnConnect()

This commit is contained in:
Sage King
2022-08-04 08:26:46 -06:00
parent 5dea8aaed0
commit 9d14d95737

View File

@ -381,7 +381,6 @@ static void SendSyncIdentifier(sf::Packet& spac, const SyncIdentifier& sync_iden
// called from ---NETPLAY--- thread // called from ---NETPLAY--- thread
ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac) ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac)
{ {
// give new client first available id
PlayerId pid = 1; PlayerId pid = 1;
for (auto i = m_players.begin(); i != m_players.end(); ++i) for (auto i = m_players.begin(); i != m_players.end(); ++i)
{ {
@ -395,15 +394,12 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac)
std::string netplay_version; std::string netplay_version;
rpac >> netplay_version; rpac >> netplay_version;
// Dolphin netplay version
if (netplay_version != Common::GetScmRevGitStr()) if (netplay_version != Common::GetScmRevGitStr())
return ConnectionError::VersionMismatch; return ConnectionError::VersionMismatch;
// game is currently running or game start is pending
if (m_is_running || m_start_pending) if (m_is_running || m_start_pending)
return ConnectionError::GameRunning; return ConnectionError::GameRunning;
// too many players
if (m_players.size() >= 255) if (m_players.size() >= 255)
return ConnectionError::ServerFull; return ConnectionError::ServerFull;
@ -417,13 +413,10 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac)
if (StringUTF8CodePointCount(player.name) > MAX_NAME_LENGTH) if (StringUTF8CodePointCount(player.name) > MAX_NAME_LENGTH)
return ConnectionError::NameTooLong; return ConnectionError::NameTooLong;
// Extend reliable traffic timeout
enet_peer_timeout(socket, 0, PEER_TIMEOUT, PEER_TIMEOUT); enet_peer_timeout(socket, 0, PEER_TIMEOUT, PEER_TIMEOUT);
// cause pings to be updated
m_update_pings = true; m_update_pings = true;
// try to automatically assign new user a pad
for (PlayerId& mapping : m_pad_map) for (PlayerId& mapping : m_pad_map)
{ {
if (mapping == 0) if (mapping == 0)
@ -433,61 +426,54 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac)
} }
} }
// send join message to already connected clients sf::Packet send_packet;
sf::Packet spac; send_packet << MessageID::PlayerJoin;
spac << MessageID::PlayerJoin; send_packet << player.pid << player.name << player.revision;
spac << player.pid << player.name << player.revision; SendToClients(send_packet);
SendToClients(spac);
// send new client success message with their ID send_packet.clear();
spac.clear(); send_packet << MessageID::ConnectionSuccessful;
spac << MessageID::ConnectionSuccessful; send_packet << player.pid;
spac << player.pid; Send(player.socket, send_packet);
Send(player.socket, spac);
// send new client the selected game
if (!m_selected_game_name.empty()) if (!m_selected_game_name.empty())
{ {
spac.clear(); send_packet.clear();
spac << MessageID::ChangeGame; send_packet << MessageID::ChangeGame;
SendSyncIdentifier(spac, m_selected_game_identifier); SendSyncIdentifier(send_packet, m_selected_game_identifier);
spac << m_selected_game_name; send_packet << m_selected_game_name;
Send(player.socket, spac); Send(player.socket, send_packet);
} }
if (!m_host_input_authority) if (!m_host_input_authority)
{ {
// send the pad buffer value send_packet.clear();
spac.clear(); send_packet << MessageID::PadBuffer;
spac << MessageID::PadBuffer; send_packet << m_target_buffer_size;
spac << m_target_buffer_size; Send(player.socket, send_packet);
Send(player.socket, spac);
} }
// send input authority state send_packet.clear();
spac.clear(); send_packet << MessageID::HostInputAuthority;
spac << MessageID::HostInputAuthority; send_packet << m_host_input_authority;
spac << m_host_input_authority; Send(player.socket, send_packet);
Send(player.socket, spac);
// sync values with new client
for (const auto& p : m_players) for (const auto& p : m_players)
{ {
spac.clear(); send_packet.clear();
spac << MessageID::PlayerJoin; send_packet << MessageID::PlayerJoin;
spac << p.second.pid << p.second.name << p.second.revision; send_packet << p.second.pid << p.second.name << p.second.revision;
Send(player.socket, spac); Send(player.socket, send_packet);
spac.clear(); send_packet.clear();
spac << MessageID::GameStatus; send_packet << MessageID::GameStatus;
spac << p.second.pid << p.second.game_status; send_packet << p.second.pid << p.second.game_status;
Send(player.socket, spac); Send(player.socket, send_packet);
} }
if (Config::Get(Config::NETPLAY_ENABLE_QOS)) if (Config::Get(Config::NETPLAY_ENABLE_QOS))
player.qos_session = Common::QoSSession(player.socket); player.qos_session = Common::QoSSession(player.socket);
// add client to the player list
{ {
std::lock_guard lkp(m_crit.players); std::lock_guard lkp(m_crit.players);
m_players.emplace(*PeerPlayerId(player.socket), std::move(player)); m_players.emplace(*PeerPlayerId(player.socket), std::move(player));