From 83532988dbc1ef4ea96afb9975c1872dba3494ad Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Thu, 2 Mar 2023 15:29:37 -0400 Subject: TMenuList, TPlyGuildCardTag: Actually match both classes Didn't realize that `TMenuList`'s `operator=` was actually implicit. --- include/pso/TMenuList.h | 45 +++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) (limited to 'include/pso/TMenuList.h') diff --git a/include/pso/TMenuList.h b/include/pso/TMenuList.h index 0eb35e5..54ca441 100644 --- a/include/pso/TMenuList.h +++ b/include/pso/TMenuList.h @@ -14,7 +14,15 @@ class TMenuListEntry : public TPlyGuildCardTag { T entry; void bswap(); - TMenuListEntry &operator=(const TMenuListEntry &src); + void assign(const TMenuListEntry &src); + + TMenuListEntry &operator=(const TMenuListEntry &src) { + _assign(src); + return *this; + }; + + private: + void _assign(const TMenuListEntry &src); } __packed__; template @@ -25,7 +33,7 @@ class TMenuList { TArray, num_entries> entries; void bswap(); - TMenuList &operator=(const TMenuList &src); + TMenuList &assign(const TMenuList &src); } __packed__; template @@ -35,7 +43,7 @@ class TMenuList { TArray, num_entries> entries; void bswap(); - TMenuList &operator=(const TMenuList &src); + TMenuList &assign(const TMenuList &src); } __packed__; template @@ -45,7 +53,7 @@ class TMenuList { TArray, num_pad_entries> pad_entries; void bswap(); - TMenuList &operator=(const TMenuList &src); + TMenuList &assign(const TMenuList &src); } __packed__; @@ -87,36 +95,33 @@ void TMenuListEntry::bswap() { } template -TMenuList &TMenuList::operator=(const TMenuList &src) { - header = src.header; - entries = src.entries; +TMenuList &TMenuList::assign(const TMenuList &src) { + *this = src; return *this; } template -TMenuList &TMenuList::operator=(const TMenuList &src) { - header = src.header; - pad_entries = src.pad_entries; +TMenuList &TMenuList::assign(const TMenuList &src) { + *this = src; return *this; } template -TMenuList &TMenuList::operator=(const TMenuList &src) { - header = src.header; - if (num_pad_entries) { - pad_entries = src.pad_entries; - } - if (num_entries) { - entries = src.entries; - } +TMenuList &TMenuList::assign(const TMenuList &src) { + *this = src; return *this; } template -TMenuListEntry &TMenuListEntry::operator=(const TMenuListEntry &src) { +void TMenuListEntry::_assign(const TMenuListEntry &src) { + TPlyGuildCardTag::assign(src); + entry = src.entry; +} + +template +void TMenuListEntry::assign(const TMenuListEntry &src) { TPlyGuildCardTag::operator=(src); entry = src.entry; - return *this; } #endif -- cgit v1.2.3-13-gbd6f