From 38e9378f8f4bc465a09305e5021ead2eb89afb2b Mon Sep 17 00:00:00 2001 From: Aetias <144526980+AetiasHax@users.noreply.github.com> Date: Thu, 16 Apr 2026 23:10:14 +0200 Subject: Delink ActorShopItem.cpp (#147) * Make types compatible with dsd-ghidra typesync * Update actors.md * Update docs * Delink ActorShopItem.cpp --- include/Actor/ActorShopItem.hpp | 409 +++++++++++++++++++++++++++ include/DTCM/UnkStruct_027e0e58.hpp | 2 + include/DTCM/UnkStruct_027e105c.hpp | 3 + include/Message/MessageManager.hpp | 2 +- include/Unknown/UnkStruct_027e0dbc.hpp | 2 + include/Unknown/UnkStruct_ov000_020e9c88.hpp | 2 + include/lib/touch.h | 12 +- 7 files changed, 427 insertions(+), 5 deletions(-) create mode 100644 include/Actor/ActorShopItem.hpp (limited to 'include') diff --git a/include/Actor/ActorShopItem.hpp b/include/Actor/ActorShopItem.hpp new file mode 100644 index 00000000..2c27a854 --- /dev/null +++ b/include/Actor/ActorShopItem.hpp @@ -0,0 +1,409 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Actor/Actor.hpp" +#include "Actor/ActorType.hpp" + +class ActorShopItemBase : public Actor { +public: + /* 000 (base) */ + /* 158 */ unk32 mUnk_158; + /* 15c */ unk8 mUnk_15c; + /* 15d */ unk8 mUnk_15d; + /* 15e */ unk8 mUnk_15e; + /* 160 */ + + /* 00 */ virtual ~ActorShopItemBase() override; + /* 08 */ virtual bool Init() override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 18 */ virtual void vfunc_18(u32 param1) override; + /* b4 */ virtual bool vfunc_b4(); + /* b8 */ virtual bool vfunc_b8(); + /* bc */ + + ActorShopItemBase(); +}; + +class ActorShopItem : public ActorShopItemBase { +public: + /* 000 (base) */ + /* 160 */ unk32 mUnk_160; + /* 164 */ unk32 mUnk_164; + /* 168 */ unk16 mUnk_168; + /* 16a */ unk16 mUnk_16a; + /* 16c */ unk16 mUnk_16c; + /* 16e */ unk16 mUnk_16e; + /* 170 */ unk16 mUnk_170; + /* 172 */ unk16 mUnk_172; + /* 174 */ unk8 mUnk_174; + /* 175 */ unk8 mUnk_175; + /* 178 */ + + /* 00 */ virtual ~ActorShopItem() override; + /* 08 */ virtual bool Init() override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 20 */ virtual void vfunc_20(bool param1) override; + /* bc */ virtual unk32 vfunc_bc() = 0; + /* c0 */ virtual unk32 vfunc_c0(); + /* c4 */ virtual void vfunc_c4(); + /* c8 */ virtual void vfunc_c8(); + /* cc */ virtual void vfunc_cc(); + /* d0 */ virtual unk32 vfunc_d0() = 0; + /* d4 */ virtual void vfunc_d4(); + /* d8 */ virtual unk32 vfunc_d8(); + /* dc */ virtual unk32 vfunc_dc(); + /* e0 */ virtual unk32 vfunc_e0(); + /* e4 */ + + ActorShopItem(); + + void func_ov031_0217f0b4(); + void func_ov031_0217f114(); + void func_ov031_0217f120(); + unk32 func_ov031_0217f868(); +}; + +class ActorShopItemDM : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ + + /* 00 */ virtual ~ActorShopItemDM() override; + /* 08 */ virtual bool Init() override; + /* 20 */ virtual void vfunc_20(bool param1) override; + /* bc */ virtual unk32 vfunc_bc() override; + /* d0 */ virtual unk32 vfunc_d0() override; + /* d4 */ virtual void vfunc_d4() override; + /* e4 */ + + static ActorShopItemDM *Create(); +}; + +class ActorShopItemSoldOut : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ + + /* 00 */ virtual ~ActorShopItemSoldOut() override; + /* 08 */ virtual bool Init() override; + /* bc */ virtual unk32 vfunc_bc() override; + /* d0 */ virtual unk32 vfunc_d0() override; + /* d4 */ virtual void vfunc_d4() override; + /* e4 */ + + static ActorShopItemSoldOut *Create(); +}; + +class ActorShopItemHeartContainer : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ + + /* 00 */ virtual ~ActorShopItemHeartContainer() override; + /* 08 */ virtual bool Init() override; + /* bc */ virtual unk32 vfunc_bc() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual unk32 vfunc_d0() override; + /* d4 */ virtual void vfunc_d4() override; + /* e0 */ virtual unk32 vfunc_e0() override; + /* e4 */ + + static ActorShopItemHeartContainer *Create(); +}; + +class ActorShopItemArrows : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ + + /* 00 */ virtual ~ActorShopItemArrows() override; + /* 08 */ virtual bool Init() override; + /* bc */ virtual unk32 vfunc_bc() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual unk32 vfunc_d0() override; + /* e4 */ + + static ActorShopItemArrows *Create(); +}; + +class ActorShopItemBombs : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ + + /* 00 */ virtual ~ActorShopItemBombs() override; + /* 08 */ virtual bool Init() override; + /* bc */ virtual unk32 vfunc_bc() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual unk32 vfunc_d0() override; + /* e4 */ + + static ActorShopItemBombs *Create(); +}; + +class ActorShopItemBombchus : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ + + /* 00 */ virtual ~ActorShopItemBombchus() override; + /* 08 */ virtual bool Init() override; + /* bc */ virtual unk32 vfunc_bc() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual unk32 vfunc_d0() override; + /* e4 */ + + static ActorShopItemBombchus *Create(); +}; + +class ActorShopItemQuiver : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ + + /* 00 */ virtual ~ActorShopItemQuiver() override; + /* 08 */ virtual bool Init() override; + /* bc */ virtual unk32 vfunc_bc() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual unk32 vfunc_d0() override; + /* e4 */ + + static ActorShopItemQuiver *Create(); +}; + +class ActorShopItemBombBag : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ + + /* 00 */ virtual ~ActorShopItemBombBag() override; + /* 08 */ virtual bool Init() override; + /* bc */ virtual unk32 vfunc_bc() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual unk32 vfunc_d0() override; + /* e4 */ + + static ActorShopItemBombBag *Create(); +}; + +class ActorShopItemB2 : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ + + /* 00 */ virtual ~ActorShopItemB2() override; + /* 08 */ virtual bool Init() override; + /* bc */ virtual unk32 vfunc_bc() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual unk32 vfunc_d0() override; + /* e4 */ + + static ActorShopItemB2 *Create(); +}; + +struct ActorShopItemCollectable_Unk1 { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk32 mUnk_0c; + /* 10 */ unk32 mUnk_10; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1c */ unk32 mUnk_1c; + /* 20 */ unk32 mUnk_20; + /* 24 */ unk8 mUnk_24; + /* 25 */ unk8 mUnk_25; + /* 28 */ +}; + +class ActorShopItemTreasure : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ ActorShopItemCollectable_Unk1 *mUnk_178; + /* 17c */ unk32 mUnk_17c; + /* 180 */ + + /* 00 */ virtual ~ActorShopItemTreasure() override; + /* 08 */ virtual bool Init() override; + /* bc */ virtual unk32 vfunc_bc() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual unk32 vfunc_d0() override; + /* d4 */ virtual void vfunc_d4() override; + /* e0 */ virtual unk32 vfunc_e0() override; + /* e4 */ + + static ActorShopItemTreasure *Create(); + ActorShopItemTreasure(); + + unk32 func_ov031_02180248(); + unk32 func_ov031_02180260(); + unk32 func_ov031_02180278(); +}; + +class ActorShopItemShipPart : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ unk32 mUnk_178; + /* 17c */ ActorShopItemCollectable_Unk1 *mUnk_17c; + /* 180 */ unk32 mUnk_180; + /* 184 */ + + /* 00 */ virtual ~ActorShopItemShipPart() override; + /* 08 */ virtual bool Init() override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 20 */ virtual void vfunc_20(bool param1) override; + /* bc */ virtual unk32 vfunc_bc() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual unk32 vfunc_d0() override; + /* d4 */ virtual void vfunc_d4() override; + /* e0 */ virtual unk32 vfunc_e0() override; + /* e4 */ + + static ActorShopItemShipPart *Create(); + ActorShopItemShipPart(); + + unk32 func_ov031_02180248(); + unk32 func_ov031_02180260(); + unk32 func_ov031_02180278(); +}; + +class ActorShopItemGem : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ + + /* 00 */ virtual ~ActorShopItemGem() override; + /* 08 */ virtual bool Init() override; + /* bc */ virtual unk32 vfunc_bc() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual unk32 vfunc_d0() override; + /* e4 */ + + static ActorShopItemGem *Create(); +}; + +class ActorShopItemShield : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ + + /* 00 */ virtual ~ActorShopItemShield() override; + /* 08 */ virtual bool Init() override; + /* bc */ virtual unk32 vfunc_bc() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual unk32 vfunc_d0() override; + /* e4 */ + + static ActorShopItemShield *Create(); +}; + +class ActorShopItemPotion : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ + + /* 00 */ virtual ~ActorShopItemPotion() override; + /* 08 */ virtual bool Init() override; + /* bc */ virtual unk32 vfunc_bc() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual unk32 vfunc_d0() override; + /* e0 */ virtual unk32 vfunc_e0() override; + /* e4 */ + + static ActorShopItemPotion *Create(); +}; + +class ActorShopItemUnk : public ActorShopItemBase { +public: + /* 000 (base) */ + /* 160 */ unk32 mUnk_160; + /* 164 */ unk8 mUnk_164; + /* 168 */ + + /* 00 */ virtual ~ActorShopItemUnk() override; + /* 08 */ virtual bool Init() override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 20 */ virtual void vfunc_20(bool param1) override; + /* bc */ + + ActorShopItemUnk(); +}; + +class ActorShopItemBK : public ActorShopItemUnk { +public: + static ActorType gType; + + /* 000 (base) */ + /* 168 */ + + /* 00 */ virtual ~ActorShopItemBK() override; + /* 1c */ virtual void vfunc_1c(u16 *param1) override; + /* b4 */ virtual bool vfunc_b4() override; + /* b8 */ virtual bool vfunc_b8() override; + /* bc */ + + static ActorShopItemBK *Create(); +}; + +class ActorShopItemCC : public ActorShopItemUnk { +public: + static ActorType gType; + + /* 000 (base) */ + /* 168 */ + + /* 00 */ virtual ~ActorShopItemCC() override; + /* 1c */ virtual void vfunc_1c(u16 *param1) override; + /* b4 */ virtual bool vfunc_b4() override; + /* b8 */ virtual bool vfunc_b8() override; + /* bc */ + + static ActorShopItemCC *Create(); +}; + +class ActorShopItemBY : public ActorShopItemUnk { +public: + static ActorType gType; + + /* 000 (base) */ + /* 168 */ + + /* 00 */ virtual ~ActorShopItemBY() override; + /* 1c */ virtual void vfunc_1c(u16 *param1) override; + /* b4 */ virtual bool vfunc_b4() override; + /* b8 */ virtual bool vfunc_b8() override; + /* bc */ + + static ActorShopItemBY *Create(); + ActorShopItemBY(); +}; diff --git a/include/DTCM/UnkStruct_027e0e58.hpp b/include/DTCM/UnkStruct_027e0e58.hpp index 031c920c..3bc27500 100644 --- a/include/DTCM/UnkStruct_027e0e58.hpp +++ b/include/DTCM/UnkStruct_027e0e58.hpp @@ -3,6 +3,8 @@ #include "global.h" #include "types.h" +#include + struct UnkStruct_027e0e58 { /* 00 */ unk8 mUnk_00[0x22]; /* 22 */ unk16 mUnk_22; diff --git a/include/DTCM/UnkStruct_027e105c.hpp b/include/DTCM/UnkStruct_027e105c.hpp index 41c4f031..3855cd48 100644 --- a/include/DTCM/UnkStruct_027e105c.hpp +++ b/include/DTCM/UnkStruct_027e105c.hpp @@ -1,7 +1,10 @@ #pragma once +#include "global.h" #include "types.h" +#include "Item/Item.hpp" + struct UnkStruct_027e105c { /* 0 */ const char **unk_0; /* 4 */ diff --git a/include/Message/MessageManager.hpp b/include/Message/MessageManager.hpp index b7588106..9cae73d7 100644 --- a/include/Message/MessageManager.hpp +++ b/include/Message/MessageManager.hpp @@ -50,7 +50,7 @@ public: bool func_02036770(u32 param_2); unk32 func_02036798(void); bool func_020367dc(int param_2); - bool MessageManager::func_020367ec(void); + bool func_020367ec(void); bool func_02036808(void); bool func_02036824(void); bool func_02036850(void); diff --git a/include/Unknown/UnkStruct_027e0dbc.hpp b/include/Unknown/UnkStruct_027e0dbc.hpp index 21691344..0c816fd7 100644 --- a/include/Unknown/UnkStruct_027e0dbc.hpp +++ b/include/Unknown/UnkStruct_027e0dbc.hpp @@ -3,6 +3,8 @@ #include "global.h" #include "types.h" +#include "Game/GameMode.hpp" + class UnkStruct_027e0dbc { public: /* 00 */ unk32 mUnk_00; diff --git a/include/Unknown/UnkStruct_ov000_020e9c88.hpp b/include/Unknown/UnkStruct_ov000_020e9c88.hpp index ff60bd78..357f0c3b 100644 --- a/include/Unknown/UnkStruct_ov000_020e9c88.hpp +++ b/include/Unknown/UnkStruct_ov000_020e9c88.hpp @@ -3,6 +3,8 @@ #include "global.h" #include "types.h" +#include + struct UnkStruct_ov000_020e9c88 { void func_ov000_0207b89c(s32 param2, Vec3p *param3, void (*param4)(void *), void *param5); }; diff --git a/include/lib/touch.h b/include/lib/touch.h index e5848f5f..bf911845 100644 --- a/include/lib/touch.h +++ b/include/lib/touch.h @@ -3,20 +3,24 @@ #include "global.h" #include "types.h" -struct TouchStateFlags { +typedef struct TouchStateFlags { u16 touchX; u16 touchY; u16 touch; u16 flags; -}; +} TouchStateFlags; -struct TouchState { +typedef struct TouchState { bool touch; s32 touchX; s32 touchY; -}; +} TouchState; +#ifdef __cplusplus extern "C" { +#endif void WaitForTouchUpdate(u16 param1); bool GetTouchStateFlags(TouchStateFlags *pState); +#ifdef __cplusplus } +#endif -- cgit v1.2.3