diff options
Diffstat (limited to 'include/Actor')
| -rw-r--r-- | include/Actor/Actor.hpp | 2 | ||||
| -rw-r--r-- | include/Actor/ActorManager.hpp | 12 | ||||
| -rw-r--r-- | include/Actor/ActorNaviBase.hpp | 34 | ||||
| -rw-r--r-- | include/Actor/ActorRef.hpp | 4 | ||||
| -rw-r--r-- | include/Actor/ActorRupee.hpp | 2 | ||||
| -rw-r--r-- | include/Actor/ActorSpawner.hpp | 25 | ||||
| -rw-r--r-- | include/Actor/ActorType.hpp | 198 | ||||
| -rw-r--r-- | include/Actor/Dungeon/ActorEventIcon.hpp | 30 | ||||
| -rw-r--r-- | include/Actor/Dungeon/ActorSwitchObject.hpp | 36 | ||||
| -rw-r--r-- | include/Actor/Navi/ActorNavi.hpp (renamed from include/Actor/ActorNavi.hpp) | 0 | ||||
| -rw-r--r-- | include/Actor/Navi/ActorNaviBase.hpp | 113 | ||||
| -rw-r--r-- | include/Actor/Player/ActorArrow.hpp | 63 | ||||
| -rw-r--r-- | include/Actor/Player/ActorBlast.hpp | 59 | ||||
| -rw-r--r-- | include/Actor/Player/ActorBomb.hpp | 73 | ||||
| -rw-r--r-- | include/Actor/Player/ActorRope.hpp | 71 |
15 files changed, 566 insertions, 156 deletions
diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index 64402237..2a30a7c1 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -3,7 +3,7 @@ #include "global.h" #include "types.h" -#include "lib/math.h" +#include "nds/math.h" #include "Actor/ActorRef.hpp" #include "Actor/ActorType.hpp" diff --git a/include/Actor/ActorManager.hpp b/include/Actor/ActorManager.hpp index 6d3cce71..fd246f37 100644 --- a/include/Actor/ActorManager.hpp +++ b/include/Actor/ActorManager.hpp @@ -93,6 +93,18 @@ public: void func_ov00_020c3ce8(unk32 param1, bool param2); void Actor_vfunc_28(); static bool ActorTypeIsOneOf(ActorTypeId type, const ActorTypeId *types); + + static void Create(); + static void Destroy(); + ActorManager(); + ~ActorManager(); + void func_ov004_0210532c(); + void func_ov004_021053dc(); + void func_ov004_021054a4(s32 *param1, s32 param2, unk32 param3); + void func_ov004_0210554c(); + bool func_ov004_02105578(unk32 param1); + bool func_ov004_02105608(unk32 param1, unk32 param2, unk32 param3); + void func_ov004_021056b8(); }; extern ActorManager *gActorManager; diff --git a/include/Actor/ActorNaviBase.hpp b/include/Actor/ActorNaviBase.hpp deleted file mode 100644 index 9b49aa13..00000000 --- a/include/Actor/ActorNaviBase.hpp +++ /dev/null @@ -1,34 +0,0 @@ -#pragma once - -#include "global.h" -#include "types.h" - -#include "Actor/Actor.hpp" -#include "Render/ModelRender.hpp" - -class ActorNaviBase : public Actor { -public: - /* 000 (base) */ - /* 158 */ Vec3p mOffsetPos; - /* 164 */ u32 mUnk_164; - /* 168 */ unk8 mUnk_168[0x68]; - /* 1d0 */ void *mUnk_1d0; - /* 164 */ unk8 mUnk_1d4[0x40]; - /* 214 */ unk16 mUnk_214; - /* 216 */ unk8 mUnk_216[0xc]; - /* 222 */ unk16 mUnk_222; - /* 224 */ unk8 mUnk_224[0x28]; - /* 24c */ unk32 mUnk_24c; - /* 250 */ unk32 mUnk_250; - /* 254 */ unk32 mUnk_254; - /* 258 */ unk32 mUnk_258; - /* 25c */ unk32 mUnk_25c; - /* 260 */ unk32 mUnk_260; - /* 264 */ unk8 mUnk_264[0x1c]; - /* 280 */ unk32 mUnk_280; - /* 284 */ unk32 mUnk_284; - /* 288 */ unk8 mUnk_288[0x2]; - /* 28a */ unk16 mUnk_28a; - /* 28c */ unk8 mUnk_28c[0x8]; - /* 294 */ -}; diff --git a/include/Actor/ActorRef.hpp b/include/Actor/ActorRef.hpp index eeace571..5ef03f2c 100644 --- a/include/Actor/ActorRef.hpp +++ b/include/Actor/ActorRef.hpp @@ -8,7 +8,9 @@ struct ActorRef { /* 4 */ s32 index; /* 8 */ - inline ActorRef() {} + inline ActorRef() { + Reset(); + } inline ActorRef(s32 id, s32 index) : id(id), index(index) {} diff --git a/include/Actor/ActorRupee.hpp b/include/Actor/ActorRupee.hpp index 56519394..a5fcbea3 100644 --- a/include/Actor/ActorRupee.hpp +++ b/include/Actor/ActorRupee.hpp @@ -1,7 +1,7 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "Actor/Actor.hpp" diff --git a/include/Actor/ActorSpawner.hpp b/include/Actor/ActorSpawner.hpp new file mode 100644 index 00000000..e417ddcc --- /dev/null +++ b/include/Actor/ActorSpawner.hpp @@ -0,0 +1,25 @@ +#pragma once + +#include <nds/math.h> + +#include "global.h" +#include "types.h" + +#include "Actor/ActorRef.hpp" +#include "Actor/ActorType.hpp" + +class ActorSpawner { +public: + /* 0 (empty) */ + + static ActorSpawner *Create(); + static void Destroy(); + ActorSpawner(); + ~ActorSpawner(); + void _ZN12ActorSpawner19func_ov000_020c4014Ev(); + void _ZN12ActorSpawner19func_ov000_020c4018Ev(); + Actor *CreateActor(ActorTypeId type); + s32 Spawn(ActorTypeId type, Vec3p *pos, void *param3, ActorRef *ref); +}; + +extern ActorSpawner *gActorSpawner; diff --git a/include/Actor/ActorType.hpp b/include/Actor/ActorType.hpp index 4adc3a7a..7842da14 100644 --- a/include/Actor/ActorType.hpp +++ b/include/Actor/ActorType.hpp @@ -3,127 +3,87 @@ #include "global.h" #include "types.h" -#define __ACTOR_TYPE_A 'A' -#define __ACTOR_TYPE_B 'B' -#define __ACTOR_TYPE_C 'C' -#define __ACTOR_TYPE_D 'D' -#define __ACTOR_TYPE_E 'E' -#define __ACTOR_TYPE_F 'F' -#define __ACTOR_TYPE_G 'G' -#define __ACTOR_TYPE_H 'H' -#define __ACTOR_TYPE_I 'I' -#define __ACTOR_TYPE_J 'J' -#define __ACTOR_TYPE_K 'K' -#define __ACTOR_TYPE_L 'L' -#define __ACTOR_TYPE_M 'M' -#define __ACTOR_TYPE_N 'N' -#define __ACTOR_TYPE_O 'O' -#define __ACTOR_TYPE_P 'P' -#define __ACTOR_TYPE_Q 'Q' -#define __ACTOR_TYPE_R 'R' -#define __ACTOR_TYPE_S 'S' -#define __ACTOR_TYPE_T 'T' -#define __ACTOR_TYPE_U 'U' -#define __ACTOR_TYPE_V 'V' -#define __ACTOR_TYPE_W 'W' -#define __ACTOR_TYPE_X 'X' -#define __ACTOR_TYPE_Y 'Y' -#define __ACTOR_TYPE_Z 'Z' -#define __ACTOR_TYPE_0 '0' -#define __ACTOR_TYPE_1 '1' -#define __ACTOR_TYPE_2 '2' -#define __ACTOR_TYPE_3 '3' -#define __ACTOR_TYPE_4 '4' -#define __ACTOR_TYPE_5 '5' -#define __ACTOR_TYPE_6 '6' -#define __ACTOR_TYPE_7 '7' -#define __ACTOR_TYPE_8 '8' -#define __ACTOR_TYPE_9 '9' -#define __CONCAT(a, b) a##b -#define __EVAL(x) x -#define __ACTOR_TYPE_ID(a, b, c, d) \ - ((__EVAL(__CONCAT(__ACTOR_TYPE_, a)) << 24) | (__EVAL(__CONCAT(__ACTOR_TYPE_, b)) << 16) | \ - (__EVAL(__CONCAT(__ACTOR_TYPE_, c)) << 8) | (__EVAL(__CONCAT(__ACTOR_TYPE_, d)))) - typedef u32 ActorTypeId; enum ActorTypeId_ { - ActorTypeId_Null = __ACTOR_TYPE_ID(N, U, L, L), - - ActorTypeId_Navi = __ACTOR_TYPE_ID(N, A, V, I), - ActorTypeId_ForceNavi = __ACTOR_TYPE_ID(F, C, N, V), - ActorTypeId_WisdomNavi = __ACTOR_TYPE_ID(W, S, N, V), - - ActorTypeId_TreasureMap = __ACTOR_TYPE_ID(T, M, A, P), - ActorTypeId_DigSpot = __ACTOR_TYPE_ID(D, G, T, G), - - ActorTypeId_ShopItemBombchus = __ACTOR_TYPE_ID(I, T, B, T), - ActorTypeId_ShopItemBombs = __ACTOR_TYPE_ID(I, T, B, M), - ActorTypeId_ShopItemTreasure = __ACTOR_TYPE_ID(I, T, T, R), - ActorTypeId_ShopItemHeartContainer = __ACTOR_TYPE_ID(I, T, H, U), - ActorTypeId_ShopItemQuiver = __ACTOR_TYPE_ID(I, T, A, P), - ActorTypeId_ShopItemBombBag = __ACTOR_TYPE_ID(I, T, B, B), - ActorTypeId_ShopItemRedPotion = __ACTOR_TYPE_ID(I, T, P, B), - ActorTypeId_ShopItemCourageGem = __ACTOR_TYPE_ID(I, T, S, R), - ActorTypeId_ShopItemShield = __ACTOR_TYPE_ID(I, T, S, L), - ActorTypeId_ShopItemSoldOut = __ACTOR_TYPE_ID(I, T, S, O), - - ActorTypeId_Heart = __ACTOR_TYPE_ID(H, A, R, T), - ActorTypeId_Rupee = __ACTOR_TYPE_ID(R, U, P, Y), - - ActorTypeId_Bomb = __ACTOR_TYPE_ID(B, O, M, B), - ActorTypeId_Arrow = __ACTOR_TYPE_ID(A, R, R, W), - - ActorTypeId_PlayerDummy = __ACTOR_TYPE_ID(P, L, D, M), - ActorTypeId_PushBlock = __ACTOR_TYPE_ID(P, S, B, L), - ActorTypeId_WindBlock = __ACTOR_TYPE_ID(W, B, L, K), - ActorTypeId_StorageDrum = __ACTOR_TYPE_ID(D, R, U, M), - - ActorTypeId_SmallKey = __ACTOR_TYPE_ID(N, K, E, Y), - - ActorTypeId_Sandworm = __ACTOR_TYPE_ID(M, L, D, W), - ActorTypeId_Tektite = __ACTOR_TYPE_ID(T, E, K, T), - ActorTypeId_PolsVoice = __ACTOR_TYPE_ID(P, L, S, V), - ActorTypeId_Yook = __ACTOR_TYPE_ID(Y, E, T, I), - ActorTypeId_Armos = __ACTOR_TYPE_ID(A, M, O, S), - ActorTypeId_Stalfos = __ACTOR_TYPE_ID(S, T, L, F), - ActorTypeId_StalfosWarrior = __ACTOR_TYPE_ID(S, T, L, W), - ActorTypeId_ChuChu = __ACTOR_TYPE_ID(C, H, U, C), - ActorTypeId_Gel = __ACTOR_TYPE_ID(G, E, L, L), - ActorTypeId_Bee = __ACTOR_TYPE_ID(B, E, E, 0), - ActorTypeId_BeeHive = __ACTOR_TYPE_ID(B, E, E, H), - ActorTypeId_Cucco = __ACTOR_TYPE_ID(K, O, K, O), - ActorTypeId_Rope = __ACTOR_TYPE_ID(S, N, A, K), - ActorTypeId_Octorok = __ACTOR_TYPE_ID(O, C, T, A), - ActorTypeId_Keese = __ACTOR_TYPE_ID(K, E, T, H), - ActorTypeId_Rat = __ACTOR_TYPE_ID(R, A, T, 0), - ActorTypeId_Beamos = __ACTOR_TYPE_ID(B, M, O, S), - ActorTypeId_LikeLike = __ACTOR_TYPE_ID(L, K, L, K), - ActorTypeId_Crow = __ACTOR_TYPE_ID(C, R, O, W), - - ActorTypeId_Linebeck = __ACTOR_TYPE_ID(L, N, B, K), - ActorTypeId_Mailbox = __ACTOR_TYPE_ID(P, O, S, T), - ActorTypeId_Postman = __ACTOR_TYPE_ID(P, S, T, M), - - ActorTypeId_BIGR = __ACTOR_TYPE_ID(B, I, G, R), - ActorTypeId_BKEY = __ACTOR_TYPE_ID(B, K, E, Y), - ActorTypeId_BLST = __ACTOR_TYPE_ID(B, L, S, T), - ActorTypeId_BMRN = __ACTOR_TYPE_ID(B, M, R, N), - ActorTypeId_BMTY = __ACTOR_TYPE_ID(B, M, T, Y), - ActorTypeId_BTRF = __ACTOR_TYPE_ID(B, T, R, F), - ActorTypeId_CBLS = __ACTOR_TYPE_ID(C, B, L, S), - ActorTypeId_FLAL = __ACTOR_TYPE_ID(F, L, A, L), - ActorTypeId_FLBM = __ACTOR_TYPE_ID(F, L, B, M), - ActorTypeId_FLBT = __ACTOR_TYPE_ID(F, L, B, T), - ActorTypeId_FLTB = __ACTOR_TYPE_ID(F, L, T, B), - ActorTypeId_FLTM = __ACTOR_TYPE_ID(F, L, T, M), - ActorTypeId_FORC = __ACTOR_TYPE_ID(F, O, R, C), - ActorTypeId_ROPE = __ACTOR_TYPE_ID(R, O, P, E), - ActorTypeId_SBEM = __ACTOR_TYPE_ID(S, B, E, M), - ActorTypeId_STNE = __ACTOR_TYPE_ID(S, T, N, E), - ActorTypeId_TARU = __ACTOR_TYPE_ID(T, A, R, U), - ActorTypeId_TSBH = __ACTOR_TYPE_ID(T, S, B, H), - ActorTypeId_TSUB = __ACTOR_TYPE_ID(T, S, U, B), - ActorTypeId_VLR0 = __ACTOR_TYPE_ID(V, L, R, 0), + ActorTypeId_Null = 'NULL', + + ActorTypeId_Navi = 'NAVI', + ActorTypeId_ForceNavi = 'FCNV', + ActorTypeId_WisdomNavi = 'WSNV', + + ActorTypeId_TreasureMap = 'TMAP', + ActorTypeId_DigSpot = 'DGTG', + + ActorTypeId_ShopItemBombchus = 'ITBT', + ActorTypeId_ShopItemBombs = 'ITBM', + ActorTypeId_ShopItemTreasure = 'ITTR', + ActorTypeId_ShopItemHeartContainer = 'ITHU', + ActorTypeId_ShopItemQuiver = 'ITAP', + ActorTypeId_ShopItemBombBag = 'ITBB', + ActorTypeId_ShopItemRedPotion = 'ITPB', + ActorTypeId_ShopItemCourageGem = 'ITSR', + ActorTypeId_ShopItemShield = 'ITSL', + ActorTypeId_ShopItemSoldOut = 'ITSO', + + ActorTypeId_Heart = 'HART', + ActorTypeId_Rupee = 'RUPY', + + ActorTypeId_Arrow = 'ARRW', + ActorTypeId_Blast = 'BLST', + ActorTypeId_Bomb = 'BOMB', + ActorTypeId_GrapplingHook = 'ROPE', + + ActorTypeId_PlayerDummy = 'PLDM', + ActorTypeId_PushBlock = 'PSBL', + ActorTypeId_WindBlock = 'WBLK', + ActorTypeId_StorageDrum = 'DRUM', + + ActorTypeId_SmallKey = 'NKEY', + ActorTypeId_SwitchObject = 'SWOB', + ActorTypeId_EventIcon = 'EVIC', + + ActorTypeId_Sandworm = 'MLDW', + ActorTypeId_Tektite = 'TEKT', + ActorTypeId_PolsVoice = 'PLSV', + ActorTypeId_Yook = 'YETI', + ActorTypeId_Armos = 'AMOS', + ActorTypeId_Stalfos = 'STLF', + ActorTypeId_StalfosWarrior = 'STLW', + ActorTypeId_ChuChu = 'CHUC', + ActorTypeId_Gel = 'GELL', + ActorTypeId_Bee = 'BEE0', + ActorTypeId_BeeHive = 'BEEH', + ActorTypeId_Cucco = 'KOKO', + ActorTypeId_Rope = 'SNAK', + ActorTypeId_Octorok = 'OCTA', + ActorTypeId_Keese = 'KETH', + ActorTypeId_Rat = 'RAT0', + ActorTypeId_Beamos = 'BMOS', + ActorTypeId_LikeLike = 'LKLK', + ActorTypeId_Crow = 'CROW', + + ActorTypeId_Linebeck = 'LNBK', + ActorTypeId_Mailbox = 'POST', + ActorTypeId_Postman = 'PSTM', + + ActorTypeId_BIGR = 'BIGR', + ActorTypeId_BKEY = 'BKEY', + ActorTypeId_BMRN = 'BMRN', + ActorTypeId_BMTY = 'BMTY', + ActorTypeId_BTRF = 'BTRF', + ActorTypeId_CBLS = 'CBLS', + ActorTypeId_FLAL = 'FLAL', + ActorTypeId_FLBM = 'FLBM', + ActorTypeId_FLBT = 'FLBT', + ActorTypeId_FLTB = 'FLTB', + ActorTypeId_FLTM = 'FLTM', + ActorTypeId_FORC = 'FORC', + ActorTypeId_SBEM = 'SBEM', + ActorTypeId_STNE = 'STNE', + ActorTypeId_TARU = 'TARU', + ActorTypeId_TSBH = 'TSBH', + ActorTypeId_TSUB = 'TSUB', + ActorTypeId_VLR0 = 'VLR0', }; class ActorType_UnkClass { diff --git a/include/Actor/Dungeon/ActorEventIcon.hpp b/include/Actor/Dungeon/ActorEventIcon.hpp new file mode 100644 index 00000000..ccef162d --- /dev/null +++ b/include/Actor/Dungeon/ActorEventIcon.hpp @@ -0,0 +1,30 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Actor/Actor.hpp" +#include "Actor/ActorType.hpp" +#include "Unknown/UnkStruct_02035064.hpp" + +class ActorEventIcon : public Actor { +public: + static ActorType gType; + + /* 000 (base) */ + /* 158 */ void *mUnk_158; + /* 15c */ u32 mUnk_15c; + /* 160 */ UnkStruct_02035064 mUnk_160; + + /* 00 */ virtual ~ActorEventIcon() override; + /* 08 */ virtual bool vfunc_08() override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 18 */ virtual void vfunc_18(u32 param1) override; + /* 1c */ virtual void vfunc_1c(u16 *param1) override; + /* b4 */ + + static ActorEventIcon *Create(); + ActorEventIcon(); + u32 func_ov000_02090648(u32 param1); + bool func_ov000_02090774(u32 param1); +}; diff --git a/include/Actor/Dungeon/ActorSwitchObject.hpp b/include/Actor/Dungeon/ActorSwitchObject.hpp new file mode 100644 index 00000000..b2fa08d3 --- /dev/null +++ b/include/Actor/Dungeon/ActorSwitchObject.hpp @@ -0,0 +1,36 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Actor/Actor.hpp" +#include "Actor/ActorType.hpp" + +class ActorSwitchObject : public Actor { +public: + static ActorType gType; + + /* 000 (base) */ + /* 158 */ unk32 mUnk_158; + /* 15c */ unk32 mUnk_15c; + /* 160 */ unk32 mUnk_160; + /* 164 */ unk32 mUnk_164; + /* 168 */ unk32 mUnk_168; + /* 16c */ u32 mUnk_16c; + /* 170 */ ActorRef mUnk_170[5]; + /* 198 */ + + /* 00 */ virtual ~ActorSwitchObject() override; + /* 08 */ virtual bool vfunc_08() override; + /* 0c */ virtual void vfunc_0c() override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 18 */ virtual void vfunc_18(u32 param1) override; + /* b4 */ + + static ActorSwitchObject *Create(); + bool func_ov000_0208fc10(s32 param1); + void func_ov000_0208fc7c(); + bool func_ov000_0208fcb4(); + void func_ov000_0208fef8(); + void func_ov000_0209032c(); +}; diff --git a/include/Actor/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp index bb6b15d4..bb6b15d4 100644 --- a/include/Actor/ActorNavi.hpp +++ b/include/Actor/Navi/ActorNavi.hpp diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp new file mode 100644 index 00000000..c98bf84f --- /dev/null +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -0,0 +1,113 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Actor/Actor.hpp" +#include "Player/EquipHammer.hpp" +#include "Render/ModelRender.hpp" + +class ActorNaviBase_Unk1 {}; + +class ActorNaviBase : public Actor { + /* 000 (base) */ + /* 158 */ Vec3p mOffsetPos; + /* 164 */ unk32 mUnk_164; + /* 168 */ ModelRender mUnk_168; + /* 1c4 */ unk8 mUnk_1c4[0xc]; + /* 1d0 */ void *mUnk_1d0; + /* 1d4 */ unk8 mUnk_1d4[0x30]; + /* 214 */ unk16 mUnk_214; + /* 216 */ unk8 mUnk_216[0xc]; + /* 222 */ unk16 mUnk_222; + /* 224 */ unk8 mUnk_224[0x18]; + /* 24c */ unk32 mUnk_24c; + /* 250 */ unk32 mUnk_250; + /* 254 */ unk32 mUnk_254; + /* 258 */ unk32 mUnk_258; + /* 25c */ unk32 mUnk_25c; + /* 260 */ unk32 mUnk_260; + /* 264 */ unk8 mUnk_264[0x1c]; + /* 280 */ unk32 mUnk_280; + /* 284 */ unk32 mUnk_284; + /* 288 */ unk8 mUnk_288[0x2]; + /* 28a */ unk16 mUnk_28a; + /* 28c */ unk8 mUnk_28c[0x8]; + /* 294 */ ModelRender mUnk_294; + /* 2f0 */ void *mUnk_2f0; + /* 2f4 */ unk8 mUnk_2f4[0x40]; + /* 334 */ unk32 mUnk_334; + /* 338 */ unk32 mUnk_338; + /* 33c */ unk32 mUnk_33c; + /* 340 */ unk16 mUnk_340; + /* 342 */ unk8 mUnk_342[0x2]; + /* 344 */ unk32 mUnk_344; + /* 348 */ unk32 mUnk_348; + /* 34c */ unk8 mUnk_34c[0x68]; + /* 3b4 */ EquipHammer *mHammer; + /* 3b8 */ unk32 mUnk_3b8; + /* 3bc */ unk32 mUnk_3bc; + /* 3c0 */ unk8 mUnk_3c0[0x8]; + /* 3c8 */ + + /* 00 */ virtual ~ActorNaviBase() override; + /* 08 */ virtual bool vfunc_08() override; + /* 10 */ virtual void vfunc_10(u32 param1) override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 18 */ virtual void vfunc_18(u32 param1) override; + /* 20 */ virtual void vfunc_20(bool param1) override; + /* 30 */ virtual unk32 vfunc_30() override; + /* 34 */ virtual void GetOffsetPos(Vec3p *pos) override; + /* 38 */ virtual unk32 vfunc_38() override; + /* 74 */ virtual void vfunc_74() override; + /* 78 */ virtual bool vfunc_78() override; + /* 80 */ virtual void vfunc_80() override; + /* 84 */ virtual void vfunc_84() override; + /* 90 */ virtual bool vfunc_90() override; + /* 94 */ virtual void vfunc_94() override; + /* a0 */ virtual bool TrySetTransform(Transform *transform) override; + /* b0 */ virtual void SetTransform(Transform *transform) override; + /* b4 */ virtual void vfunc_b4() = 0; + /* b8 */ virtual s32 vfunc_b8(); + /* bc */ virtual bool vfunc_bc(unk32 param1, unk8 param2, s32 param3); + /* c0 */ virtual bool vfunc_c0(Vec3p *param1); + /* c4 */ virtual void vfunc_c4(); + /* c8 */ virtual void vfunc_c8(); + /* cc */ virtual bool vfunc_cc(unk32 *param1); + /* d0 */ virtual void vfunc_d0(); + /* d4 */ virtual void vfunc_d4(); + /* d8 */ virtual void vfunc_d8(); + /* dc */ virtual void SetActive(bool active); + /* e0 */ virtual void vfunc_e0(); + /* e4 */ virtual void vfunc_e4(); + /* e8 */ virtual void vfunc_e8(); + /* ec */ virtual void vfunc_ec(); + /* f0 */ + + void func_ov000_020b8c50(); + void func_ov000_020b8c98(unk32 param1, unk32 param2, unk32 param3); + void TeleportAboveLink(); + void func_ov000_020b9770(s32 param1); + void func_ov000_020b9fdc(); + void func_ov000_020b9fe8(); + unk32 func_ov000_020ba204(Vec3p *param1, Vec3p *param2, s32 param3); + unk32 func_ov000_020ba3b4(); + void func_ov000_020ba414(Vec3p *param1); + bool func_ov000_020ba458(); + void func_ov000_020ba4e4(); + void func_ov000_020ba53c(); + void func_ov000_020baca8(Vec3p *param1, unk32 param2); + void func_ov000_020bad18(); + static void func_ov000_020bb0ac(); + static void func_ov000_020bb0e0(); + + ActorNaviBase(); + + bool func_ov059_0219933c(u32 param1); + void func_ov059_0219a0ac(); + void func_ov059_0219aa08(); + void func_ov059_0219aba8(u32 param1); + bool func_ov059_0219af14(); + bool func_ov059_0219afc4(); + void func_ov059_0219b020(); +}; diff --git a/include/Actor/Player/ActorArrow.hpp b/include/Actor/Player/ActorArrow.hpp new file mode 100644 index 00000000..a0ced1e3 --- /dev/null +++ b/include/Actor/Player/ActorArrow.hpp @@ -0,0 +1,63 @@ +#pragma once + +#include "global.h" +#include "nds/math.h" +#include "types.h" + +#include "Actor/Actor.hpp" +#include "Actor/ActorType.hpp" +#include "Player/EquipRope.hpp" + +class ActorArrow : public Actor { +public: + static ActorType gType; + + /* 000 (base) */ + /* 158 */ Vec3p mUnk_158; + /* 164 */ ActorRef mUnk_164; + /* 16c */ unk32 mUnk_16c; + /* 170 */ unk8 mUnk_170[0x14]; + /* 184 */ void *mUnk_184; + /* 188 */ unk8 mUnk_188[0x4]; + /* 18c */ s32 mUnk_18c; + /* 190 */ s32 mUnk_190; + /* 194 */ s32 mUnk_194; + /* 198 */ s32 mUnk_198; + /* 19c */ unk32 mUnk_19c; + /* 1a0 */ unk32 mSpeed; + /* 1a4 */ unk32 mUnk_1a4; + /* 1a8 */ s32 mUnk_1a8; + /* 1ac */ unk16 mUnk_1ac; + /* 1ae */ s16 mUnk_1ae; + /* 1b0 */ s16 mUnk_1b0; + /* 1b2 */ unk16 mUnk_1b2; + /* 1b4 */ unk8 mUnk_1b4[0x3]; + /* 1b7 */ bool mUnk_1b7; + /* 1b8 */ + + /* 00 */ virtual ~ActorArrow() override; + /* 08 */ virtual bool vfunc_08() override; + /* 10 */ virtual void vfunc_10(u32 param1) override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 18 */ virtual void vfunc_18(u32 param1) override; + /* 20 */ virtual void vfunc_20(bool param1) override; + /* 44 */ virtual bool CollidesWith(Actor *other) override; + /* 48 */ virtual bool vfunc_48(Knockback *param1) override; + /* b4 */ + + static ActorArrow *Create(); + static void func_ov014_0211fd80(unk32 param1); + static void func_ov014_0211fd90(); + ActorArrow(); + void func_ov014_021200d4(); + void func_ov014_02120118(); + bool func_ov014_02120180(); + static EquipRope *GetEquipRope(); + void func_ov014_021207b8(ActorRef *ref, s32 param2, s32 param3); + void func_ov014_02120998(ActorRef *ref, q20 x, q20 y, q20 z, s16 param5); + void func_ov014_02120ac4(unk32 param1, bool param2); + void func_ov014_02120c98(Vec3p *param1); + void func_ov014_02120d58(); + void func_ov014_02120da8(); + bool func_ov014_02120dec(unk32 param1); +}; diff --git a/include/Actor/Player/ActorBlast.hpp b/include/Actor/Player/ActorBlast.hpp new file mode 100644 index 00000000..a1e8b5fe --- /dev/null +++ b/include/Actor/Player/ActorBlast.hpp @@ -0,0 +1,59 @@ +#pragma once + +#include "global.h" +#include "nds/math.h" +#include "types.h" + +#include "Actor/Actor.hpp" +#include "Actor/ActorType.hpp" +#include "Unknown/UnkStruct_ov000_020beba8.hpp" + +class ActorBlast : public Actor { +public: + static ActorType gType; + + /* 000 (base) */ + /* 158 */ unk8 mUnk_158[0x4]; + /* 15c */ s32 mUnk_15c; + /* 160 */ s32 mUnk_160; + /* 164 */ + + /* 00 */ virtual ~ActorBlast() override; + /* 08 */ virtual bool vfunc_08() override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 18 */ virtual void vfunc_18(u32 param1) override; + /* b4 */ + + static ActorBlast *Create(); + ActorBlast(); +}; + +class ActorBlast_Unk1 : public UnkStruct_ov000_020beba8 { + /* 00 (base) */ + /* 0c */ ActorBlast *mBlast; + /* 10 */ Vec3p mUnk_10; + /* 1c */ unk8 mUnk_1c[0x18]; + /* 34 */ unk16 mUnk_34; + /* 36 */ unk16 mUnk_36; + /* 38 */ unk16 mUnk_38; + /* 3a */ unk16 mUnk_3a; + /* 3c */ unk16 mUnk_3c; + /* 3e */ unk8 mUnk_3e[0x20]; + /* 5e */ unk8 mUnk_5e; + /* 5f */ unk8 mUnk_5f; + /* 60 */ unk8 mUnk_60; + /* 61 */ unk8 mUnk_61; + /* 62 */ unk8 mUnk_62[0x6]; + /* 68 */ unk8 mUnk_68; + /* 69 */ unk8 mUnk_69; + /* 6a */ unk8 mUnk_6a; + /* 6b */ unk8 mUnk_6b; + /* 6c */ unk8 mUnk_6c; + /* 6d */ unk8 mUnk_6d; + /* 6e */ unk8 mUnk_6e[0x2]; + /* 70 */ + + /* 00 */ virtual ~ActorBlast_Unk1(); + /* 10 */ virtual void vfunc_10(s32 *param1); + /* 18 */ +}; diff --git a/include/Actor/Player/ActorBomb.hpp b/include/Actor/Player/ActorBomb.hpp new file mode 100644 index 00000000..17538bf8 --- /dev/null +++ b/include/Actor/Player/ActorBomb.hpp @@ -0,0 +1,73 @@ +#pragma once + +#include "global.h" +#include "nds/math.h" +#include "types.h" + +#include "Actor/Actor.hpp" +#include "Actor/ActorType.hpp" +#include "Unknown/UnkStruct_ov000_020beba8.hpp" + +class ActorBomb_Unk1 : public UnkStruct_ov000_020beba8 { +public: + /* 00 (base) */ + /* 0c */ unk32 mUnk_0c; + /* 10 */ + + /* 00 */ virtual ~ActorBomb_Unk1() override; + /* 08 */ virtual void vfunc_0c(unk16 *param1) override; + /* 0c */ virtual void vfunc_10(s32 *param1) override; + /* 18 */ +}; + +class ActorBomb_Unk2 { + /* 0 */ unk32 mUnk_0; + /* 4 */ unk32 mUnk_4; + /* 8 */ unk32 mUnk_8; + /* c */ + + ActorBomb_Unk2(); + ~ActorBomb_Unk2(); +}; + +class ActorBomb : public Actor { +public: + static ActorType gType; + + /* 000 (base) */ + /* 158 */ unk8 mUnk_158[0x7c]; + /* 1c4 */ unk32 mUnk_1c4; + /* 1c8 */ void *mUnk_1c8; + /* 1cc */ unk8 mUnk_1cc[0x24]; + /* 230 */ unk32 mUnk_230; + /* 234 */ unk32 mUnk_234; + /* 238 */ unk8 mUnk_238[0x4]; + /* 23c */ unk32 mUnk_23c; + /* 240 */ unk32 mUnk_240; + /* 244 */ unk32 mUnk_244; + /* 248 */ unk8 mUnk_248[0xc]; + /* 254 */ unk32 mUnk_254; + /* 258 */ unk32 mUnk_258; + /* 25c */ unk32 mUnk_25c; + /* 260 */ unk32 mUnk_260; + /* 264 */ unk8 mUnk_264[0x8]; + /* 26c */ + + /* 00 */ virtual ~ActorBomb() override; + /* 08 */ virtual bool vfunc_08() override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 18 */ virtual void vfunc_18(u32 param1) override; + /* 20 */ virtual void vfunc_20(bool param1) override; + /* 54 */ virtual void vfunc_54() override; + /* 5c */ virtual bool SetVelocity(Vec3p *vel) override; + /* b4 */ + + static ActorBomb *Create(); + ActorBomb(); + bool func_ov014_02122bb8(s32 param1); + bool func_ov014_02122e48(unk32 *param1); + bool func_ov014_02122e7c(); + bool func_ov014_02122e98(); + bool func_ov014_02122eb8(); + bool func_ov014_02122ed4(); +}; diff --git a/include/Actor/Player/ActorRope.hpp b/include/Actor/Player/ActorRope.hpp new file mode 100644 index 00000000..1d70a5fd --- /dev/null +++ b/include/Actor/Player/ActorRope.hpp @@ -0,0 +1,71 @@ +#pragma once + +#include "global.h" +#include "nds/math.h" +#include "types.h" + +#include "Actor/Actor.hpp" +#include "Actor/ActorType.hpp" +#include "Unknown/UnkStruct_ov000_020beba8.hpp" + +class ActorRope_Unk_0219a3b0 : public UnkStruct_ov000_020beba8 { +public: + /* 0 (base) */ + /* c */ + + /* 00 */ virtual ~ActorRope_Unk_0219a3b0() override; + /* 08 */ virtual void vfunc_08(unk16 *param1) override; + /* 10 */ virtual void vfunc_10(s32 *param1) override; + /* 1c */ + + inline ActorRope_Unk_0219a3b0() : + UnkStruct_ov000_020beba8(6) {} +}; + +class ActorRope : public Actor { +public: + static ActorType gType; + + /* 000 (base) */ + /* 158 */ unk8 mUnk_158[0xc]; + /* 164 */ unk16 mUnk_164; + /* 166 */ unk16 mUnk_166; + /* 168 */ s16 mUnk_168; + /* 16a */ unk8 mUnk_16a; + /* 16b */ unk8 mUnk_16b; + /* 16c */ unk8 mUnk_16c; + /* 16d */ unk8 mUnk_16d; + /* 16e */ unk16 mUnk_16e; + /* 170 */ u16 mUnk_170; + /* 172 */ unk8 mUnk_172[0x2]; + /* 174 */ Vec3p mUnk_174; + /* 180 */ Vec3p mUnk_180; + /* 18c */ unk8 mUnk_18c[0x4]; + /* 190 */ Vec3p mUnk_190; + /* 19c */ u32 mUnk_19c; + /* 1a0 */ + + /* 00 */ virtual ~ActorRope() override; + /* 08 */ virtual bool vfunc_08() override; + /* 10 */ virtual void vfunc_10(u32 param1) override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 18 */ virtual void vfunc_18(u32 param1) override; + /* 20 */ virtual void vfunc_20(bool param1) override; + /* b4 */ + + static ActorRope *Create(); + static void func_ov014_0212382c(Vec4p *vec); + static q20 func_ov014_0212384c(); + s32 func_ov014_021238f0(); + void func_ov014_02123904(); + bool func_ov014_02123960(); + void func_ov014_02123c54(s32 param1); + bool func_ov014_02123cd0(Vec3p *param1, s32 param2); + bool func_ov014_02123e1c(); + bool func_ov014_02123e48(unk32 param1); + + ActorRope(); + q20 func_ov057_0219a5ac(); + void func_ov057_0219a6b8(); + void func_ov057_0219a850(); +}; |
