improve packet interface

This commit is contained in:
2024-07-18 20:45:55 +02:00
parent 9fadb86031
commit 8bc2f26578
11 changed files with 400 additions and 79 deletions

View File

@@ -32,6 +32,9 @@ namespace PacketSerializer {
void DeserializePacketData(ClassName::PacketDataType& a_Packet)
#define DeclarePacket(PacketName, ...) \
VisitSerialize(packets::PacketName)
class Serializer : public PacketVisitor {
private:
Nz::ByteStream& m_Buffer;
@@ -44,24 +47,13 @@ class Serializer : public PacketVisitor {
Check(a_Packet);
}
VisitSerialize(packets::PlayerLogin);
VisitSerialize(packets::UpdateHealth);
VisitSerialize(packets::LoggingSuccess);
VisitSerialize(packets::PlayerDeath);
VisitSerialize(packets::PlayerJoin);
VisitSerialize(packets::PlayerLeave);
VisitSerialize(packets::PlayerList);
VisitSerialize(packets::PlayerStats);
VisitSerialize(packets::ServerConfig);
VisitSerialize(packets::ServerTps);
VisitSerialize(packets::UpdateGameState);
VisitSerialize(packets::KeepAlive);
VisitSerialize(packets::Disconnect);
VisitSerialize(packets::ChatMessage);
VisitSerialize(packets::PlayerPositionAndRotation);
VisitSerialize(packets::PlayerShoot);
DeclareAllPacket()
};
#undef DeclarePacket
#define DeclarePacket(PacketName, ...) \
VisitDeserialize(packets::PacketName)
class Deserializer : public PacketVisitor {
private:
Nz::ByteStream& m_Buffer;
@@ -83,22 +75,7 @@ class Deserializer : public PacketVisitor {
return m_Packet;
}
VisitDeserialize(packets::PlayerLogin);
VisitDeserialize(packets::UpdateHealth);
VisitDeserialize(packets::LoggingSuccess);
VisitDeserialize(packets::PlayerDeath);
VisitDeserialize(packets::PlayerJoin);
VisitDeserialize(packets::PlayerLeave);
VisitDeserialize(packets::PlayerList);
VisitDeserialize(packets::PlayerStats);
VisitDeserialize(packets::ServerConfig);
VisitDeserialize(packets::ServerTps);
VisitDeserialize(packets::UpdateGameState);
VisitDeserialize(packets::KeepAlive);
VisitDeserialize(packets::Disconnect);
VisitDeserialize(packets::ChatMessage);
VisitDeserialize(packets::PlayerPositionAndRotation);
VisitDeserialize(packets::PlayerShoot);
DeclareAllPacket()
};