#ifndef TPLYGUILDCARDTAG_H #define TPLYGUILDCARDTAG_H #include "pso/forward.h" #include "pso/macros.h" #include struct gc_tag { u8 tag0; u8 tag1; u16 tag2; }; class TPlyGuildCardTag { public: TPlyGuildCardTag(); TPlyGuildCardTag(u16 tag2, u32 guildcard_number); TPlyGuildCardTag &operator=(const TPlyGuildCardTag &src); void bswap(); void assign(const TPlyGuildCardTag &src); void assign(const TPlyGuildCardTag *src); PRIVATE_MEMBER_ACCESSORS(gc_tag, tag); PRIVATE_MEMBER_ACCESSORS(u32, tag_u32); PRIVATE_MEMBER_ACCESSORS(u32, guildcard_number); private: void _assign(const TPlyGuildCardTag &src) { m_tag = src.m_tag; m_guildcard_number = src.m_guildcard_number; }; union { gc_tag m_tag; u32 m_tag_u32; }; u32 m_guildcard_number; } __packed__; #endif