]> git.localhorst.tv Git - blank.git/blobdiff - src/net/Packet.hpp
add packet for merging player state back to client
[blank.git] / src / net / Packet.hpp
index 4742a4525d679a44333c2d27b7eb88a306793cdc..c4a8ae350299ff111abfcd47cf5228e09679eb9e 100644 (file)
@@ -10,6 +10,7 @@
 namespace blank {
 
 class Entity;
+class EntityState;
 
 struct Packet {
 
@@ -85,7 +86,7 @@ struct Packet {
 
                void WritePlayer(const Entity &) noexcept;
                void ReadPlayerID(std::uint32_t &) const noexcept;
-               void ReadPlayer(Entity &) const noexcept;
+               void ReadPlayerState(EntityState &) const noexcept;
                void WriteWorldName(const std::string &) noexcept;
                void ReadWorldName(std::string &) const noexcept;
        };
@@ -100,7 +101,7 @@ struct Packet {
                static constexpr std::size_t MAX_LEN = 64;
 
                void WritePlayer(const Entity &) noexcept;
-               void ReadPlayer(Entity &) const noexcept;
+               void ReadPlayerState(EntityState &) const noexcept;
        };
 
        struct SpawnEntity : public Payload {
@@ -135,7 +136,17 @@ struct Packet {
 
                void WriteEntity(const Entity &, std::uint32_t) noexcept;
                void ReadEntityID(std::uint32_t &, std::uint32_t) const noexcept;
-               void ReadEntity(Entity &, std::uint32_t) const noexcept;
+               void ReadEntityState(EntityState &, std::uint32_t) const noexcept;
+       };
+
+       struct PlayerCorrection : public Payload {
+               static constexpr std::uint8_t TYPE = 8;
+               static constexpr std::size_t MAX_LEN = 66;
+
+               void WritePacketSeq(std::uint16_t) noexcept;
+               void ReadPacketSeq(std::uint16_t &) const noexcept;
+               void WritePlayer(const Entity &) noexcept;
+               void ReadPlayerState(EntityState &) const noexcept;
        };