#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) { m_tag.tag0 = 0; m_tag.tag1 = 0; m_tag.tag2 = tag2; m_guildcard_number = guildcard_number; }; TPlyGuildCardTag &operator=(const TPlyGuildCardTag &src) { m_tag.tag0 = src.m_tag.tag0; m_tag.tag1 = src.m_tag.tag1; m_tag.tag2 = src.m_tag.tag2; m_guildcard_number = src.m_guildcard_number; }; void bswap() { bswap_32(&m_guildcard_number); bswap_16(&m_tag.tag2); }; void assign(const TPlyGuildCardTag &src) { *this = src; }; void assign(const TPlyGuildCardTag *src) { m_tag_u32 = src->m_tag_u32; m_guildcard_number = src->m_guildcard_number; }; public: union { gc_tag m_tag; u32 m_tag_u32; }; u32 m_guildcard_number; } __packed__; #endif