diff --git a/config/eur/arm9/overlays/ov031/delinks.txt b/config/eur/arm9/overlays/ov031/delinks.txt index 88d5941a..238d43d7 100644 --- a/config/eur/arm9/overlays/ov031/delinks.txt +++ b/config/eur/arm9/overlays/ov031/delinks.txt @@ -4,3 +4,6 @@ .ctor start:0x02182080 end:0x02182090 kind:rodata align:4 .data start:0x021820a0 end:0x02183e80 kind:data align:32 .bss start:0x02183e80 end:0x02184200 kind:bss align:32 + +src/31_Shop/Actor/ActorShopItem.cpp: + .text start:0x0217dbdc end:0x02180708 diff --git a/config/usa/arm9/overlays/ov031/delinks.txt b/config/usa/arm9/overlays/ov031/delinks.txt index 4b6fb547..e9049fd1 100644 --- a/config/usa/arm9/overlays/ov031/delinks.txt +++ b/config/usa/arm9/overlays/ov031/delinks.txt @@ -4,3 +4,6 @@ .ctor start:0x02181fe0 end:0x02181ff0 kind:rodata align:4 .data start:0x02182000 end:0x02183de0 kind:data align:32 .bss start:0x02183de0 end:0x02184160 kind:bss align:32 + +src/31_Shop/Actor/ActorShopItem.cpp: + .text start:0x0217db3c end:0x02180668 diff --git a/docs/actors.md b/docs/actors.md index 1787be41..1061473d 100644 --- a/docs/actors.md +++ b/docs/actors.md @@ -24,9 +24,14 @@ translations. Feel free to contribute to this list! -------|--------------|--------- `ITAP` | Item Arrow Pod | Quiver `ITAR` | Item Arrows | 10 Arrows +`ITB2` | `ITBB` | Item Bomb Bag +`ITBK` | `ITBM` | Item Bombs | 10 Bombs `ITBT` | Item Bombchus | 10 Bombchus +`ITBY` | +`ITCC` | +`ITDM` | `ITHU` | | Heart container `ITPB` | Item Potion Bottle `ITSL` | Item Shield @@ -191,6 +196,7 @@ translations. Feel free to contribute to this list! `GRNE` | Goron Elder | Biggoron `GRNM` | Goron Man `ITS3` | Item Seller NPC 3 | Mi, item seller of Goron Island +`ITS2` | Item Seller NPC 2 `ITSN` | Item Seller NPC | Ai, item seller of Mercay Island `JUDG` | Judge | The treasure teller `LNBK` | Linebeck diff --git a/docs/overlays.md b/docs/overlays.md index 9a36aea1..b7270ede 100644 --- a/docs/overlays.md +++ b/docs/overlays.md @@ -35,7 +35,7 @@ contribute to this list! `28` | --- | - | `29` | --- | - | `30` | --- | - | -`31` | --- | 7 | +`31` | Shop | 7 | Handles shops. `32` | --- | 7 | `33` | --- | 7 | `34` | --- | - | 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 diff --git a/libs/c/include/assert.h b/libs/c/include/assert.h index 22cdf7dc..6742f6bb 100644 --- a/libs/c/include/assert.h +++ b/libs/c/include/assert.h @@ -3,6 +3,6 @@ #define assert(condition) (void) ((condition) || __assert_failed(#condition, __FILE__, __FUNCTION__, __LINE__)); -void __assert_failed(char *condition, char *fileName, char *functionName, s32 lineNumber); +void __assert_failed(char *condition, char *fileName, char *functionName, int lineNumber); #endif diff --git a/libs/c/include/stdarg.h b/libs/c/include/stdarg.h index 4ace4037..795fbc8b 100644 --- a/libs/c/include/stdarg.h +++ b/libs/c/include/stdarg.h @@ -1,7 +1,9 @@ #ifndef _C_STDARG_H #define _C_STDARG_H +#ifdef __cplusplus extern "C" { +#endif typedef char *va_list; #define __std(ref) ::std::ref @@ -11,7 +13,9 @@ typedef char *va_list; #define va_start(ap, parm) ((ap) = __va_start(parm)) #define va_arg(ap, type) (*(type *) ((ap += __fourbytealign(sizeof(type))) - __fourbytealign(sizeof(type)))) #define va_end(ap) ((void) 0) -} +#ifdef __cplusplus +} // extern "C" +#endif #if defined(__cplusplus) namespace std { diff --git a/libs/c/include/stddef.h b/libs/c/include/stddef.h index eeed560c..50a16807 100644 --- a/libs/c/include/stddef.h +++ b/libs/c/include/stddef.h @@ -3,7 +3,11 @@ #define NULL 0 +#ifdef __MWERKS__ typedef unsigned long size_t; +#else +typedef unsigned int size_t; +#endif #define offsetof(type, member) ((size_t) &((type *) NULL)->member) diff --git a/libs/nds/include/nds/g3d/g3d.h b/libs/nds/include/nds/g3d/g3d.h index c4175327..36faa173 100644 --- a/libs/nds/include/nds/g3d/g3d.h +++ b/libs/nds/include/nds/g3d/g3d.h @@ -1,9 +1,9 @@ #include "nds/math.h" -struct G3d_RenderState_; -typedef void (*G3d_CallbackFunction)(struct G3d_RenderState_ *); +struct G3d_RenderState; +typedef void (*G3d_CallbackFunction)(struct G3d_RenderState *); -typedef struct G3d_NameList_ { +typedef struct G3d_NameList { /* 00 */ u8 dummy; /* 01 */ u8 numElmnts; // number of elements /* 02 */ u16 size; // size of this NameList in bytes @@ -13,20 +13,20 @@ typedef struct G3d_NameList_ { /* 0c */ } G3d_NameList; -typedef struct G3d_NameList_Header_ { +typedef struct G3d_NameList_Header { /* 00 */ u16 element_size; /* 02 */ u16 data_section_size; /* 04 */ u8 data[4]; /* 08 */ } G3d_NameList_Header; -typedef struct G3d_InvBindMtx_ { +typedef struct G3d_InvBindMtx { /* 00 */ Mat4x3p mtx; /* 30 */ Mat3p unkMtx; /* 54 */ } G3d_InvBindMtx; -typedef struct G3d_BoneMtxStruct_ { +typedef struct G3d_BoneMtxStruct { /* 00 */ u32 flag; /* 04 */ u8 mUnk_04[0x24]; /* 28 */ Mat3p rot; @@ -40,9 +40,9 @@ typedef enum { G3D_ANIMBIND_OFF = 0x200 } G3d_AnimationBinds; -typedef struct G3d_Animation_ { +typedef struct G3d_Animation { /* 00 */ u8 mUnk_00[0x10]; - /* 10 */ struct G3d_Animation_ *next; // next animation in the list + /* 10 */ struct G3d_Animation *next; // next animation in the list /* 14 */ u8 mUnk_14[0x5]; /* 19 */ u8 numElmnts; // number of elements in the elementBinds array /* 1a */ u16 elementBinds[1]; // each bit corresponds to a bone/material and determines whether an animation exists for it @@ -50,7 +50,7 @@ typedef struct G3d_Animation_ { } G3d_Animation; // Structure representing the NSBMD model file -typedef struct G3d_Model_ { +typedef struct G3d_Model { /* 00 */ u32 size; // size of the model in bytes /* 04 */ u32 offSbc; // offset of the SBC commands list /* 08 */ u32 offMat; // offset of the material list @@ -98,7 +98,7 @@ typedef enum { } G3d_RenderObjFlag; // Structure that handles the parameters for drawing a model -typedef struct G3d_RenderObject_ { +typedef struct G3d_RenderObject { /* 00 */ u32 flag; // G3d_RenderObjFlag /* 04 */ G3d_Model *model; /* 08 */ G3d_Animation *matAnim; // material animation @@ -122,14 +122,14 @@ typedef struct G3d_RenderObject_ { /* 54 */ } G3d_RenderObject; -typedef struct G3d_Material_List_ { +typedef struct G3d_Material_List { /* 00 */ u16 texture_pairings_off; /* 02 */ u16 palette_pairings_off; /* 04 */ G3d_NameList materials; /* 10 */ } G3d_Material_List; -typedef struct G3d_Material_ { +typedef struct G3d_Material { /* 00 */ u32 mUnk_00; /* 04 */ u32 dif_amb; /* 08 */ u32 spe_emi; @@ -145,7 +145,7 @@ typedef struct G3d_Material_ { /* 2c */ } G3d_Material; -typedef struct G3d_MaterialAnimation_ { +typedef struct G3d_MaterialAnimation { /* 00 */ u32 flag; /* 04 */ u32 dif_amb; /* 08 */ u32 spe_emi; diff --git a/libs/nds/include/nds/g3d/sbc.h b/libs/nds/include/nds/g3d/sbc.h index 6f0416c4..2ac3ec3b 100644 --- a/libs/nds/include/nds/g3d/sbc.h +++ b/libs/nds/include/nds/g3d/sbc.h @@ -30,7 +30,7 @@ typedef enum { G3D_RENDERST_FLAG_SKIP_SBC_MTXCALC = 0x400 // skips the execution of matrix calculation commands } G3d_RenderStateFlag; -typedef struct G3d_RenderState_ { +typedef struct G3d_RenderState { /* 00 */ u8 *currentCmd; // current command being processed /* 04 */ G3d_RenderObject *renderObj; // current render object being processed /* 08 */ u32 flag; // G3d_RenderStateFlag diff --git a/src/31_Shop/Actor/ActorShopItem.cpp b/src/31_Shop/Actor/ActorShopItem.cpp new file mode 100644 index 00000000..4994f414 --- /dev/null +++ b/src/31_Shop/Actor/ActorShopItem.cpp @@ -0,0 +1,205 @@ +#include "Actor/ActorShopItem.hpp" +#include "lib/files.hpp" + +extern u32 **data_027e0fe0[]; + +ActorShopItemDM *ActorShopItemDM::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemDM(); +} + +ActorShopItemSoldOut *ActorShopItemSoldOut::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemSoldOut(); +} + +ActorShopItemHeartContainer *ActorShopItemHeartContainer::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemHeartContainer(); +} + +ActorShopItemArrows *ActorShopItemArrows::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemArrows(); +} + +ActorShopItemBombs *ActorShopItemBombs::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemBombs(); +} + +ActorShopItemBombchus *ActorShopItemBombchus::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemBombchus(); +} + +ActorShopItemQuiver *ActorShopItemQuiver::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemQuiver(); +} + +ActorShopItemBombBag *ActorShopItemBombBag::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemBombBag(); +} + +ActorShopItemB2 *ActorShopItemB2::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemB2(); +} + +ActorShopItemTreasure *ActorShopItemTreasure::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemTreasure(); +} + +ActorShopItemShipPart *ActorShopItemShipPart::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemShipPart(); +} + +ActorShopItemGem *ActorShopItemGem::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemGem(); +} + +ActorShopItemShield *ActorShopItemShield::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemShield(); +} + +ActorShopItemPotion *ActorShopItemPotion::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemPotion(); +} + +ActorShopItemBK *ActorShopItemBK::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemBK(); +} + +ActorShopItemCC *ActorShopItemCC::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemCC(); +} + +ActorShopItemBY *ActorShopItemBY::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemBY(); +} + +static void func_ov031_0217dfec(FileEntry *param_1, FileEntry *param_2, char *param_3) {} +static void func_ov031_0217e040() {} +static void func_ov031_0217e2b4() {} + +ActorShopItemBase::ActorShopItemBase() {} +ActorShopItem::ActorShopItem() {} +ActorShopItemShipPart::ActorShopItemShipPart() {} +ActorShopItemTreasure::ActorShopItemTreasure() {} +ActorShopItemUnk::ActorShopItemUnk() {} +ActorShopItemBY::ActorShopItemBY() {} + +ActorShopItemBase::~ActorShopItemBase() {} +ActorShopItem::~ActorShopItem() {} +ActorShopItemSoldOut::~ActorShopItemSoldOut() {} +ActorShopItemShipPart::~ActorShopItemShipPart() {} +ActorShopItemTreasure::~ActorShopItemTreasure() {} + +void ActorShopItem::vfunc_d4() {} +void ActorShopItemDM::vfunc_d4() {} +void ActorShopItemSoldOut::vfunc_d4() {} +void ActorShopItemShipPart::vfunc_d4() {} +void ActorShopItemTreasure::vfunc_d4() {} + +bool ActorShopItemBase::Init() {} +bool ActorShopItem::Init() {} +bool ActorShopItemDM::Init() {} +bool ActorShopItemSoldOut::Init() {} +bool ActorShopItemHeartContainer::Init() {} +bool ActorShopItemArrows::Init() {} +bool ActorShopItemQuiver::Init() {} +bool ActorShopItemBombs::Init() {} +bool ActorShopItemBombBag::Init() {} +bool ActorShopItemBombchus::Init() {} +bool ActorShopItemB2::Init() {} +bool ActorShopItemShipPart::Init() {} +bool ActorShopItemTreasure::Init() {} +bool ActorShopItemGem::Init() {} +bool ActorShopItemShield::Init() {} +bool ActorShopItemPotion::Init() {} +bool ActorShopItemUnk::Init() {} + +void ActorShopItemBase::vfunc_14(u32 param1) {} +void ActorShopItem::vfunc_14(u32 param1) {} +void ActorShopItemShipPart::vfunc_14(u32 param1) {} +void ActorShopItemUnk::vfunc_14(u32 param1) {} + +void ActorShopItemBase::vfunc_18(u32 param1) {} + +void ActorShopItem::vfunc_c8() {} +void ActorShopItem::vfunc_cc() {} +void ActorShopItem::func_ov031_0217f0b4() {} +unk32 ActorShopItem::vfunc_d8() {} +unk32 ActorShopItem::vfunc_dc() {} +void ActorShopItem::func_ov031_0217f114() {} +void ActorShopItem::func_ov031_0217f120() {} + +void ActorShopItem::vfunc_20(bool param1) {} +void ActorShopItemShipPart::vfunc_20(bool param1) {} +void ActorShopItemDM::vfunc_20(bool param1) {} +void ActorShopItemUnk::vfunc_20(bool param1) {} + +void ActorShopItemBK::vfunc_1c(u16 *param1) {} +void ActorShopItemCC::vfunc_1c(u16 *param1) {} +void ActorShopItemBY::vfunc_1c(u16 *param1) {} + +unk32 ActorShopItem::func_ov031_0217f868() {} +unk32 ActorShopItemDM::vfunc_bc() {} +unk32 ActorShopItemSoldOut::vfunc_bc() {} +unk32 ActorShopItemHeartContainer::vfunc_bc() {} +unk32 ActorShopItemArrows::vfunc_bc() {} +unk32 ActorShopItemQuiver::vfunc_bc() {} +unk32 ActorShopItemBombs::vfunc_bc() {} +unk32 ActorShopItemBombBag::vfunc_bc() {} +unk32 ActorShopItemBombchus::vfunc_bc() {} +unk32 ActorShopItemB2::vfunc_bc() {} +unk32 ActorShopItemShipPart::vfunc_bc() {} +unk32 ActorShopItemTreasure::vfunc_bc() {} +unk32 ActorShopItemGem::vfunc_bc() {} +unk32 ActorShopItemShield::vfunc_bc() {} +unk32 ActorShopItemPotion::vfunc_bc() {} + +unk32 ActorShopItem::vfunc_e0() {} +unk32 ActorShopItemHeartContainer::vfunc_e0() {} +unk32 ActorShopItemPotion::vfunc_e0() {} +unk32 ActorShopItemShipPart::vfunc_e0() {} +unk32 ActorShopItemTreasure::vfunc_e0() {} + +unk32 ActorShopItem::vfunc_c0() {} + +void ActorShopItem::vfunc_c4() {} +void ActorShopItemHeartContainer::vfunc_c4() {} +void ActorShopItemArrows::vfunc_c4() {} +void ActorShopItemQuiver::vfunc_c4() {} +void ActorShopItemBombs::vfunc_c4() {} +void ActorShopItemBombBag::vfunc_c4() {} +void ActorShopItemBombchus::vfunc_c4() {} +void ActorShopItemB2::vfunc_c4() {} +void ActorShopItemShipPart::vfunc_c4() {} +void ActorShopItemTreasure::vfunc_c4() {} +void ActorShopItemGem::vfunc_c4() {} +void ActorShopItemShield::vfunc_c4() {} +void ActorShopItemPotion::vfunc_c4() {} + +bool ActorShopItemBase::vfunc_b4() {} +bool ActorShopItemBK::vfunc_b4() {} +bool ActorShopItemCC::vfunc_b4() {} +bool ActorShopItemBY::vfunc_b4() {} + +bool ActorShopItemBase::vfunc_b8() {} +bool ActorShopItemBK::vfunc_b8() {} +bool ActorShopItemCC::vfunc_b8() {} +bool ActorShopItemBY::vfunc_b8() {} + +unk32 ActorShopItemTreasure::func_ov031_02180248() {} +unk32 ActorShopItemTreasure::func_ov031_02180260() {} +unk32 ActorShopItemTreasure::func_ov031_02180278() {} + +unk32 ActorShopItemDM::vfunc_d0() {} +unk32 ActorShopItemSoldOut::vfunc_d0() {} +unk32 ActorShopItemHeartContainer::vfunc_d0() {} +unk32 ActorShopItemArrows::vfunc_d0() {} +unk32 ActorShopItemQuiver::vfunc_d0() {} +unk32 ActorShopItemBombs::vfunc_d0() {} +unk32 ActorShopItemBombBag::vfunc_d0() {} +unk32 ActorShopItemBombchus::vfunc_d0() {} +unk32 ActorShopItemB2::vfunc_d0() {} +unk32 ActorShopItemShipPart::vfunc_d0() {} +unk32 ActorShopItemGem::vfunc_d0() {} +unk32 ActorShopItemShield::vfunc_d0() {} +unk32 ActorShopItemPotion::vfunc_d0() {} + +void func_ov031_02180418(unk32 param_1); \ No newline at end of file