fix persistent players

This commit is contained in:
2023-08-14 13:59:30 +02:00
parent 0c0fd155ed
commit 7986e55846
4 changed files with 13 additions and 2 deletions

View File

@@ -42,6 +42,8 @@ public:
virtual void Tick(std::uint64_t delta); virtual void Tick(std::uint64_t delta);
void Reset();
Team& GetRedTeam() { return m_Teams[static_cast<std::uint8_t>(TeamColor::Red)]; } Team& GetRedTeam() { return m_Teams[static_cast<std::uint8_t>(TeamColor::Red)]; }
const Team& GetRedTeam() const { return m_Teams[static_cast<std::uint8_t>(TeamColor::Red)]; } const Team& GetRedTeam() const { return m_Teams[static_cast<std::uint8_t>(TeamColor::Red)]; }

View File

@@ -40,6 +40,9 @@ void Client::CloseConnection() {
m_Game->SetGameState(game::GameState::Disconnected); m_Game->SetGameState(game::GameState::Disconnected);
m_Connexion.CloseConnection(); m_Connexion.CloseConnection();
m_Game->Reset();
} }
void Client::Tick(std::uint64_t delta) { void Client::Tick(std::uint64_t delta) {

View File

@@ -53,9 +53,10 @@ void Server::StartThread() {
} }
void Server::Restart() { void Server::Restart() {
m_Game.GetWorld()->Reset(); m_Game.Reset();
m_Lobby.OpenLobby();
m_Game.SetGameState(game::GameState::Lobby); m_Game.SetGameState(game::GameState::Lobby);
m_Lobby.OpenLobby();
} }
void Server::Close() { void Server::Close() {

View File

@@ -17,6 +17,11 @@ void Game::Tick(std::uint64_t delta) {
} }
} }
void Game::Reset() {
m_World->Reset();
m_Players.clear();
}
Player* Game::GetPlayerById(PlayerID id) { Player* Game::GetPlayerById(PlayerID id) {
auto it = m_Players.find(id); auto it = m_Players.find(id);