feat: add tower remove packet
This commit is contained in:
@@ -35,6 +35,7 @@ public:
|
|||||||
virtual void HandlePacket(SpawnMobPacket* packet) {}
|
virtual void HandlePacket(SpawnMobPacket* packet) {}
|
||||||
virtual void HandlePacket(PlaceTowerPacket* packet) {}
|
virtual void HandlePacket(PlaceTowerPacket* packet) {}
|
||||||
virtual void HandlePacket(WorldAddTowerPacket* packet) {}
|
virtual void HandlePacket(WorldAddTowerPacket* packet) {}
|
||||||
|
virtual void HandlePacket(WorldRemoveTowerPacket* packet) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace protocol
|
} // namespace protocol
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ enum class PacketType : std::uint8_t {
|
|||||||
ServerTps,
|
ServerTps,
|
||||||
SpawnMob,
|
SpawnMob,
|
||||||
PlaceTower,
|
PlaceTower,
|
||||||
WorldAddTower
|
WorldAddTower,
|
||||||
|
WorldRemoveTower,
|
||||||
};
|
};
|
||||||
|
|
||||||
class Packet {
|
class Packet {
|
||||||
@@ -428,5 +429,22 @@ public:
|
|||||||
virtual PacketType getType() const { return PacketType::WorldAddTower; }
|
virtual PacketType getType() const { return PacketType::WorldAddTower; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class WorldRemoveTowerPacket : public Packet{
|
||||||
|
private:
|
||||||
|
game::TowerID m_TowerID;
|
||||||
|
public:
|
||||||
|
WorldRemoveTowerPacket() {}
|
||||||
|
WorldRemoveTowerPacket(game::TowerID id) : m_TowerID(id) {}
|
||||||
|
virtual ~WorldRemoveTowerPacket() {}
|
||||||
|
|
||||||
|
virtual DataBuffer Serialize() const;
|
||||||
|
virtual void Deserialize(DataBuffer& data);
|
||||||
|
virtual void Dispatch(PacketHandler* handler);
|
||||||
|
|
||||||
|
game::TowerID getTowerID() const { return m_TowerID; }
|
||||||
|
|
||||||
|
virtual PacketType getType() const { return PacketType::WorldRemoveTower; }
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -28,6 +28,7 @@ static std::map<PacketType, PacketCreator> packets = {
|
|||||||
{PacketType::SpawnMob, []() -> Packet* {return new SpawnMobPacket(); } },
|
{PacketType::SpawnMob, []() -> Packet* {return new SpawnMobPacket(); } },
|
||||||
{PacketType::PlaceTower, []() -> Packet* {return new PlaceTowerPacket(); } },
|
{PacketType::PlaceTower, []() -> Packet* {return new PlaceTowerPacket(); } },
|
||||||
{PacketType::WorldAddTower, []() -> Packet* {return new WorldAddTowerPacket(); } },
|
{PacketType::WorldAddTower, []() -> Packet* {return new WorldAddTowerPacket(); } },
|
||||||
|
{PacketType::WorldRemoveTower, []() -> Packet* {return new WorldRemoveTowerPacket(); } },
|
||||||
};
|
};
|
||||||
|
|
||||||
Packet* createPacket(PacketType type, DataBuffer& buffer) {
|
Packet* createPacket(PacketType type, DataBuffer& buffer) {
|
||||||
|
|||||||
@@ -402,12 +402,22 @@ void PlaceTowerPacket::Deserialize(DataBuffer& data) {
|
|||||||
|
|
||||||
DataBuffer WorldAddTowerPacket::Serialize() const {
|
DataBuffer WorldAddTowerPacket::Serialize() const {
|
||||||
DataBuffer data;
|
DataBuffer data;
|
||||||
data << getID() << m_TowerX << m_TowerY << m_TowerType << m_Builder;
|
data << getID() << m_TowerID << m_TowerX << m_TowerY << m_TowerType << m_Builder;
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldAddTowerPacket::Deserialize(DataBuffer& data) {
|
void WorldAddTowerPacket::Deserialize(DataBuffer& data) {
|
||||||
data >> m_TowerX >> m_TowerY >> m_TowerType >> m_Builder;
|
data >> m_TowerID >> m_TowerX >> m_TowerY >> m_TowerType >> m_Builder;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataBuffer WorldRemoveTowerPacket::Serialize() const {
|
||||||
|
DataBuffer data;
|
||||||
|
data << getID() << m_TowerID;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WorldRemoveTowerPacket::Deserialize(DataBuffer& data) {
|
||||||
|
data >> m_TowerID;
|
||||||
}
|
}
|
||||||
|
|
||||||
REGISTER_DISPATCH_CLASS(PlayerLoginPacket);
|
REGISTER_DISPATCH_CLASS(PlayerLoginPacket);
|
||||||
@@ -429,6 +439,7 @@ REGISTER_DISPATCH_CLASS(ServerTpsPacket);
|
|||||||
REGISTER_DISPATCH_CLASS(SpawnMobPacket);
|
REGISTER_DISPATCH_CLASS(SpawnMobPacket);
|
||||||
REGISTER_DISPATCH_CLASS(PlaceTowerPacket);
|
REGISTER_DISPATCH_CLASS(PlaceTowerPacket);
|
||||||
REGISTER_DISPATCH_CLASS(WorldAddTowerPacket);
|
REGISTER_DISPATCH_CLASS(WorldAddTowerPacket);
|
||||||
|
REGISTER_DISPATCH_CLASS(WorldRemoveTowerPacket);
|
||||||
|
|
||||||
} // namespace protocol
|
} // namespace protocol
|
||||||
} // namespace td
|
} // namespace td
|
||||||
Reference in New Issue
Block a user