diff options
Diffstat (limited to 'include/pso/TMenuList.h')
-rw-r--r-- | include/pso/TMenuList.h | 135 |
1 files changed, 40 insertions, 95 deletions
diff --git a/include/pso/TMenuList.h b/include/pso/TMenuList.h index af71a87..d065622 100644 --- a/include/pso/TMenuList.h +++ b/include/pso/TMenuList.h @@ -10,120 +10,65 @@ template <typename T> class TMenuListEntry : public TPlyGuildCardTag { - public: - T entry; - +public: TMenuListEntry() : TPlyGuildCardTag() {}; - void bswap(); - void assign(const TMenuListEntry &src); - - TMenuListEntry &operator=(const TMenuListEntry &src) { - _assign(src); - return *this; + void bswap() { + TPlyGuildCardTag::bswap(); + entry.bswap(); }; - - private: - void _assign(const TMenuListEntry &src); +public: + T entry; } __packed__; template <typename T, int num_entries, int num_pad_entries> class TMenuList { - public: +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; - TArray<TMenuListEntry<T>, num_pad_entries> pad_entries; - TArray<TMenuListEntry<T>, num_entries> entries; - - void bswap(); - TMenuList &assign(const TMenuList &src); + TMenuListEntry<T> pad_entries[num_pad_entries]; + TMenuListEntry<T> entries[num_entries]; } __packed__; template <typename T, int num_entries> class TMenuList<T, num_entries, 0> { - public: +public: + void bswap() { + header.bswap(); + for (int i = 0; i < num_entries; i++) { + entries[i].bswap(); + } + }; +public: packet_header header; - TArray<TMenuListEntry<T>, num_entries> entries; - - void bswap(); - TMenuList &assign(const TMenuList &src); + TMenuListEntry<T> entries[num_entries]; } __packed__; template <typename T, int num_pad_entries> class TMenuList<T, 0, num_pad_entries> { - public: - packet_header header; - TArray<TMenuListEntry<T>, num_pad_entries> pad_entries; - - void bswap(); - TMenuList &assign(const TMenuList &src); -} __packed__; - - -template <typename T, int num_entries> -void TMenuList<T, num_entries, 0>::bswap() { - header.bswap(); - for (int i = 0; i < num_entries; i++) { - entries[i].bswap(); - } -} - -template <typename T, int num_pad_entries> -void TMenuList<T, 0, num_pad_entries>::bswap() { - header.bswap(); - for (int i = 0; i < num_pad_entries; i++) { - pad_entries[i].bswap(); - } -} - -template <typename T, int num_entries, int num_pad_entries> -void TMenuList<T, num_entries, num_pad_entries>::bswap() { - header.bswap(); - if (num_pad_entries) { +public: + void bswap() { + header.bswap(); 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(); - } - } -} - -template <typename T> -void TMenuListEntry<T>::bswap() { - TPlyGuildCardTag::bswap(); - entry.bswap(); -} - -template <typename T, int num_entries> -TMenuList<T, num_entries, 0> &TMenuList<T, num_entries, 0>::assign(const TMenuList<T, num_entries, 0> &src) { - *this = src; - return *this; -} - -template <typename T, int num_pad_entries> -TMenuList<T, 0, num_pad_entries> &TMenuList<T, 0, num_pad_entries>::assign(const TMenuList<T, 0, num_pad_entries> &src) { - *this = src; - return *this; -} - -template <typename T, int num_entries, int num_pad_entries> -TMenuList<T, num_entries, num_pad_entries> &TMenuList<T, num_entries, num_pad_entries>::assign(const TMenuList<T, num_entries, num_pad_entries> &src) { - *this = src; - return *this; -} - -template <typename T> -void TMenuListEntry<T>::_assign(const TMenuListEntry<T> &src) { - TPlyGuildCardTag::assign(src); - entry = src.entry; -} - -template <typename T> -void TMenuListEntry<T>::assign(const TMenuListEntry<T> &src) { - TPlyGuildCardTag::operator=(src); - entry = src.entry; -} + }; +public: + packet_header header; + TMenuListEntry<T> pad_entries[num_pad_entries]; +} __packed__; #endif |