use of SAFE_CHECK

This commit is contained in:
2023-08-15 19:33:09 +02:00
parent 7b8c13612c
commit 1f94ae2586
2 changed files with 56 additions and 48 deletions

View File

@@ -50,7 +50,9 @@ void WorldClient::HandlePacket(const protocol::SpawnMobPacket* packet) {
void WorldClient::HandlePacket(const protocol::UpgradeTowerPacket* packet) { void WorldClient::HandlePacket(const protocol::UpgradeTowerPacket* packet) {
game::TowerPtr tower = GetTowerById(packet->GetTowerID()); game::TowerPtr tower = GetTowerById(packet->GetTowerID());
if (tower == nullptr) return; // this should not happen but who knows ?
SAFE_CHECK(tower);
tower->Upgrade(packet->GetTowerLevel().GetLevel(), packet->GetTowerLevel().GetPath()); tower->Upgrade(packet->GetTowerLevel().GetLevel(), packet->GetTowerLevel().GetPath());
} }
@@ -63,10 +65,10 @@ void WorldClient::HandlePacket(const protocol::WorldAddTowerPacket* packet) {
void WorldClient::HandlePacket(const protocol::RemoveTowerPacket* packet) { void WorldClient::HandlePacket(const protocol::RemoveTowerPacket* packet) {
game::TowerPtr tower = RemoveTower(packet->GetTowerID()); game::TowerPtr tower = RemoveTower(packet->GetTowerID());
if (tower != nullptr) { SAFE_CHECK(tower);
GetWorldNotifier().NotifyListeners(&WorldListener::OnTowerRemove, tower); GetWorldNotifier().NotifyListeners(&WorldListener::OnTowerRemove, tower);
} }
}
void WorldClient::HandlePacket(const protocol::UpdateMobStatesPacket* packet) { void WorldClient::HandlePacket(const protocol::UpdateMobStatesPacket* packet) {
for (auto mobState : packet->GetMobStates()) { for (auto mobState : packet->GetMobStates()) {

View File

@@ -92,7 +92,11 @@ void ServerConnexion::SendKeepAlive() {
} }
void ServerConnexion::HandlePacket(const protocol::PlayerLoginPacket* packet) { void ServerConnexion::HandlePacket(const protocol::PlayerLoginPacket* packet) {
if (m_Player->GetName().empty() && !packet->GetPlayerName().empty()) {
SAFE_CHECK(m_Player->GetName().empty() && !packet->GetPlayerName().empty());
m_Player->SetName(packet->GetPlayerName()); m_Player->SetName(packet->GetPlayerName());
utils::LOG(utils::format("\t[%s] joined !", m_Player->GetName().c_str())); utils::LOG(utils::format("\t[%s] joined !", m_Player->GetName().c_str()));
@@ -123,13 +127,14 @@ void ServerConnexion::HandlePacket(const protocol::PlayerLoginPacket* packet) {
protocol::WorldDataPacket dataPacket(m_Server->GetGame().GetWorld()); protocol::WorldDataPacket dataPacket(m_Server->GetGame().GetWorld());
SendPacket(&headerDataPacket); SendPacket(&headerDataPacket);
SendPacket(&dataPacket); SendPacket(&dataPacket);
}
} }
void ServerConnexion::HandlePacket(const protocol::SelectTeamPacket* packet) { void ServerConnexion::HandlePacket(const protocol::SelectTeamPacket* packet) {
SAFE_CHECK(m_Server->GetGame().GetGameState() == game::GameState::Lobby); SAFE_CHECK(m_Server->GetGame().GetGameState() == game::GameState::Lobby);
SAFE_CHECK(static_cast<std::int8_t>(packet->GetSelectedTeam()) >= -1 ||
static_cast<std::int8_t>(packet->GetSelectedTeam()) <= 1);
if (static_cast<std::int8_t>(packet->GetSelectedTeam()) >= -1 || static_cast<std::int8_t>(packet->GetSelectedTeam()) <= 1) {
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); m_Server->GetGame().GetTeam(packet->GetSelectedTeam()).AddPlayer(m_Player);
} else if (packet->GetSelectedTeam() == game::TeamColor::None) { // leave a team } else if (packet->GetSelectedTeam() == game::TeamColor::None) { // leave a team
@@ -143,10 +148,10 @@ void ServerConnexion::HandlePacket(const protocol::SelectTeamPacket* packet) {
protocol::UpdatePlayerTeamPacket updateTeamPacket(m_ID, packet->GetSelectedTeam()); protocol::UpdatePlayerTeamPacket updateTeamPacket(m_ID, packet->GetSelectedTeam());
m_Server->BroadcastPacket(&updateTeamPacket); m_Server->BroadcastPacket(&updateTeamPacket);
} }
}
void ServerConnexion::HandlePacket(const protocol::KeepAlivePacket* packet) { void ServerConnexion::HandlePacket(const protocol::KeepAlivePacket* packet) {
if (packet->GetAliveID() == m_KeepAlive.keepAliveID) SAFE_CHECK(packet->GetAliveID() == m_KeepAlive.keepAliveID);
m_KeepAlive.recievedResponse = true; m_KeepAlive.recievedResponse = true;
} }
@@ -209,7 +214,8 @@ void ServerConnexion::HandlePacket(const protocol::RemoveTowerPacket* packet) {
} }
ServerConnexion::~ServerConnexion() { ServerConnexion::~ServerConnexion() {
if (GetDispatcher() != nullptr) SAFE_CHECK(GetDispatcher() != nullptr);
GetDispatcher()->UnregisterHandler(this); GetDispatcher()->UnregisterHandler(this);
} }