40 lines
958 B
C++
40 lines
958 B
C++
#pragma once
|
|
|
|
#include <sp/default/DefaultPacket.h>
|
|
#include <sp/protocol/Field.h>
|
|
#include <sp/protocol/MessageBase.h>
|
|
|
|
struct UpgradeTowerPacketData {
|
|
sp::BitField<std::uint16_t,
|
|
sp::Field<std::uint16_t, 12>, // std::uint16_t m_Tower : 12;
|
|
sp::Field<std::uint8_t, 4> // std::uint8_t m_Upgrade : 4;
|
|
> m_TowerAndUpgrade;
|
|
sp::VarInt m_Test;
|
|
std::map<std::string, std::vector<int>> m_Test2;
|
|
};
|
|
|
|
class UpgradeTowerPacket : public sp::MessageBase<sp::PacketMessage, sp::option::DispatchImpl<UpgradeTowerPacket>> {
|
|
private:
|
|
UpgradeTowerPacketData m_Data;
|
|
|
|
public:
|
|
template <typename... T>
|
|
UpgradeTowerPacket(T... args) : m_Data{args...} {}
|
|
|
|
std::uint16_t GetTowerId() const {
|
|
return m_Data.m_TowerAndUpgrade.GetField<0>();
|
|
}
|
|
|
|
std::uint8_t GetTowerUpgrade() const {
|
|
return m_Data.m_TowerAndUpgrade.GetField<1>();
|
|
}
|
|
|
|
virtual sp::PacketID GetId() const {
|
|
return UpgradeTower;
|
|
}
|
|
|
|
UpgradeTowerPacketData& GetData() {
|
|
return m_Data;
|
|
}
|
|
};
|