mirror of
https://github.com/zeldaret/ph
synced 2026-05-28 16:31:13 -04:00
ActorShopItem 98% (#151)
* ActorShopItem 93% * Fix build * Add missing symbols to usa * Document BMG message ID functions * Create bmg.py for inspecting BMG files * ActorShopItem 98% * Match func_ov031_0217dfec * Port reloc changes to usa * Make `ModelRender::GetLcdcAddress` non-const
This commit is contained in:
+174
-118
@@ -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,48 +160,14 @@ 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 {
|
||||
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;
|
||||
@@ -179,14 +177,31 @@ public:
|
||||
|
||||
/* 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 ActorShopItemQuiver *Create();
|
||||
};
|
||||
|
||||
class ActorShopItemBombs : public ActorShopItem {
|
||||
public:
|
||||
static ActorType gType;
|
||||
|
||||
/* 000 (base) */
|
||||
/* 178 */
|
||||
|
||||
/* 00 */ virtual ~ActorShopItemBombs() override;
|
||||
/* 08 */ virtual bool Init() override;
|
||||
/* bc */ virtual unk32 GetMessageId() override;
|
||||
/* c4 */ virtual void vfunc_c4() override;
|
||||
/* d0 */ virtual bool vfunc_d0() override;
|
||||
/* e4 */
|
||||
|
||||
static ActorShopItemBombs *Create();
|
||||
};
|
||||
|
||||
class ActorShopItemBombBag : public ActorShopItem {
|
||||
public:
|
||||
static ActorType gType;
|
||||
@@ -196,32 +211,49 @@ public:
|
||||
|
||||
/* 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 ActorShopItemBombBag *Create();
|
||||
};
|
||||
|
||||
class ActorShopItemB2 : public ActorShopItem {
|
||||
class ActorShopItemBombchus : public ActorShopItem {
|
||||
public:
|
||||
static ActorType gType;
|
||||
|
||||
/* 000 (base) */
|
||||
/* 178 */
|
||||
|
||||
/* 00 */ virtual ~ActorShopItemB2() 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 ActorShopItemB2 *Create();
|
||||
static ActorShopItemBombchus *Create();
|
||||
};
|
||||
|
||||
struct ActorShopItemCollectable_Unk1 {
|
||||
class ActorShopItemBombchuBag : public ActorShopItem {
|
||||
public:
|
||||
static ActorType gType;
|
||||
|
||||
/* 000 (base) */
|
||||
/* 178 */
|
||||
|
||||
/* 00 */ virtual ~ActorShopItemBombchuBag() override;
|
||||
/* 08 */ virtual bool Init() override;
|
||||
/* bc */ virtual unk32 GetMessageId() override;
|
||||
/* c4 */ virtual void vfunc_c4() override;
|
||||
/* d0 */ virtual bool vfunc_d0() override;
|
||||
/* e4 */
|
||||
|
||||
static ActorShopItemBombchuBag *Create();
|
||||
};
|
||||
|
||||
struct ActorShopItemCollectable_Unk1 : public SysObject {
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
@@ -234,6 +266,39 @@ 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 ActorShopItemShipPart : public ActorShopItem {
|
||||
public:
|
||||
static ActorType gType;
|
||||
|
||||
/* 000 (base) */
|
||||
/* 178 */ ModelRender *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 GetMessageId() override;
|
||||
/* c4 */ virtual void vfunc_c4() override;
|
||||
/* d0 */ virtual bool vfunc_d0() override;
|
||||
/* d4 */ virtual void vfunc_d4() override;
|
||||
/* e0 */ virtual s32 GetPrice() override;
|
||||
/* e4 */
|
||||
|
||||
static ActorShopItemShipPart *Create();
|
||||
ActorShopItemShipPart();
|
||||
|
||||
unk32 func_ov031_02180248();
|
||||
unk32 func_ov031_02180260();
|
||||
};
|
||||
|
||||
class ActorShopItemTreasure : public ActorShopItem {
|
||||
@@ -247,47 +312,16 @@ public:
|
||||
|
||||
/* 00 */ virtual ~ActorShopItemTreasure() 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;
|
||||
/* d4 */ virtual void vfunc_d4() override;
|
||||
/* e0 */ virtual unk32 vfunc_e0() override;
|
||||
/* e0 */ virtual s32 GetPrice() 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();
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
};
|
||||
|
||||
@@ -14,16 +14,23 @@ enum ActorTypeId_ {
|
||||
ActorTypeId_TreasureMap = 'TMAP',
|
||||
ActorTypeId_DigSpot = 'DGTG',
|
||||
|
||||
ActorTypeId_ShopItemBombchus = 'ITBT',
|
||||
ActorTypeId_ShopItemBombs = 'ITBM',
|
||||
ActorTypeId_ShopItemTreasure = 'ITTR',
|
||||
ActorTypeId_ShopItemHeartContainer = 'ITHU',
|
||||
ActorTypeId_ShopItemQuiver = 'ITAP',
|
||||
ActorTypeId_ShopItemArrows = 'ITAR',
|
||||
ActorTypeId_ShopItemBombchuBag = 'ITB2',
|
||||
ActorTypeId_ShopItemBombBag = 'ITBB',
|
||||
ActorTypeId_ShopItemRedPotion = 'ITPB',
|
||||
ActorTypeId_ShopItemCourageGem = 'ITSR',
|
||||
ActorTypeId_ShopItemBK = 'ITBK',
|
||||
ActorTypeId_ShopItemBombs = 'ITBM',
|
||||
ActorTypeId_ShopItemBombchus = 'ITBT',
|
||||
ActorTypeId_ShopItemBY = 'ITBY',
|
||||
ActorTypeId_ShopItemCC = 'ITCC',
|
||||
ActorTypeId_ShopItemDM = 'ITDM',
|
||||
ActorTypeId_ShopItemHeartContainer = 'ITHU',
|
||||
ActorTypeId_ShopItemPotion = 'ITPB',
|
||||
ActorTypeId_ShopItemShield = 'ITSL',
|
||||
ActorTypeId_ShopItemSoldOut = 'ITSO',
|
||||
ActorTypeId_ShopItemShipPart = 'ITSP',
|
||||
ActorTypeId_ShopItemGem = 'ITSR',
|
||||
ActorTypeId_ShopItemTreasure = 'ITTR',
|
||||
|
||||
ActorTypeId_RefillArrows = 'FLAL',
|
||||
ActorTypeId_RefillBombs = 'FLBM',
|
||||
|
||||
@@ -3,11 +3,21 @@
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include <nds/math.h>
|
||||
|
||||
#include "Player/Bhio.hpp"
|
||||
|
||||
struct UnkStruct_027e0f64_04 {
|
||||
/* 000 */ u8 pad[0x1B4 - 0x00];
|
||||
/* 000 */ PAD(0x000, 0x01c);
|
||||
/* 01c */ Mat4x3p mUnk_01c;
|
||||
/* 04c */ PAD(0x04c, 0x1b4);
|
||||
/* 1b4 */ unk32 mUnk_1b4;
|
||||
/* 1b8 */ PAD(0x1b8, 0x260);
|
||||
/* 260 */ Vec3p mUnk_260;
|
||||
/* 26c */ Vec3p mUnk_26c;
|
||||
/* 278 */
|
||||
|
||||
bool func_01ffe468(Vec3p *param2, s32 *param3, s32 *param4, bool param5);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0f64 {
|
||||
@@ -19,7 +29,7 @@ public:
|
||||
|
||||
void func_ov000_0208ae94();
|
||||
void func_ov000_0208b13c();
|
||||
unk32 func_ov000_0208b180();
|
||||
UnkStruct_027e0f64_04 *func_ov000_0208b180();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0f64 *data_027e0f64;
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
#define BMG_GET_MSG_ADDR(pGroups, flags) \
|
||||
((u32) (pGroups)->entries[(flags) >> 0x10].pDAT1 + (BMG_GET_MSG_OFFSET((pGroups), (flags)) & ~1))
|
||||
|
||||
#define BMG_ID(file, entry) (((file) << 0x10) | (entry))
|
||||
|
||||
enum BMGTag {
|
||||
/* "INF1" */ BMG_TAG_INF1 = '1FNI',
|
||||
/* "FLW1" */ BMG_TAG_FLW1 = '1WLF',
|
||||
|
||||
@@ -125,7 +125,7 @@ public:
|
||||
unk32 func_ov000_0207bc48();
|
||||
void func_ov000_0207bc9c();
|
||||
};
|
||||
extern UnkClass_027e0e28 *data_027e0e28;
|
||||
extern UnkClass_027e0e28 data_027e0e28;
|
||||
extern unk32 *data_ov009_0211f5b4;
|
||||
extern "C" unk32 func_ov003_020f3f94(unk32 *);
|
||||
extern "C" void func_ov003_020f4060(unk32 **);
|
||||
|
||||
@@ -25,6 +25,15 @@ enum AdventureFlag_ {
|
||||
/* 0x0030 */ AdventureFlag_Cannon = FLAG(1, 16),
|
||||
/* 0x0033 */ AdventureFlag_RegalNecklace = FLAG(1, 19),
|
||||
|
||||
/* 0x0067 */ AdventureFlag_Unk_103 = FLAG(3, 7),
|
||||
/* 0x0068 */ AdventureFlag_Unk_104 = FLAG(3, 8),
|
||||
/* 0x0069 */ AdventureFlag_Unk_105 = FLAG(3, 9),
|
||||
/* 0x006A */ AdventureFlag_Unk_106 = FLAG(3, 10),
|
||||
/* 0x006B */ AdventureFlag_Unk_107 = FLAG(3, 11),
|
||||
/* 0x006C */ AdventureFlag_Unk_108 = FLAG(3, 12),
|
||||
/* 0x006D */ AdventureFlag_Unk_109 = FLAG(3, 13),
|
||||
/* 0x0071 */ AdventureFlag_Unk_113 = FLAG(3, 17),
|
||||
|
||||
/* 0x007A */ AdventureFlag_CourageCrest = FLAG(3, 26),
|
||||
/* 0x007D */ AdventureFlag_Azurine = FLAG(3, 29),
|
||||
/* 0x007E */ AdventureFlag_Crimsonine = FLAG(3, 30),
|
||||
|
||||
@@ -17,8 +17,6 @@ void SysDelete(void *ptr);
|
||||
void *func_0202e99c(s32 length);
|
||||
void *func_0202e9bc(s32 length);
|
||||
|
||||
extern u32 *data_027e0ce0[];
|
||||
|
||||
class SysObject {
|
||||
public:
|
||||
static void *operator new(size_t length, u32 *id, u32 idLength);
|
||||
|
||||
@@ -28,6 +28,7 @@ public:
|
||||
void func_ov000_0207b988(GameModeId modeId);
|
||||
|
||||
unk32 func_ov003_020f3d5c(unk32 param1);
|
||||
void func_ov003_020f3d74(unk32 param1);
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0dbc data_027e0dbc;
|
||||
|
||||
@@ -19,7 +19,12 @@ struct UnkStruct_ov000_020c0c08_04 {
|
||||
/* 20 */
|
||||
};
|
||||
|
||||
class ItemModel;
|
||||
class ItemModel {
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0c */
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_020c0c08 : public SysObject {
|
||||
public:
|
||||
|
||||
+14
-3
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "System/SysNew.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
@@ -7,13 +8,14 @@ struct FileEntry_Unk8 {
|
||||
/* 00 */ unk8 mUnk_00[0x8];
|
||||
/* 08 */ u16 mUnk_08;
|
||||
/* 0a */ u16 mUnk_0a;
|
||||
/* 0c */ // more fields, probably
|
||||
/* 0c */ u16 mUnk_0c;
|
||||
/* 10 */ // more fields, probably
|
||||
};
|
||||
|
||||
class FileEntry {
|
||||
class FileEntry : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ char *path;
|
||||
/* 04 */ const char *path;
|
||||
/* 08 */ FileEntry_Unk8 *mUnk_08;
|
||||
/* 0c */ unk32 mUnk_0c;
|
||||
/* 10 */
|
||||
@@ -23,6 +25,11 @@ public:
|
||||
/* 0c */ virtual void vfunc_0c() = 0;
|
||||
/* 10 */ virtual u32 vfunc_10(u32 param1) = 0;
|
||||
/* 14 */
|
||||
|
||||
FileEntry(const char *path) :
|
||||
path(path),
|
||||
mUnk_08(NULL),
|
||||
mUnk_0c(0) {}
|
||||
};
|
||||
|
||||
class FileEntryFlag : public FileEntry {
|
||||
@@ -36,4 +43,8 @@ public:
|
||||
/* 0c */ virtual void vfunc_0c() override;
|
||||
/* 10 */ virtual u32 vfunc_10(u32 param1) override;
|
||||
/* 14 */
|
||||
|
||||
FileEntryFlag(const char *path) :
|
||||
FileEntry(path),
|
||||
mUnk_10(0) {}
|
||||
};
|
||||
|
||||
@@ -36,5 +36,6 @@ typedef s32 bool;
|
||||
|
||||
#define CEIL_DIV(a, b) (((a) + (b) - 1) / (b))
|
||||
#define UNK_PTR unk32 *
|
||||
#define PAD(start, end) unk8 pad_##start[end - start]
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user