35 lines
733 B
C++
35 lines
733 B
C++
#pragma once
|
|
|
|
#include <sp/default/DefaultPacket.h>
|
|
#include <sp/protocol/Field.h>
|
|
#include <sp/protocol/MessageBase.h>
|
|
|
|
enum KeepAlivePacketFields {
|
|
KeepAliveId = 0,
|
|
TestAlignField = 1,
|
|
};
|
|
|
|
using KeepAliveFields = std::tuple<
|
|
std::uint64_t, //<- KeepAliveId
|
|
sp::BitField<std::uint16_t,
|
|
sp::Field<std::uint16_t, 12>, //<- m_Tower
|
|
sp::Field<std::uint8_t, 4> //<- m_Upgrade
|
|
>
|
|
>;
|
|
|
|
DeclarePacket(KeepAlive){
|
|
public:
|
|
PacketConstructor(KeepAlive)
|
|
|
|
std::uint64_t GetKeepAliveId() const {
|
|
return GetField<KeepAlive>();
|
|
}
|
|
|
|
std::uint16_t GetTowerId() const {
|
|
return GetField<TestAlignField>().GetField<0>();
|
|
}
|
|
|
|
std::uint8_t GetTowerUpgrade() const {
|
|
return GetField<TestAlignField>().GetField<1>();
|
|
}
|
|
}; |