commit 497a601c424e8e728ef0a8e61f049982f2d4af16 Author: Persson-dev <sim16.prib@gmail.com> Date: Sat Aug 12 10:32:52 2023 +0200 fix warning commit 1bfd019a1ea00dcdb6323d1f285e2cdd3ebb4020 Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 19:05:13 2023 +0200 refactor: update cast commit 5bbc23a7d37e53eb74a885685f18e714f9448fd9 Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 19:04:15 2023 +0200 moved GetImguiTeamColor commit fd0e2d2470ea5cca3553acf280aa371de5c06f4c Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 19:03:37 2023 +0200 packets forward declaration commit 06eb9b99a96731f4b9a2167c00ed0bcd03702e3b Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 18:30:55 2023 +0200 remove Protocol.h includes commit 165f63d2e8b468f3e38992baddc221270010f801 Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 18:30:30 2023 +0200 split packets into separate source files commit f247f146c6c1e804a44b86f65cf3059859c07c6c Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 17:45:24 2023 +0200 split packets into separate headers
66 lines
1.1 KiB
C++
66 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "misc/DataBuffer.h"
|
|
|
|
#include <memory>
|
|
|
|
namespace td {
|
|
namespace protocol {
|
|
|
|
class PacketHandler;
|
|
|
|
enum class PacketType : std::uint8_t {
|
|
// client --> server
|
|
PlayerLogin = 0,
|
|
SelectTeam,
|
|
SpawnMob,
|
|
SendMobs,
|
|
PlaceTower,
|
|
|
|
// client <-- server
|
|
PlayerJoin,
|
|
PlayerLeave,
|
|
WorldBeginData,
|
|
WorldData,
|
|
UpdateMoney,
|
|
UpdateEXP,
|
|
UpdateLobbyTime,
|
|
UpdateGameState,
|
|
PlayerList,
|
|
ConnectionInfo,
|
|
UpdatePlayerTeam,
|
|
ServerTps,
|
|
WorldAddTower,
|
|
UpdateMobStates,
|
|
UpdateCastleLife,
|
|
|
|
// client <--> server
|
|
KeepAlive,
|
|
Disconnect,
|
|
UpgradeTower,
|
|
RemoveTower,
|
|
PlayerBuyItem,
|
|
PlayerBuyMobUpgrade,
|
|
|
|
PACKET_COUNT
|
|
};
|
|
|
|
class Packet {
|
|
public:
|
|
Packet() {}
|
|
virtual ~Packet() {}
|
|
|
|
virtual DataBuffer Serialize(bool packetID = true) const = 0;
|
|
virtual void Deserialize(DataBuffer& data) = 0;
|
|
virtual void Dispatch(PacketHandler* handler) const = 0;
|
|
|
|
void WritePacketID(DataBuffer& data, bool packetID) const;
|
|
|
|
virtual PacketType GetType() const = 0;
|
|
std::uint8_t GetID() const { return static_cast<std::uint8_t>(GetType()); }
|
|
};
|
|
|
|
typedef std::unique_ptr<Packet> PacketPtr;
|
|
|
|
} // namespace protocol
|
|
} // namespace td
|