diff options
author | mrb0nk500 <b0nk@b0nk.xyz> | 2023-03-07 15:23:51 -0400 |
---|---|---|
committer | mrb0nk500 <b0nk@b0nk.xyz> | 2023-03-07 15:23:51 -0400 |
commit | 09c901655db3bb42d2aac4b506846b18833d777c (patch) | |
tree | c980f1c6b42ee503a699200a55b4cabfded1ffd5 /include/pso/TMenuList.h | |
parent | 5df9bdde16d30a8bfe520e178c5810a7163e9d6c (diff) |
global: Completly disable inlining
This is because it looks more, and more clear that the entire codebase
was compiled without inlining. Likely to reduce code size from all the
byteswap functions, only present on the GameCube version.
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 |