#ifndef TMENULIST_H #define TMENULIST_H #include "pso/forward.h" #include "pso/protocol.h" #include "pso/macros.h" #include "pso/TPlyGuildCardTag.h" #include #define TMenuListEntry(name, members) \ class name { \ public: \ void bswap() { \ tag.bswap(); \ }; \ public: \ TPlyGuildCardTag tag; \ members \ } __packed__ template class TMenuList { public: void bswap() { header.bswap(); if (num_pad_entries) { for (int i = 0; i < num_pad_entries; i++) { pad_entries[i].bswap(); } } if (num_entries) { for (int i = 0; i < num_entries; i++) { entries[i].bswap(); } } }; public: packet_header header; T pad_entries[num_pad_entries]; T entries[num_entries]; } __packed__; #ifdef __MWCC__ template class TMenuList { public: void bswap() { header.bswap(); for (int i = 0; i < num_entries; i++) { entries[i].bswap(); } }; public: packet_header header; TMenuListEntry entries[num_entries]; } __packed__; template class TMenuList { public: void bswap() { header.bswap(); for (int i = 0; i < num_pad_entries; i++) { pad_entries[i].bswap(); } }; public: packet_header header; TMenuListEntry pad_entries[num_pad_entries]; } __packed__; #endif #endif