diff --git a/include/td/Defines.h b/include/td/Defines.h index d3f79f4..05a8373 100644 --- a/include/td/Defines.h +++ b/include/td/Defines.h @@ -2,6 +2,9 @@ #include +#define SAFE_CHECK(expr) if(!(expr)) return + + namespace td { static constexpr float PI = 3.141592653f; diff --git a/src/client/game/ClientGame.cpp b/src/client/game/ClientGame.cpp index 9413bce..fb858f7 100644 --- a/src/client/game/ClientGame.cpp +++ b/src/client/game/ClientGame.cpp @@ -77,6 +77,9 @@ void ClientGame::HandlePacket(const protocol::PlayerListPacket* packet) { void ClientGame::HandlePacket(const protocol::UpdatePlayerTeamPacket* packet) { game::Player* player = &m_Players[packet->GetPlayerID()]; + + SAFE_CHECK(player); + if (player->GetTeamColor() == game::TeamColor::None) { //join a team GetTeam(packet->GetSelectedTeam()).AddPlayer(player); } else if (packet->GetSelectedTeam() == game::TeamColor::None) { // leave a team @@ -101,10 +104,14 @@ void ClientGame::HandlePacket(const protocol::UpdateLobbyTimePacket* packet) { } void ClientGame::HandlePacket(const protocol::UpdateMoneyPacket* packet) { + SAFE_CHECK(m_Player); + m_Player->SetGold(packet->GetGold()); } void ClientGame::HandlePacket(const protocol::UpdateExpPacket* packet) { + SAFE_CHECK(m_Player); + m_Player->SetExp(packet->GetExp()); } diff --git a/src/server/ServerConnexion.cpp b/src/server/ServerConnexion.cpp index bba1aa3..e75692d 100644 --- a/src/server/ServerConnexion.cpp +++ b/src/server/ServerConnexion.cpp @@ -28,8 +28,6 @@ #define KEEP_ALIVE_TIMEOUT 10 * 1000 // 10s -#define SAFE_CHECK(expr) if(!(expr)) return - namespace td { namespace server {