From dbe91b52fdc936f9e29230243d2ef57fc9148310 Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Mon, 14 Aug 2023 18:41:51 +0200 Subject: [PATCH] send team update after restart --- include/server/game/ServerGame.h | 2 ++ include/td/game/BaseGame.h | 2 +- src/server/game/ServerGame.cpp | 11 +++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/server/game/ServerGame.h b/include/server/game/ServerGame.h index cf633ce..7d743f7 100644 --- a/include/server/game/ServerGame.h +++ b/include/server/game/ServerGame.h @@ -23,6 +23,8 @@ public: ServerWorld* GetServerWorld() { return &m_ServerWorld; } virtual void Tick(std::uint64_t delta); + virtual void Reset() override; + void StartGame(); // GameListener diff --git a/include/td/game/BaseGame.h b/include/td/game/BaseGame.h index 8d55654..fc11d42 100644 --- a/include/td/game/BaseGame.h +++ b/include/td/game/BaseGame.h @@ -42,7 +42,7 @@ public: virtual void Tick(std::uint64_t delta); - void Reset(); + virtual void Reset(); Team& GetRedTeam() { return m_Teams[static_cast(TeamColor::Red)]; } const Team& GetRedTeam() const { return m_Teams[static_cast(TeamColor::Red)]; } diff --git a/src/server/game/ServerGame.cpp b/src/server/game/ServerGame.cpp index f487e86..626a3b4 100644 --- a/src/server/game/ServerGame.cpp +++ b/src/server/game/ServerGame.cpp @@ -100,6 +100,17 @@ void ServerGame::BalanceTeams() { } } +void ServerGame::Reset() { + Game::Reset(); + + // update players teams to none + for (auto& playerInfo : m_Players) { + game::Player& player = playerInfo.second; + protocol::UpdatePlayerTeamPacket packet(player.GetID(), player.GetTeamColor()); + m_Server->BroadcastPacket(&packet); + } +} + void ServerGame::OnGameStateUpdate(game::GameState newState) { SetGameState(newState); protocol::UpdateGameStatePacket packet(newState);