fix: team selection

This commit is contained in:
2021-11-04 10:02:04 +01:00
parent 276f1b2ca3
commit c75361bd66

View File

@@ -97,8 +97,7 @@ void ServerConnexion::HandlePacket(protocol::SelectTeamPacket* packet) {
if (m_Server->getGame().getGameState() != game::GameState::Lobby)
return;
if ((std::int8_t)packet->getSelectedTeam() >= -1 || (std::int8_t)packet->getSelectedTeam() <= 1) {
//m_Player->setTeamColor(packet->getSelectedTeam());
if (m_Player->getTeamColor() == game::TeamColor::None) { //join a team
if (m_Player->getTeamColor() == game::TeamColor::None) { // join a team
m_Server->getGame().getTeam(packet->getSelectedTeam()).addPlayer(m_Player);
} else if (packet->getSelectedTeam() == game::TeamColor::None) { // leave a team
m_Server->getGame().getTeam(m_Player->getTeamColor()).removePlayer(m_Player);
@@ -107,6 +106,7 @@ void ServerConnexion::HandlePacket(protocol::SelectTeamPacket* packet) {
m_Server->getGame().getTeam(m_Player->getTeamColor()).removePlayer(m_Player);
m_Server->getGame().getTeam(packet->getSelectedTeam()).addPlayer(m_Player);
}
m_Player->setTeamColor(packet->getSelectedTeam());
protocol::UpdatePlayerTeamPacket updateTeamPacket(m_ID, packet->getSelectedTeam());
m_Server->broadcastPacket(&updateTeamPacket);
}