summaryrefslogtreecommitdiff
path: root/include/pso/TMenuList.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/pso/TMenuList.h')
-rw-r--r--include/pso/TMenuList.h28
1 files changed, 14 insertions, 14 deletions
diff --git a/include/pso/TMenuList.h b/include/pso/TMenuList.h
index 3a38a66..90a7423 100644
--- a/include/pso/TMenuList.h
+++ b/include/pso/TMenuList.h
@@ -7,18 +7,16 @@
#include "pso/TPlyGuildCardTag.h"
#include <global_types.h>
-template <typename T>
-class TMenuListEntry : public TPlyGuildCardTag {
-public:
- TMenuListEntry() : TPlyGuildCardTag() {};
-
- void bswap() {
- TPlyGuildCardTag::bswap();
- entry.bswap();
- };
-public:
- T entry;
-} __packed__;
+#define TMenuListEntry(name, members) \
+class name { \
+public: \
+ void bswap() { \
+ tag.bswap(); \
+ }; \
+public: \
+ TPlyGuildCardTag tag; \
+ members \
+} __packed__
template <typename T, int num_entries, int num_pad_entries>
class TMenuList {
@@ -38,10 +36,11 @@ public:
};
public:
packet_header header;
- TMenuListEntry<T> pad_entries[num_pad_entries];
- TMenuListEntry<T> entries[num_entries];
+ T pad_entries[num_pad_entries];
+ T entries[num_entries];
} __packed__;
+#ifdef __MWCC__
template <typename T, int num_entries>
class TMenuList<T, num_entries, 0> {
public:
@@ -69,5 +68,6 @@ public:
packet_header header;
TMenuListEntry<T> pad_entries[num_pad_entries];
} __packed__;
+#endif
#endif