summaryrefslogtreecommitdiff
path: root/include/Actor/ActorShopItem.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/Actor/ActorShopItem.hpp')
-rw-r--r--include/Actor/ActorShopItem.hpp240
1 files changed, 148 insertions, 92 deletions
diff --git a/include/Actor/ActorShopItem.hpp b/include/Actor/ActorShopItem.hpp
index 2c27a854..5d2e8d55 100644
--- a/include/Actor/ActorShopItem.hpp
+++ b/include/Actor/ActorShopItem.hpp
@@ -1,18 +1,52 @@
#pragma once
+#include "Item/Item.hpp"
#include "global.h"
#include "types.h"
#include "Actor/Actor.hpp"
#include "Actor/ActorType.hpp"
+#include "Render/ModelRender.hpp"
+#include "System/SysNew.hpp"
+
+typedef u32 ShopItem;
+enum ShopItem_ {
+ ShopItem_Unk = -1,
+ ShopItem_Test = 0,
+ ShopItem_SoldOut = 1,
+ ShopItem_Bombs = 2,
+ ShopItem_Arrows = 3,
+ ShopItem_Bombchus = 4,
+ ShopItem_HeartContainer = 5,
+ ShopItem_BombBag = 6,
+ ShopItem_Quiver = 7,
+ ShopItem_BombchuBag = 8,
+ ShopItem_ShipPart = 9,
+ ShopItem_Treasure = 10,
+ ShopItem_CourageGem = 11,
+ ShopItem_PowerGem = 12,
+ ShopItem_WisdomGem = 13,
+ ShopItem_Shield = 14,
+ ShopItem_RedPotion = 15,
+ ShopItem_PurplePotion = 16,
+ ShopItem_YellowPotion = 17,
+ ShopItem_BASE_COUNT = ShopItem_YellowPotion + 1,
+ ShopItem_LargeBombBag = 18,
+ ShopItem_LargeQuiver = 19,
+ ShopItem_LargeBombchuBag = 20,
+ ShopItem_COUNT_WITH_UPGRADES = ShopItem_LargeBombchuBag + 1,
+ ShopItem_Ship = 21,
+ ShopItem_Ship2 = 22,
+ ShopItem_FULL_COUNT = ShopItem_Ship2 + 1,
+};
class ActorShopItemBase : public Actor {
public:
/* 000 (base) */
- /* 158 */ unk32 mUnk_158;
- /* 15c */ unk8 mUnk_15c;
- /* 15d */ unk8 mUnk_15d;
- /* 15e */ unk8 mUnk_15e;
+ /* 158 */ ShopItem mShopItemId;
+ /* 15c */ bool mUnk_15c;
+ /* 15d */ bool mUnk_15d;
+ /* 15e */ bool mUnk_15e;
/* 160 */
/* 00 */ virtual ~ActorShopItemBase() override;
@@ -29,40 +63,39 @@ public:
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;
+ /* 160 */ ModelRender *mModel;
+ /* 164 */ ItemId mItemId;
+ /* 168 */ u16 mUnk_168;
+ /* 16a */ u16 mUnk_16a;
+ /* 16c */ u16 mUnk_16c;
+ /* 16e */ u16 mUnk_16e;
+ /* 170 */ u16 mUnk_170;
+ /* 172 */ u16 mUnk_172;
+ /* 174 */ bool mUnk_174;
+ /* 175 */ bool 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;
+ /* bc */ virtual unk32 GetMessageId() = 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;
+ /* d0 */ virtual bool vfunc_d0() = 0;
/* d4 */ virtual void vfunc_d4();
- /* d8 */ virtual unk32 vfunc_d8();
- /* dc */ virtual unk32 vfunc_dc();
- /* e0 */ virtual unk32 vfunc_e0();
+ /* d8 */ virtual u32 GetPitch();
+ /* dc */ virtual u32 GetYaw();
+ /* e0 */ virtual s32 GetPrice();
/* e4 */
ActorShopItem();
void func_ov031_0217f0b4();
- void func_ov031_0217f114();
void func_ov031_0217f120();
- unk32 func_ov031_0217f868();
+ unk32 GetSoldOutMessageId();
};
class ActorShopItemDM : public ActorShopItem {
@@ -75,8 +108,8 @@ public:
/* 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;
+ /* bc */ virtual unk32 GetMessageId() override;
+ /* d0 */ virtual bool vfunc_d0() override;
/* d4 */ virtual void vfunc_d4() override;
/* e4 */
@@ -92,8 +125,8 @@ public:
/* 00 */ virtual ~ActorShopItemSoldOut() override;
/* 08 */ virtual bool Init() override;
- /* bc */ virtual unk32 vfunc_bc() override;
- /* d0 */ virtual unk32 vfunc_d0() override;
+ /* bc */ virtual unk32 GetMessageId() override;
+ /* d0 */ virtual bool vfunc_d0() override;
/* d4 */ virtual void vfunc_d4() override;
/* e4 */
@@ -109,11 +142,10 @@ public:
/* 00 */ virtual ~ActorShopItemHeartContainer() override;
/* 08 */ virtual bool Init() override;
- /* bc */ virtual unk32 vfunc_bc() override;
+ /* bc */ virtual unk32 GetMessageId() 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;
+ /* d0 */ virtual bool vfunc_d0() override;
+ /* e0 */ virtual s32 GetPrice() override;
/* e4 */
static ActorShopItemHeartContainer *Create();
@@ -128,100 +160,100 @@ public:
/* 00 */ virtual ~ActorShopItemArrows() override;
/* 08 */ virtual bool Init() override;
- /* bc */ virtual unk32 vfunc_bc() override;
+ /* bc */ virtual unk32 GetMessageId() override;
/* c4 */ virtual void vfunc_c4() override;
- /* d0 */ virtual unk32 vfunc_d0() override;
+ /* d0 */ virtual bool vfunc_d0() override;
/* e4 */
static ActorShopItemArrows *Create();
};
-class ActorShopItemBombs : public ActorShopItem {
+class ActorShopItemQuiver : public ActorShopItem {
public:
static ActorType gType;
/* 000 (base) */
/* 178 */
- /* 00 */ virtual ~ActorShopItemBombs() override;
+ /* 00 */ virtual ~ActorShopItemQuiver() override;
/* 08 */ virtual bool Init() override;
- /* bc */ virtual unk32 vfunc_bc() override;
+ /* bc */ virtual unk32 GetMessageId() override;
/* c4 */ virtual void vfunc_c4() override;
- /* d0 */ virtual unk32 vfunc_d0() override;
+ /* d0 */ virtual bool vfunc_d0() override;
/* e4 */
- static ActorShopItemBombs *Create();
+ static ActorShopItemQuiver *Create();
};
-class ActorShopItemBombchus : public ActorShopItem {
+class ActorShopItemBombs : public ActorShopItem {
public:
static ActorType gType;
/* 000 (base) */
/* 178 */
- /* 00 */ virtual ~ActorShopItemBombchus() override;
+ /* 00 */ virtual ~ActorShopItemBombs() override;
/* 08 */ virtual bool Init() override;
- /* bc */ virtual unk32 vfunc_bc() override;
+ /* bc */ virtual unk32 GetMessageId() override;
/* c4 */ virtual void vfunc_c4() override;
- /* d0 */ virtual unk32 vfunc_d0() override;
+ /* d0 */ virtual bool vfunc_d0() override;
/* e4 */
- static ActorShopItemBombchus *Create();
+ static ActorShopItemBombs *Create();
};
-class ActorShopItemQuiver : public ActorShopItem {
+class ActorShopItemBombBag : public ActorShopItem {
public:
static ActorType gType;
/* 000 (base) */
/* 178 */
- /* 00 */ virtual ~ActorShopItemQuiver() override;
+ /* 00 */ virtual ~ActorShopItemBombBag() override;
/* 08 */ virtual bool Init() override;
- /* bc */ virtual unk32 vfunc_bc() override;
+ /* bc */ virtual unk32 GetMessageId() override;
/* c4 */ virtual void vfunc_c4() override;
- /* d0 */ virtual unk32 vfunc_d0() override;
+ /* d0 */ virtual bool vfunc_d0() override;
/* e4 */
- static ActorShopItemQuiver *Create();
+ static ActorShopItemBombBag *Create();
};
-class ActorShopItemBombBag : public ActorShopItem {
+class ActorShopItemBombchus : public ActorShopItem {
public:
static ActorType gType;
/* 000 (base) */
/* 178 */
- /* 00 */ virtual ~ActorShopItemBombBag() override;
+ /* 00 */ virtual ~ActorShopItemBombchus() override;
/* 08 */ virtual bool Init() override;
- /* bc */ virtual unk32 vfunc_bc() override;
+ /* bc */ virtual unk32 GetMessageId() override;
/* c4 */ virtual void vfunc_c4() override;
- /* d0 */ virtual unk32 vfunc_d0() override;
+ /* d0 */ virtual bool vfunc_d0() override;
/* e4 */
- static ActorShopItemBombBag *Create();
+ static ActorShopItemBombchus *Create();
};
-class ActorShopItemB2 : public ActorShopItem {
+class ActorShopItemBombchuBag : public ActorShopItem {
public:
static ActorType gType;
/* 000 (base) */
/* 178 */
- /* 00 */ virtual ~ActorShopItemB2() override;
+ /* 00 */ virtual ~ActorShopItemBombchuBag() override;
/* 08 */ virtual bool Init() override;
- /* bc */ virtual unk32 vfunc_bc() override;
+ /* bc */ virtual unk32 GetMessageId() override;
/* c4 */ virtual void vfunc_c4() override;
- /* d0 */ virtual unk32 vfunc_d0() override;
+ /* d0 */ virtual bool vfunc_d0() override;
/* e4 */
- static ActorShopItemB2 *Create();
+ static ActorShopItemBombchuBag *Create();
};
-struct ActorShopItemCollectable_Unk1 {
+struct ActorShopItemCollectable_Unk1 : public SysObject {
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
@@ -234,60 +266,62 @@ struct ActorShopItemCollectable_Unk1 {
/* 24 */ unk8 mUnk_24;
/* 25 */ unk8 mUnk_25;
/* 28 */
+
+ ActorShopItemCollectable_Unk1();
+ ~ActorShopItemCollectable_Unk1();
+
+ void func_ov000_02079f5c(unk32, unk32, unk32, unk32, u8, unk32);
};
-class ActorShopItemTreasure : public ActorShopItem {
+class ActorShopItemShipPart : public ActorShopItem {
public:
static ActorType gType;
/* 000 (base) */
- /* 178 */ ActorShopItemCollectable_Unk1 *mUnk_178;
- /* 17c */ unk32 mUnk_17c;
- /* 180 */
+ /* 178 */ ModelRender *mUnk_178;
+ /* 17c */ ActorShopItemCollectable_Unk1 *mUnk_17c;
+ /* 180 */ unk32 mUnk_180;
+ /* 184 */
- /* 00 */ virtual ~ActorShopItemTreasure() override;
+ /* 00 */ virtual ~ActorShopItemShipPart() override;
/* 08 */ virtual bool Init() override;
- /* bc */ virtual unk32 vfunc_bc() override;
+ /* 14 */ virtual void vfunc_14(u32 param1) override;
+ /* 20 */ virtual void vfunc_20(bool param1) override;
+ /* bc */ virtual unk32 GetMessageId() override;
/* c4 */ virtual void vfunc_c4() override;
- /* d0 */ virtual unk32 vfunc_d0() override;
+ /* d0 */ virtual bool vfunc_d0() override;
/* d4 */ virtual void vfunc_d4() override;
- /* e0 */ virtual unk32 vfunc_e0() override;
+ /* e0 */ virtual s32 GetPrice() override;
/* e4 */
- static ActorShopItemTreasure *Create();
- ActorShopItemTreasure();
+ static ActorShopItemShipPart *Create();
+ ActorShopItemShipPart();
unk32 func_ov031_02180248();
unk32 func_ov031_02180260();
- unk32 func_ov031_02180278();
};
-class ActorShopItemShipPart : public ActorShopItem {
+class ActorShopItemTreasure : public ActorShopItem {
public:
static ActorType gType;
/* 000 (base) */
- /* 178 */ unk32 mUnk_178;
- /* 17c */ ActorShopItemCollectable_Unk1 *mUnk_17c;
- /* 180 */ unk32 mUnk_180;
- /* 184 */
+ /* 178 */ ActorShopItemCollectable_Unk1 *mUnk_178;
+ /* 17c */ unk32 mUnk_17c;
+ /* 180 */
- /* 00 */ virtual ~ActorShopItemShipPart() override;
+ /* 00 */ virtual ~ActorShopItemTreasure() 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;
+ /* bc */ virtual unk32 GetMessageId() override;
/* c4 */ virtual void vfunc_c4() override;
- /* d0 */ virtual unk32 vfunc_d0() override;
+ /* d0 */ virtual bool vfunc_d0() override;
/* d4 */ virtual void vfunc_d4() override;
- /* e0 */ virtual unk32 vfunc_e0() override;
+ /* e0 */ virtual s32 GetPrice() override;
/* e4 */
- static ActorShopItemShipPart *Create();
- ActorShopItemShipPart();
+ static ActorShopItemTreasure *Create();
+ ActorShopItemTreasure();
- unk32 func_ov031_02180248();
- unk32 func_ov031_02180260();
unk32 func_ov031_02180278();
};
@@ -300,9 +334,9 @@ public:
/* 00 */ virtual ~ActorShopItemGem() override;
/* 08 */ virtual bool Init() override;
- /* bc */ virtual unk32 vfunc_bc() override;
+ /* bc */ virtual unk32 GetMessageId() override;
/* c4 */ virtual void vfunc_c4() override;
- /* d0 */ virtual unk32 vfunc_d0() override;
+ /* d0 */ virtual bool vfunc_d0() override;
/* e4 */
static ActorShopItemGem *Create();
@@ -317,9 +351,9 @@ public:
/* 00 */ virtual ~ActorShopItemShield() override;
/* 08 */ virtual bool Init() override;
- /* bc */ virtual unk32 vfunc_bc() override;
+ /* bc */ virtual unk32 GetMessageId() override;
/* c4 */ virtual void vfunc_c4() override;
- /* d0 */ virtual unk32 vfunc_d0() override;
+ /* d0 */ virtual bool vfunc_d0() override;
/* e4 */
static ActorShopItemShield *Create();
@@ -334,10 +368,10 @@ public:
/* 00 */ virtual ~ActorShopItemPotion() override;
/* 08 */ virtual bool Init() override;
- /* bc */ virtual unk32 vfunc_bc() override;
+ /* bc */ virtual unk32 GetMessageId() override;
/* c4 */ virtual void vfunc_c4() override;
- /* d0 */ virtual unk32 vfunc_d0() override;
- /* e0 */ virtual unk32 vfunc_e0() override;
+ /* d0 */ virtual bool vfunc_d0() override;
+ /* e0 */ virtual s32 GetPrice() override;
/* e4 */
static ActorShopItemPotion *Create();
@@ -347,16 +381,21 @@ class ActorShopItemUnk : public ActorShopItemBase {
public:
/* 000 (base) */
/* 160 */ unk32 mUnk_160;
- /* 164 */ unk8 mUnk_164;
+ /* 164 */ bool mUnk_164;
/* 168 */
- /* 00 */ virtual ~ActorShopItemUnk() override;
+ /* 00 */ virtual ~ActorShopItemUnk();
/* 08 */ virtual bool Init() override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
+ /* 1c */ virtual void vfunc_1c(u16 *param1) override = 0;
/* 20 */ virtual void vfunc_20(bool param1) override;
+ /* b4 */ virtual bool vfunc_b4() override = 0;
+ /* b8 */ virtual bool vfunc_b8() override = 0;
/* bc */
ActorShopItemUnk();
+
+ void func_ov031_02180418();
};
class ActorShopItemBK : public ActorShopItemUnk {
@@ -407,3 +446,20 @@ public:
static ActorShopItemBY *Create();
ActorShopItemBY();
};
+
+struct UnkStruct_ov031_02183e80 {
+ /* 000 */ PAD(0x000, 0x01c);
+ /* 01c */ u32 mUnk_01c[2];
+ /* 024 */ u32 mUnk_024[2];
+ /* 02c */ u32 mUnk_02c[2];
+ /* 034 */ PAD(0x34, 0x38);
+ /* 038 */ u32 mUnk_038[1]; // at least 1, unclear how many
+ /* 03c */ PAD(0x03c, 0x178);
+ /* 178 */ Vec3p mUnk_178;
+ /* 184 */ PAD(0x184, 0x19a);
+ /* 19a */ u8 mUnk_19a;
+ /* 19b */
+
+ bool func_ov031_0217bd80();
+ bool func_ov031_0217cec0();
+};