more use of DeclareAllPacket

This commit is contained in:
2024-07-19 20:22:12 +02:00
parent 7abb31c2e1
commit f9f5f60049
6 changed files with 108 additions and 98 deletions

View File

@@ -11,37 +11,17 @@ class PacketVisitor;
using PacketID = std::uint8_t;
#define DeclarePacket(PacketName, ...) PacketName,
enum class PacketType : PacketID {
// client --> server
PlayerLogin = 0,
UpdateHealth,
// client <-- server
LoggingSuccess,
PlayerDeath,
PlayerJoin,
PlayerLeave,
PlayerList,
PlayerStats,
ServerConfig,
ServerTps,
UpdateGameState,
// client <--> server
KeepAlive,
Disconnect,
ChatMessage,
PlayerPositionAndRotation,
PlayerShoot,
DeclareAllPacket()
PACKET_COUNT
};
#undef DeclarePacket
class Packet {
@@ -59,7 +39,7 @@ namespace packets {
/**
* \tparam PT The packet type
* \tparam Data The structure holding the data of the packet
* \tparam Data The structure holding the data of the packet (in blitz::protocol::data namespace)
*/
template <PacketType PT, typename Data>
class ConcretePacket : public Packet {
@@ -90,9 +70,9 @@ class ConcretePacket : public Packet {
#ifdef BLITZ_INSTANCIATE_PACKETS
#define DeclarePacket(PacketName, ...) \
using PacketName = ConcretePacket<PacketType::PacketName, data::PacketName>; \
template class ConcretePacket<PacketType::PacketName, data::PacketName>
template class ConcretePacket<PacketType::PacketName, data::PacketName>;
#else
#define DeclarePacket(PacketName, ...) using PacketName = ConcretePacket<PacketType::PacketName, data::PacketName>
#define DeclarePacket(PacketName, ...) using PacketName = ConcretePacket<PacketType::PacketName, data::PacketName>;
#endif
DeclareAllPacket()