#pragma once #include #include #include enum KeepAlivePacketFields { KeepAliveId = 0, TestAlignField = 1, }; using KeepAliveFields = std::tuple< std::uint64_t, //<- KeepAliveId sp::BitField, //<- m_Tower sp::Field //<- m_Upgrade > >; DeclarePacket(KeepAlive){ public: PacketConstructor(KeepAlive) std::uint64_t GetKeepAliveId() const { return GetField(); } std::uint16_t GetTowerId() const { return GetField().GetField<0>(); } std::uint8_t GetTowerUpgrade() const { return GetField().GetField<1>(); } };