diff --git a/src/game/server/ServerConnexion.cpp b/src/game/server/ServerConnexion.cpp index 38b84ab..0d74344 100644 --- a/src/game/server/ServerConnexion.cpp +++ b/src/game/server/ServerConnexion.cpp @@ -51,7 +51,7 @@ void ServerConnexion::checkKeepAlive() { if (time - m_KeepAlive.sendTime > KEEP_ALIVE_TIMEOUT) { if (m_KeepAlive.recievedResponse) { sendKeepAlive(); - } else { + } else { protocol::DisconnectPacket packet("Time out"); sendPacket(&packet); closeConnection(); @@ -144,7 +144,16 @@ void ServerConnexion::initConnection() { } void ServerConnexion::HandlePacket(protocol::PlaceTowerPacket* packet) { - // process packet + game::TowerType towerType = packet->getTowerType(); + const game::TowerInfo& towerInfo = game::getTowerInfo(towerType); + const game::World* world = m_Server->getGame().getWorld(); + if (towerInfo.isBigTower()) { + if (!world->CanPlaceBigTower({ packet->getTowerX(), packet->getTowerY() })) + return; + } else { + if (!world->CanPlaceLittleTower({ packet->getTowerX(), packet->getTowerY() })) + return; + } protocol::WorldAddTowerPacket addTowerPacket(packet->getTowerX(), packet->getTowerY(), packet->getTowerType(), m_ID); m_Server->broadcastPacket(&addTowerPacket); }