diff options
| author | Aetias <144526980+AetiasHax@users.noreply.github.com> | 2025-02-03 23:53:59 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-03 23:53:59 +0100 |
| commit | 66fa3f0623820bc4fb099289a398453cd28e4ed9 (patch) | |
| tree | 49de846e0516c9490ea31fd14a867cc14253f7e4 /include/Player | |
| parent | 48bbd8bb7f008ac913cabb6f7faf4a47ad86878b (diff) | |
| parent | 2bd1bbd10b1ba5a595372a3313e80e4274a4e912 (diff) | |
Merge pull request #59 from AetiasHax/ghidra-symbols
Import documentation from Ghidra server
Diffstat (limited to 'include/Player')
28 files changed, 772 insertions, 192 deletions
diff --git a/include/Player/Battle/PlayerBattleLinkControlData.hpp b/include/Player/Battle/PlayerBattleLinkControlData.hpp new file mode 100644 index 00000000..f3f9deaf --- /dev/null +++ b/include/Player/Battle/PlayerBattleLinkControlData.hpp @@ -0,0 +1,51 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Item/ItemModelLoader.hpp" +#include "Player/PlayerControlData.hpp" +#include "Unknown/UnkStruct_02035064.hpp" + +class PlayerBattleLinkControlData : public PlayerControlData { +public: + /* 000 (base) */ + /* 1a0 */ s32 mUnk_1a0; + /* 1a4 */ unk32 mUnk_1a4; + /* 1a8 */ UnkStruct_02035064 mUnk_1a8; + /* 230 */ unk32 mUnk_230; + /* 234 */ unk32 mUnk_234; + /* 238 */ ItemModelLoader *mUnk_238; + /* 23c */ unk32 mUnk_23c; + /* 240 */ unk32 mUnk_240; + /* 244 */ u8 mUnk_244; + /* 245 */ u8 mUnk_245; + /* 246 */ u8 mUnk_246; + /* 247 */ unk8 mUnk_247; + /* 248 */ + + /* 04 */ virtual ~PlayerBattleLinkControlData() override; + /* 10 */ virtual unk32 GetCharacterId() override; + /* 14 */ virtual void vfunc_14(s32 param1) override; + /* 18 */ virtual void vfunc_18() override; + /* 20 */ virtual void vfunc_20() override; + /* 2c */ virtual void vfunc_2c() override; + /* 30 */ virtual void vfunc_30() override; + /* 38 */ virtual void vfunc_38(s32 param1, s32 param2) override; + /* 3c */ virtual void vfunc_3c(s32 param1, s32 param2) override; + /* 40 */ virtual void vfunc_40(u16 *param1, Vec3p *param2, unk32 param3, char param4) override; + /* 44 */ virtual void vfunc_44(unk32 param1, unk32 *param2, unk32 param3, unk16 param4) override; + /* 4c */ virtual void vfunc_4c(unk32 param1, Vec3p *param2) override; + /* 60 */ virtual void vfunc_60(unk32 param1, unk32 param2, s32 param3) override; + /* 64 */ virtual void vfunc_64(u32 param1) override; + /* 68 */ virtual void vfunc_68(unk32 param1, unk32 param2) override; + /* 6c */ virtual void vfunc_6c(s32 param1, Vec3p *param2) override; + /* 70 */ virtual void vfunc_70(s32 param1) override; + /* 80 */ virtual void vfunc_80(s32 param1) override; + /* 84 */ + + PlayerBattleLinkControlData(); + void func_ov012_0211af70(); + bool func_ov012_0211b9c4(s32 param1, Vec3p *param2); + void func_ov012_0211bb08(s32 param1); +}; diff --git a/include/Player/EquipBomb.hpp b/include/Player/EquipBomb.hpp index 9eb26ec9..43689dc4 100644 --- a/include/Player/EquipBomb.hpp +++ b/include/Player/EquipBomb.hpp @@ -2,32 +2,35 @@ #include "types.h"
+#include "Actor/Actor.hpp"
+#include "Actor/ActorRef.hpp"
#include "Player/EquipItem.hpp"
+#include "Render/ModelRender.hpp"
+
+#define MAX_BOMB_ACTORS 3
class LinkStateItem;
class EquipBomb : public EquipItem {
-private:
+public:
+ static ModelRender gModelRender;
+
/* 00 (base) */
- /* 09 */ unk8 mUnk_09[3];
- /* 0c */ unk32 mUnk_0c;
- /* 10 */ unk8 mUnk_10[0x14];
+ /* 09 */ unk8 mUnk_09[0x3];
+ /* 0c */ ActorRef mBombs[MAX_BOMB_ACTORS];
/* 24 */
-public:
- EquipBomb();
-
- /* 00 */ virtual void vfunc_00() override; // func_ov55_02198d00
+ /* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~EquipBomb() override;
/* 0c */ virtual ItemFlag GetId() const override;
-
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
- /* 18 */ virtual void vfunc_18() override; // func_ov55_02198d8c
-
- /* 30 */ virtual void vfunc_30() override; // func_ov55_02198da4
- /* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov55_2198df8
- /* 50 */ virtual void vfunc_50(); // func_ov14_0213d228
+ /* 18 */ virtual void vfunc_18() override;
+ /* 30 */ virtual void vfunc_30() override;
+ /* 38 */ virtual void vfunc_38(unk32 param1) override;
+ /* 50 */ virtual unk32 vfunc_50();
/* 54 */
- static void StopUsing(LinkStateItem *param1, unk32 param2);
+ EquipBomb();
+
+ Actor *func_ov055_02198e60();
};
diff --git a/include/Player/EquipBombchu.hpp b/include/Player/EquipBombchu.hpp index 449e6512..c2e924b5 100644 --- a/include/Player/EquipBombchu.hpp +++ b/include/Player/EquipBombchu.hpp @@ -2,22 +2,51 @@ #include "types.h"
+#include "Actor/Actor.hpp"
#include "Player/EquipItem.hpp"
+#include "Render/ModelRender.hpp"
+#include "Unknown/UnkStruct_ov000_020beba8.hpp"
+
+struct EquipBombchu_Unk1 {
+ /* 0 */ unk8 mUnk_0;
+ /* 1 */ unk8 mUnk_1;
+ /* 2 */
+
+ EquipBombchu_Unk1();
+};
+
+class EquipBombchu_Unk_02198d00 : public UnkStruct_ov000_020beba8 {
+public:
+ /* 0 (base) */
+ /* c */
+
+ /* 00 */ virtual ~EquipBombchu_Unk_02198d00() override;
+ /* 08 */ virtual void vfunc_08(unk16 *param1) override;
+ /* 0c */ virtual void vfunc_0c(unk16 *param1) override;
+ /* 10 */ virtual void vfunc_10(s32 *param1) override;
+ /* 14 */ virtual void vfunc_14(u16 *param1) override;
+ /* 1c */
+
+ inline EquipBombchu_Unk_02198d00() :
+ UnkStruct_ov000_020beba8(3) {}
+};
class EquipBombchu : public EquipItem {
-private:
+public:
+ static ModelRender gModelRenderBombchu;
+ static ModelRender gModelRenderBombchuPt;
+
/* 00 (base) */
/* 09 */ u8 mUnk_09[3];
- /* 0c */ u8 mUnk_0c[0x0c];
+ /* 0c */ ActorRef mUnk_0c;
+ /* 0c */ u8 mUnk_14[0x4];
/* 18 */ u32 mUnk_18;
- /* 1c */ void *mUnk_1c;
- /* 20 */ void *mUnk_20;
- /* 24 */ u32 mUnk_24;
- /* 28 */ u32 mUnk_28;
+ /* 1c */ EquipBombchu_Unk1 *mUnk_1c;
+ /* 20 */ Vec3p mUnk_20;
/* 2c */ void *mUnk_2c;
/* 30 */ u32 mUnk_30;
/* 34 */ u32 mUnk_34;
- /* 38 */ u8 mUnk_38[0xc];
+ /* 38 */ Vec3p mUnk_38;
/* 44 */ u16 mUnk_44;
/* 46 */ u8 mUnk_46;
/* 47 */ char mUnk_47;
@@ -25,20 +54,34 @@ private: /* 49 */ unk8 mUnk_49[3];
/* 4c */
-public:
- EquipBombchu();
-
- /* 00 */ virtual void vfunc_00() override; // func_ov58_02198fc0
+ /* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~EquipBombchu() override;
/* 0c */ virtual ItemFlag GetId() const override;
-
- bool CheckUsable(unk32 param1) const;
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
- /* 18 */ virtual void vfunc_18() override; // func_ov58_0219903c
- /* 1c */ virtual void vfunc_1c() override; // func_ov58_02199060
-
- /* 30 */ virtual void vfunc_30() override; // func_ov58_0219906c
- /* 34 */ virtual void vfunc_34(unk16 *param1) override; // func_ov58_0213ecb4
- /* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov58_02199170
+ /* 18 */ virtual void vfunc_18() override;
+ /* 1c */ virtual void vfunc_1c() override;
+ /* 30 */ virtual void vfunc_30() override;
+ /* 34 */ virtual void vfunc_34(unk16 *param1) override;
+ /* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 50 */
+
+ EquipBombchu();
+ void func_ov014_0213eba4();
+ void func_ov014_0213ec40();
+ void func_ov014_0213ec64();
+ Actor *func_ov014_0213ed74();
+ void *func_ov014_0213ed94(s32 param1);
+ void func_ov014_0213eda0();
+
+ void func_ov058_02199220();
+ void func_ov058_02199228();
+ void func_ov058_02199264();
+ void func_ov058_0219926c();
+ bool CheckUsable(unk32 param1) const;
+ Actor *func_ov058_02199400();
+ bool func_ov058_02199498(Vec3p *vec);
+ void func_ov058_02199ef0(unk16 param1);
+ void func_ov058_02199fd8(u32 param1);
+ unk32 func_ov058_0219a084(unk16 param1);
+ bool func_ov058_0219a3b4(unk16 param1);
};
diff --git a/include/Player/EquipBoomerang.hpp b/include/Player/EquipBoomerang.hpp index 1fc97caa..39814af4 100644 --- a/include/Player/EquipBoomerang.hpp +++ b/include/Player/EquipBoomerang.hpp @@ -25,15 +25,30 @@ private: public:
/* 04 */ virtual ~EquipBoomerang() override;
/* 0c */ virtual ItemFlag GetId() const override;
- /* 10 */ virtual void vfunc_10() override; // func_ov14_0213d078
-
+ /* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
- /* 18 */ virtual void vfunc_18() override; // func_ov53_02199064
- /* 1c */ virtual void vfunc_1c() override; // func_ov53_021990d0
-
- /* 30 */ virtual void vfunc_30() override; // func_ov53_0219913c
- /* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov53_02199318
+ /* 18 */ virtual void vfunc_18() override;
+ /* 1c */ virtual void vfunc_1c() override;
+ /* 28 */ virtual bool UpdateInUse(unk32 param1) override;
+ /* 30 */ virtual void vfunc_30() override;
+ /* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 50 */
+ EquipBoomerang();
+ void func_ov014_0213d098();
+ void func_ov014_0213d0bc(Vec3p *param1);
Actor *GetActor();
+ void func_ov014_0213d184();
+ void func_ov014_0213d1b0();
+
+ void func_ov053_02199014();
+ void func_ov053_02199020();
+ s32 func_ov053_0219902c(s32 param1);
+ void func_ov053_02199038();
+ void func_ov053_021990f0(unk16 param1);
+ bool func_ov053_02199128(s32 *param1);
+ void func_ov053_02199168();
+ void func_ov053_021991ec();
+ bool func_ov053_02199410(s32 param1);
+ bool func_ov053_021994cc(Vec3p *param1);
};
diff --git a/include/Player/EquipBow.hpp b/include/Player/EquipBow.hpp index d9cf0433..f3037198 100644 --- a/include/Player/EquipBow.hpp +++ b/include/Player/EquipBow.hpp @@ -3,9 +3,13 @@ #include "types.h"
#include "Player/EquipItem.hpp"
+#include "Render/ModelRender.hpp"
class EquipBow : public EquipItem {
-private:
+public:
+ static ModelRender gModelRenderBow;
+ static ModelRender gModelRenderArrow;
+
/* 00 (base) */
/* 09 */ unk8 mUnk_09;
/* 0a */ unk8 mUnk_0a;
@@ -14,17 +18,18 @@ private: /* 0d */ unk8 mUnk_0d[3];
/* 10 */
-public:
- EquipBow();
-
- /* 00 */ virtual void vfunc_00() override; // func_ov56_02198d00
+ /* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~EquipBow() override;
/* 0c */ virtual ItemFlag GetId() const override;
-
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
- /* 18 */ virtual void vfunc_18() override; // func_ov56_02198d84
-
- /* 30 */ virtual void vfunc_30() override; // func_ov56_02198de4
- /* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov56_02198df8
+ /* 18 */ virtual void vfunc_18() override;
+ /* 30 */ virtual void vfunc_30() override;
+ /* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 50 */
+
+ EquipBow();
+
+ bool func_ov056_02198ee8();
+ void func_ov056_02198f48(u16 param1);
+ bool func_ov056_021992f8();
};
diff --git a/include/Player/EquipHammer.hpp b/include/Player/EquipHammer.hpp index 9d3f0394..27e046c5 100644 --- a/include/Player/EquipHammer.hpp +++ b/include/Player/EquipHammer.hpp @@ -10,7 +10,7 @@ class EquipHammer : public EquipItem { private:
/* 00 (base) */
/* 09 */ unk8 mUnk_09[3];
- /* 0c */ unk8 mUnk_0c[0xc];
+ /* 0c */ Vec3p mUnk_0c;
/* 18 */ unk32 mUnk_18;
/* 1c */ unk8 mUnk_1c;
/* 1d */ unk8 mUnk_1d;
@@ -21,22 +21,25 @@ private: /* 2c */
public:
- EquipHammer();
-
/* 04 */ virtual ~EquipHammer() override;
/* 0c */ virtual ItemFlag GetId() const override;
- /* 10 */ virtual void vfunc_10() override; // func_ov14_0213ee04
-
+ /* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
- /* 18 */ virtual void vfunc_18() override; // func_ov59_02198e3c
- /* 1c */ virtual void vfunc_1c() override; // func_ov59_02198e58
-
- /* 2c */ virtual u32 vfunc_2c() override; // func_ov59_02198fcc
- /* 30 */ virtual void vfunc_30() override; // func_ov59_02198e6c
- /* 38 */ virtual void vfunc_38(unk32 param1) override; // func_0v59_02198fc8
- /* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const override; // func_ov14_0213ee10
- /* 4c */ virtual s32 vfunc_4c() const override; // func_ov14_0213eea8
+ /* 18 */ virtual void vfunc_18() override;
+ /* 1c */ virtual void vfunc_1c() override;
+ /* 2c */ virtual u32 vfunc_2c() override;
+ /* 30 */ virtual void vfunc_30() override;
+ /* 38 */ virtual void vfunc_38(unk32 param1) override;
+ /* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const override;
+ /* 4c */ virtual s32 vfunc_4c() const override;
/* 50 */
- static void StopUsing(LinkStateItem *param1);
+ EquipHammer();
+
+ void func_ov059_02198e90();
+ bool func_ov059_02198ebc();
+ bool func_ov059_02198ed4();
+ void func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3);
+ void func_ov059_02198fa8(unk32 param1);
+ bool func_ov059_02198fe0();
};
diff --git a/include/Player/EquipItem.hpp b/include/Player/EquipItem.hpp index d429a2e7..6702bc48 100644 --- a/include/Player/EquipItem.hpp +++ b/include/Player/EquipItem.hpp @@ -8,36 +8,38 @@ #include "System/SysNew.hpp"
class EquipItem : public SysObject {
-private:
+public:
/* 0 (vtable) */
/* 4 */ u16 mUnk_00;
/* 6 */ u16 mUnk_04;
/* 8 */ bool mInUse;
+ /* 9 */
-public:
EquipItem();
- /* 00 */ virtual void vfunc_00(); // func_ov00_020be8dc
+ /* 00 */ virtual void vfunc_00();
/* 04 */ virtual ~EquipItem();
/* 0c */ virtual ItemFlag GetId() const = 0;
- /* 10 */ virtual void vfunc_10(); // func_ov04_0210ba88
-
- u16 GetAmmo();
+ /* 10 */ virtual void vfunc_10();
/* 14 */ virtual bool IsUsable(unk32 param1) const;
/* 18 */ virtual void vfunc_18() = 0;
- /* 1c */ virtual void vfunc_1c(); // func_ov00_020be8e0
+ /* 1c */ virtual void vfunc_1c();
/* 20 */ virtual void GiveAmmo(u32 amount);
-
/* 24 */ virtual bool IsInUse() const;
/* 28 */ virtual bool UpdateInUse(unk32 param1);
- /* 2c */ virtual u32 vfunc_2c(); // func_ov00_020be964
+ /* 2c */ virtual u32 vfunc_2c();
/* 30 */ virtual void vfunc_30() = 0;
- /* 34 */ virtual void vfunc_34(unk16 *param1); // func_ov00_020be96c
+ /* 34 */ virtual void vfunc_34(unk16 *param1);
/* 38 */ virtual void vfunc_38(unk32 param1) = 0;
- /* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const; // func_ov00_020beb90
- /* 40 */ virtual unk32 vfunc_40() const; // func_ov00_020be970
- /* 44 */ virtual unk32 vfunc_44(unk32 param1) const; // func_ov00_020be978
- /* 48 */ virtual unk32 vfunc_48(unk32 param1) const; // func_ov00_020be980
- /* 4c */ virtual s32 vfunc_4c() const; // func_ov00_020be988
+ /* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const;
+ /* 40 */ virtual unk32 vfunc_40() const;
+ /* 44 */ virtual unk32 vfunc_44(unk32 param1) const;
+ /* 48 */ virtual unk32 vfunc_48(unk32 param1) const;
+ /* 4c */ virtual s32 vfunc_4c() const;
/* 50 */
+
+ Vec3p *GetPlayerPos();
+ void func_ov000_020be99c(Vec3p *param1);
+ void func_ov000_020be9e4(s32 param1, s32 param2, s32 param3, s16 param4);
+ u16 GetAmmo();
};
diff --git a/include/Player/EquipPotion.hpp b/include/Player/EquipPotion.hpp index a80c0492..ea7d4434 100644 --- a/include/Player/EquipPotion.hpp +++ b/include/Player/EquipPotion.hpp @@ -12,34 +12,32 @@ private: /* 10 */
public:
- EquipPotion();
-
- /* 00 */ virtual void vfunc_00() override; // func_ov55_021991a8
+ /* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~EquipPotion() override;
-
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
- /* 18 */ virtual void vfunc_18() override; // func_ov55_021991ac
- /* 1c */ virtual void vfunc_1c() override; // func_ov55_021991b0
-
- /* 30 */ virtual void vfunc_30() override; // func_ov55_02199274
- /* 38 */ virtual void vfunc_38(unk32 param1) override; // func_0v55_02199278
+ /* 18 */ virtual void vfunc_18() override;
+ /* 1c */ virtual void vfunc_1c() override;
+ /* 30 */ virtual void vfunc_30() override;
+ /* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 50 */
+
+ EquipPotion();
};
class EquipPotionA : public EquipPotion {
public:
- EquipPotionA();
-
/* 04 */ virtual ~EquipPotionA() override;
/* 0c */ virtual ItemFlag GetId() const override;
/* 50 */
+
+ EquipPotionA();
};
class EquipPotionB : public EquipPotion {
public:
- EquipPotionB();
-
/* 04 */ virtual ~EquipPotionB() override;
/* 0c */ virtual ItemFlag GetId() const override;
/* 50 */
+
+ EquipPotionB();
};
diff --git a/include/Player/EquipRope.hpp b/include/Player/EquipRope.hpp index 127eb974..ba157678 100644 --- a/include/Player/EquipRope.hpp +++ b/include/Player/EquipRope.hpp @@ -1,10 +1,11 @@ #pragma once
#include "global.h"
-#include "lib/math.h"
+#include "nds/math.h"
#include "types.h"
#include "Actor/ActorRef.hpp"
+#include "Actor/Player/ActorRope.hpp"
#include "Physics/Cylinder.hpp"
#include "Player/EquipItem.hpp"
@@ -12,6 +13,27 @@ struct EquipRope_Unk_18 { /* 00 */ Vec3p vec;
/* 0c */ unk8 mUnk_0c[0x10];
/* 1c */
+
+ bool func_ov057_02198e80();
+ void func_ov057_02198fc0(u32 param1);
+ void func_ov057_02199028(s32 param1);
+ bool func_ov057_02199104(EquipRope_Unk_18 *other);
+};
+
+class EquipRope_Unk_02198dd0 {
+public:
+ /* 0 (vtable) */
+ /* 4 */ unk32 mUnk_4;
+ /* 8 */
+
+ /* 00 */ virtual ~EquipRope_Unk_02198dd0();
+ /* 08 */ unk32 vfunc_08();
+ /* 0c */ unk32 vfunc_0c();
+ /* 10 */ unk32 vfunc_10(s32 *param1);
+ /* 14 */ unk32 vfunc_14();
+ /* 18 */
+
+ EquipRope_Unk_02198dd0();
};
class Actor;
@@ -23,7 +45,7 @@ public: /* 09 */ unk8 mUnk_09;
/* 0a */ unk16 mUnk_0a;
/* 0c */ unk8 mUnk_0c[4];
- /* 10 */ ActorRef mRef;
+ /* 10 */ ActorRef mRopeRef;
/* 18 */ EquipRope_Unk_18 mUnk_18[2];
/* 50 */ unk8 mUnk_50[0x1a];
/* 6a */ bool mUnk_6a;
@@ -37,29 +59,58 @@ public: /* a0 */ unk32 mUnk_a0;
/* a4 */
- EquipRope();
-
/* 04 */ virtual ~EquipRope() override;
/* 0c */ virtual ItemFlag GetId() const override;
- /* 10 */ virtual void vfunc_10() override; // func_ov14_0213d3a0
-
- u16 GetAmmo();
+ /* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
- /* 18 */ virtual void vfunc_18() override; // func_ov57_021992f4
- /* 1c */ virtual void vfunc_1c() override; // func_ov57_0219935c
-
- /* 30 */ virtual void vfunc_30() override; // func_ov57_02199744
- /* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov57_021998f0
+ /* 18 */ virtual void vfunc_18() override;
+ /* 1c */ virtual void vfunc_1c() override;
+ /* 30 */ virtual void vfunc_30() override;
+ /* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 50 */
- Actor *func_ov14_0213d420();
+ u16 GetAmmo();
+
+ EquipRope();
+ bool func_ov014_0213d3d4(Vec3p *vec);
+ void func_ov014_0213d404(unk32 *param1);
+ ActorRope *GetRopeActor();
s32 func_ov14_0213d440(s32 actorId);
s32 func_ov14_0213d480(s32 actorId);
+ bool func_ov014_0213d4c8();
+ bool func_ov014_0213d4ec(unk32 *param1, s32 param2);
+ s32 func_ov014_0213d594(s32 param1);
+ bool func_ov014_0213d5d0(unk32 *param1, s32 param2);
+ s32 func_ov014_0213d63c(s32 param1);
+ bool func_ov014_0213d684();
+ bool func_ov014_0213d6e0();
+ bool func_ov014_0213d71c(s32 param1, ActorRef *param2);
+ bool func_ov014_0213d788(s32 param1);
bool func_ov14_0213d81c(s32 index, Vec3p *vec);
void func_ov14_0213d91c(s32 index);
+ bool func_ov014_0213d9ac();
bool func_ov14_0213dadc(s32 index, Cylinder *cylinder);
+ void func_ov014_0213db34();
+ void func_ov014_0213db60();
+ void func_ov014_0213dba4(Vec3p *param1);
+ s32 func_ov014_0213dda0();
s32 func_ov14_0213ddd4(Actor *actor);
bool func_ov14_0213defc(Actor *actor);
+ bool func_ov014_0213dfbc(Cylinder *cylinder, s32 param2, Vec3p *vec);
+ void func_ov014_0213e144(Vec3p *param1, Vec3p *param2, s32 param3);
+ bool func_ov014_0213e20c(s32 param1, Vec3p *param2);
+ bool func_ov014_0213e328();
- static void StopUsing(LinkStateItem *param1);
+ void func_ov057_021990ec();
+ void func_ov057_021990f8();
+ bool func_ov057_0219922c(u32 param1);
+ void func_ov057_021992b4(s32 param1);
+ bool func_ov057_0219939c(s32 *param1, s32 param2);
+ bool func_ov057_02199454(s32 param1);
+ bool func_ov057_021994c0(unk32 *param1);
+ s32 func_ov057_021996b0(Vec3p *param1);
+ void func_ov057_02199ad8();
+ void func_ov057_02199c78();
+ void func_ov057_02199d54();
+ void func_ov057_02199e24();
};
diff --git a/include/Player/EquipScoop.hpp b/include/Player/EquipScoop.hpp index 8c4694bc..fadbbb24 100644 --- a/include/Player/EquipScoop.hpp +++ b/include/Player/EquipScoop.hpp @@ -3,29 +3,32 @@ #include "types.h"
#include "Player/EquipItem.hpp"
+#include "Render/ModelRender.hpp"
class LinkStateItem;
class EquipScoop : public EquipItem {
-private:
+public:
+ static ModelRender gModelRender;
+
/* 0 (base) */
/* 9 */ unk8 mUnk_9[3];
/* c */
-public:
- /* 00 */ virtual void vfunc_00() override; // func_ov54_02198d00
+ /* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~EquipScoop() override;
/* 0c */ virtual ItemFlag GetId() const override;
-
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
- /* 18 */ virtual void vfunc_18() override; // func_0v54_02198d2c
-
- /* 30 */ virtual void vfunc_30() override; // func_ov54_02198e04
- /* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov54_02198e4c
- /* 40 */ virtual unk32 vfunc_40() const override; // func_ov54_02198d30
- /* 44 */ virtual unk32 vfunc_44(unk32 param1) const override; // func_ov54_02198d38
- /* 48 */ virtual unk32 vfunc_48(unk32 param1) const override; // func_ov54_02198d48
+ /* 18 */ virtual void vfunc_18() override;
+ /* 30 */ virtual void vfunc_30() override;
+ /* 38 */ virtual void vfunc_38(unk32 param1) override;
+ /* 40 */ virtual unk32 vfunc_40() const override;
+ /* 44 */ virtual unk32 vfunc_44(unk32 param1) const override;
+ /* 48 */ virtual unk32 vfunc_48(unk32 param1) const override;
/* 50 */
- static void StopUsing(LinkStateItem *param1);
+ EquipScoop();
+
+ s32 func_ov054_02198e08(Vec3p *param1);
+ bool func_ov054_021980e24(Vec3p *param1);
};
diff --git a/include/Player/EquipShield.hpp b/include/Player/EquipShield.hpp index b83a5557..9da2599d 100644 --- a/include/Player/EquipShield.hpp +++ b/include/Player/EquipShield.hpp @@ -20,17 +20,17 @@ private: public:
EquipShield();
- /* 00 */ virtual void vfunc_00() override; // func_ov00_020c06d4
- /* 04 */ virtual ~EquipShield() override; // func_ov04_0210bc94
+ /* 00 */ virtual void vfunc_00() override;
+ /* 04 */ virtual ~EquipShield() override;
/* 0c */ virtual ItemFlag GetId() const override;
- /* 10 */ virtual void vfunc_10() override; // func_ov00_020c076c
-
+ /* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
- /* 18 */ virtual void vfunc_18() override; // func_ov00_020c0770
- /* 1c */ virtual void vfunc_1c(); // func_ov00_020c07f8
-
- /* 30 */ virtual void vfunc_30() override; // func_ov00_020c0804
- /* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov00_020c086c
- /* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const; // func_ov00_020c0a88
+ /* 18 */ virtual void vfunc_18() override;
+ /* 1c */ virtual void vfunc_1c();
+ /* 30 */ virtual void vfunc_30() override;
+ /* 38 */ virtual void vfunc_38(unk32 param1) override;
+ /* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const;
/* 50 */
+
+ void func_ov000_020c070c(u32 param1, Vec3p *param2, unk32 param3);
};
diff --git a/include/Player/EquipSword.hpp b/include/Player/EquipSword.hpp index d7cd47ad..2a48d217 100644 --- a/include/Player/EquipSword.hpp +++ b/include/Player/EquipSword.hpp @@ -43,20 +43,31 @@ private: public:
EquipSword();
- /* 00 */ virtual void vfunc_00() override; // func_ov00_020beffc
+ /* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~EquipSword() override;
/* 0c */ virtual ItemFlag GetId() const override;
- /* 10 */ virtual void vfunc_10() override; // func_ov00_020bf18c
+ /* 10 */ virtual void vfunc_10() override;
- /* 18 */ virtual void vfunc_18() override; // func_ov00_020bf270
- /* 1c */ virtual void vfunc_1c() override; // func_ov00_020bf2d8
+ /* 18 */ virtual void vfunc_18() override;
+ /* 1c */ virtual void vfunc_1c() override;
/* 28 */ virtual bool UpdateInUse(unk32 param1) override;
- /* 2c */ virtual u32 vfunc_2c() override; // func_ov00_020c0674
- /* 30 */ virtual void vfunc_30() override; // func_ov00_020bf538
- /* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov00_020bff94
- /* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const override; // func_ov00_020c01dc
+ /* 2c */ virtual u32 vfunc_2c() override;
+ /* 30 */ virtual void vfunc_30() override;
+ /* 38 */ virtual void vfunc_38(unk32 param1) override;
+ /* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const override;
/* 50 */
+ void func_ov000_020bf008(unk16 param1, unk16 param2);
+ bool func_ov000_020bf028();
+ void func_ov000_020bf088();
+ void func_ov000_020bf330();
+ bool func_ov000_020bf4f4();
static EquipRope *GetEquipRope();
+ void func_ov000_020c024c(Vec3p *param1, s32 param2);
+ void func_ov000_020c0318(Vec3p *param1, s32 param2);
+ void func_ov000_020c0550(Vec3p *param1, s32 param2);
+ void func_ov000_020c05ec(s32 param1);
+ void func_ov000_020c0648();
+ void func_ov000_020c06b0(s32 param1);
};
diff --git a/include/Player/HealthManager.hpp b/include/Player/HealthManager.hpp deleted file mode 100644 index 5ebb7181..00000000 --- a/include/Player/HealthManager.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once - -#include "global.h" -#include "types.h" - -#include "System/SysNew.hpp" - -class HealthManager : public SysObject { -public: - /* 00 */ u16 mMaxHealth; - /* 02 */ u16 mHealth; - /* 04 */ s16 mMaxShipHealth; - /* 06 */ s16 mShipHealth; - /* 08 */ u16 mSalvageArmHealth; - /* 0a */ s16 mFlags; - /* 0c */ unk16 mUnk_0c; - /* 0e */ unk8 mUnk_0e; - /* 0f */ unk8 mUnk_0f; - /* 10 */ -}; - -extern HealthManager *gHealthManager; diff --git a/include/Player/LinkStateBase.hpp b/include/Player/LinkStateBase.hpp index 3371b937..bca6c796 100644 --- a/include/Player/LinkStateBase.hpp +++ b/include/Player/LinkStateBase.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" @@ -127,6 +127,29 @@ public: s32 Get_PlayerLinkBase_Unk38(); DebugHierarchy *GetDebugHierarchy0(); DebugHierarchy *GetDebugHierarchy1(); + + LinkStateBase(PlayerLinkBase *link); + + void func_ov005_0210f768(); + void func_ov005_0210f7b8(); + u32 func_ov005_0210f808(u32 param1, Vec3p *param2, s32 param3); + void func_ov005_02110228(s32 param1, s32 param2, s32 param3, char param4, char param5); + bool func_ov005_0211058c(s32 param1); + void func_ov005_021107fc(); + void func_ov005_0211086c(s32 param1); + void func_ov005_0211097c(unk32 param1, unk8 param2, unk8 param3); + unk32 func_ov005_021109c0(); + void func_ov005_02110b40(s32 param1); + void func_ov005_02110bb4(); + void func_ov005_02110be8(); + void func_ov005_02110e0c(u16 param1, s32 param2); + void func_ov005_02110e28(u16 param1, s32 param2, s32 param3, char param4); + bool func_ov005_02110f50(s32 param1, s32 param2, s32 param3, u32 *param4); + void func_ov005_021112ec(); + bool func_ov005_02111358(); + bool func_ov005_0211139c(); + bool func_ov005_021113b4(); + void func_ov005_021113c4(bool param1); }; LinkStateBase *GetLinkState(s32 index); diff --git a/include/Player/LinkStateCutscene.hpp b/include/Player/LinkStateCutscene.hpp index f39c7430..224350fd 100644 --- a/include/Player/LinkStateCutscene.hpp +++ b/include/Player/LinkStateCutscene.hpp @@ -1,11 +1,25 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "Item/Item.hpp" #include "Player/LinkStateBase.hpp" +#include "Unknown/UnkStruct_02037750.hpp" + +class UnkStruct_ov004_0210abb8 : public UnkStruct_02037750 { +public: + /* 00 (base) */ + /* 20 */ unk32 mUnk_20; + /* 24 */ + + /* 00 */ virtual ~UnkStruct_ov004_0210abb8() override; + /* 08 */ virtual void vfunc_08(unk32 param1) override; + /* 24 */ virtual void vfunc_24(unk32 param1) override; + /* 2c */ virtual unk32 vfunc_2c(s32 param1) override; + /* 34 */ +}; class LinkStateCutscene : public LinkStateBase { public: @@ -58,4 +72,54 @@ public: /* 38 */ virtual bool vfunc_38() override; /* 40 */ virtual bool vfunc_40() override; /* 44 */ + + bool func_ov000_020b1e98(s32 param1); + bool func_ov000_020b1eb8(); + bool func_ov000_020b1eec(); + void StopVerticalVelocity(); + void func_ov000_020b2568(); + void func_ov000_020b2598(); + void func_ov000_020b2ba4(); + void func_ov000_020b2ce4(unk32 param1, s16 param2); + void func_ov000_020b2cf0(); + void func_ov000_020b2d60(); + bool func_ov000_020b2d8c(); + void func_ov000_020b2e84(); + void func_ov000_020b2f48(unk32 param1, unk32 param2); + void func_ov000_020b2f70(unk32 param1, void *param2, unk32 *param3); + void ChangeToMoveState(); + bool func_ov000_020b2fac(); + void func_ov000_020b3024(Vec3p *param1, unk32 param2); + void func_ov000_020b305c(Vec3p *param1, Vec3p *param2); + void func_ov000_020b309c(Vec3p *param1); + void func_ov000_020b30e4(u32 param1, unk32 param2, unk32 param3); + void func_ov000_020b3278(s32 param1, s32 *param2); + void func_ov000_020b35d8(s32 param1, s32 param2); + void func_ov000_020b38dc(u32 param1, u32 param2); + + LinkStateCutscene(PlayerLinkBase *link); + + void func_ov005_021089c0(); + void func_ov005_021089f4(); + void func_ov005_02108d08(); + void func_ov005_02108e08(); + void func_ov005_02108e8c(); + void func_ov005_02108f38(); + void func_ov005_02108f98(unk32 param1, unk32 param2, unk32 param3); + void func_ov005_021092bc(); + void func_ov005_0210952c(); + void func_ov005_02109588(); + void func_ov005_0210960c(); + void func_ov005_02109650(); + bool PlayItemCutscene(unk32 itemId); + bool func_ov005_02109768(); + void func_ov005_021097b0(s32 param1); + void func_ov005_021099dc(); + bool func_ov005_02109cd0(s32 *param1, s32 param2, unk32 param3); + void func_ov005_02109e84(); + void func_ov005_02109f2c(); + void func_ov005_02109f88(); + void func_ov005_0210a018(); + void func_ov005_0210a06c(); + bool func_ov005_0210a0c0(unk16 param1); }; diff --git a/include/Player/LinkStateDamage.hpp b/include/Player/LinkStateDamage.hpp index 2c5e6e00..0e3a70a7 100644 --- a/include/Player/LinkStateDamage.hpp +++ b/include/Player/LinkStateDamage.hpp @@ -1,7 +1,7 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "Player/LinkStateBase.hpp" @@ -48,4 +48,6 @@ class LinkStateDamage : public LinkStateBase { void func_ov00_020ace90(Vec3p *param1, unk32 param2); void func_ov00_020acfe8(bool param1); + + LinkStateDamage(PlayerLinkBase *link); }; diff --git a/include/Player/LinkStateFollow.hpp b/include/Player/LinkStateFollow.hpp index c422faa1..add6d456 100644 --- a/include/Player/LinkStateFollow.hpp +++ b/include/Player/LinkStateFollow.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" @@ -37,4 +37,16 @@ public: LinkStateCutscene *GetLinkStateCutscene(); bool func_ov00_020a9180(Vec3p *param1); bool func_ov00_020a9210(Vec3p *param1, Actor *param2); + + LinkStateFollow(PlayerLinkBase *link); + + static EquipRope *GetEquipRope(); + void func_ov005_0210b9c4(); + void func_ov005_0210ba98(); + void func_ov005_0210babc(); + void func_ov005_0210bb50(); + void func_ov005_0210bb98(); + void func_ov005_0210bd70(); + void func_ov005_0210bf50(); + void func_ov005_0210ca80(Vec3p *param1, s32 *param2); }; diff --git a/include/Player/LinkStateInteract.hpp b/include/Player/LinkStateInteract.hpp index 150983b8..6151585b 100644 --- a/include/Player/LinkStateInteract.hpp +++ b/include/Player/LinkStateInteract.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" @@ -53,4 +53,15 @@ public: void func_ov00_020abc18(ActorRef *ref); bool func_ov00_020abc40(); bool func_ov00_020abc78(ActorRef *ref); + + LinkStateInteract(PlayerLinkBase *link); + + void func_ov005_0210a690(); + bool func_ov005_0210a714(); + void func_ov005_0210a774(); + void func_ov005_0210a7d4(); + void func_ov005_0210ab1c(); + void func_ov005_0210ad88(); + void func_ov005_0210b2a4(); + void func_ov005_0210b4f4(Vec3p *vec, Actor *actor); }; diff --git a/include/Player/LinkStateItem.hpp b/include/Player/LinkStateItem.hpp index 0c5f4a4d..cba602f8 100644 --- a/include/Player/LinkStateItem.hpp +++ b/include/Player/LinkStateItem.hpp @@ -50,4 +50,47 @@ public: static EquipBombchu *GetEquipBombchu(); static LinkStateMove *GetLinkStateMove(); bool func_ov00_020abf70(); + + LinkStateItem(PlayerLinkBase *link); + + void func_ov005_02105850(); + void func_ov005_02105c28(); + void func_ov005_02105d94(); + void func_ov005_02105dac(); + void func_ov005_02106644(); + void func_ov005_02106700(Vec3p *param1, unk8 *param2); + void func_ov005_02106740(s32 *param1, s32 param2); + bool func_ov005_02106894(s32 param1, s32 param2); + void func_ov005_02106980(unk32 param, s32 param2, s32 *param3); + bool func_ov005_02106a50(); + bool func_ov005_02106bbc(Vec3p *param1, unk32 param2, u32 param3); + + bool func_ov054_02198efc(s32 param1, unk32 param2, u32 param3); + bool func_ov054_021992c8(unk32 param1, unk32 param2, u32 param3); + void StopUsingScoop(); + + void func_ov054_02198eec(); + void func_ov055_02198f78(); + void StopUsingBomb(s32 param1); + void func_ov055_02199020(); + void func_ov055_021993b8(); + void func_ov055_02199654(); + + void func_ov056_021990c0(); + void func_ov056_0219911c(); + bool func_ov056_021992f8(); + + void func_ov057_02199e64(); + void func_ov057_02199edc(); + void func_ov057_0219a208(); + void StopUsingRope(); + bool func_ov057_0219a364(); + + void func_ov058_0219a454(); + void func_ov058_0219a47c(); + + void func_ov059_02198ffc(); + void func_ov059_0219907c(); + void func_ov059_021990a4(); + void StopUsingHammer(); }; diff --git a/include/Player/LinkStateMove.hpp b/include/Player/LinkStateMove.hpp index e56eee3c..9b369e9c 100644 --- a/include/Player/LinkStateMove.hpp +++ b/include/Player/LinkStateMove.hpp @@ -29,4 +29,8 @@ public: bool func_ov00_020a8f2c(); bool func_ov00_020a8f4c(); + + LinkStateMove(PlayerLinkBase *link); + + void func_ov005_021113d0(); }; diff --git a/include/Player/LinkStateRoll.hpp b/include/Player/LinkStateRoll.hpp index 52b42b43..a82dbdf1 100644 --- a/include/Player/LinkStateRoll.hpp +++ b/include/Player/LinkStateRoll.hpp @@ -23,7 +23,7 @@ public: /* 28 */ unk8 mUnk_28[4]; /* 2c */ unk32 mUnk_2c[5]; /* 40 */ unk32 mUnk_40; - /* 44 */ unk32 mUnk_44[0x10]; + /* 44 */ ActorRef mUnk_44[0x8]; /* 84 */ void *mUnk_84; /* 88 */ unk32 mUnk_88; /* 8c */ unk8 mUnk_8c[0xc]; @@ -43,4 +43,24 @@ public: void func_ov00_020aee58(s16 param1, u16 param2); void func_ov00_020aee84(); bool func_ov00_020aeeac(); + + LinkStateRoll(PlayerLinkBase *link); + + s32 func_ov005_02106c80(u32 param1); + void func_ov005_02106cd0(); + void func_ov005_02107208(u32 param1); + void func_ov005_02107214(); + void func_ov005_021073b8(); + void func_ov005_021075bc(); + void func_ov005_02107880(); + void func_ov005_02107954(unk32 param1, unk32 param2, unk32 param3); + void func_ov005_02107b74(unk32 *param1, unk16 param2, unk16 param3); + bool func_ov005_02107bd4(); + bool func_ov005_02107c8c(); + bool func_ov005_02107d74(); + unk32 func_ov005_02107e80(u32 param1, unk32 *param2, unk16 param3, unk8 *param4); + void func_ov005_02107fc0(); + bool func_ov005_02108094(); + void func_ov005_02108188(); + void func_ov005_021081a8(); }; diff --git a/include/Player/PlayerBase.hpp b/include/Player/PlayerBase.hpp index 578f3e27..354e1078 100644 --- a/include/Player/PlayerBase.hpp +++ b/include/Player/PlayerBase.hpp @@ -32,7 +32,7 @@ public: /* 18 */ virtual void vfunc_18() = 0; /* 1c */ virtual void Init() = 0; /* 20 */ virtual void vfunc_20() = 0; - /* 24 */ virtual void vfunc_24() = 0; + /* 24 */ virtual void UpdatePos() = 0; /* 28 */ virtual void vfunc_28(s32 param1) = 0; /* 2c */ virtual void vfunc_2c(s32 param1, unk8 param2) = 0; /* 30 */ virtual bool vfunc_30(s32 param1, Vec3p *param2, s32 param3) = 0; @@ -57,6 +57,8 @@ public: bool EquipCollidesWith(Cylinder *cylinder, ItemFlag equipId); s32 EquipItem_vfunc_2c(); void SetHealth(s16 health); + + PlayerBase(); }; extern PlayerBase *gPlayer; diff --git a/include/Player/PlayerControl.hpp b/include/Player/PlayerControl.hpp index 0e0da8ae..f2cc23eb 100644 --- a/include/Player/PlayerControl.hpp +++ b/include/Player/PlayerControl.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" @@ -124,6 +124,20 @@ public: bool IsTouchingFast(); bool IsTappedNow(); bool func_ov00_020b13c4(); + + void ResetTouchWorld(); + void InitTouchMovement(); + void func_ov000_020b7924(s32 param1); + void ApplyTouchWorld(Vec3p *result, unk32 scale); + bool func_ov000_020b7d6c(); + + PlayerControl(); + ~PlayerControl(); + static void Create(); + static void Destroy(); + void Init(); + void func_ov004_0210b1d0(); + static void func_ov004_0210b1f0(); }; extern PlayerControl *gPlayerControl; diff --git a/include/Player/PlayerControlData.hpp b/include/Player/PlayerControlData.hpp index 3f998186..3527810c 100644 --- a/include/Player/PlayerControlData.hpp +++ b/include/Player/PlayerControlData.hpp @@ -1,7 +1,7 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "System/SysNew.hpp" @@ -58,4 +58,50 @@ public: /* 19c */ unk16 mUnk_19c; /* 19e */ unk16 mUnk_19e; /* 1a0 */ + + /* 00 */ virtual void vfunc_00(); + /* 04 */ virtual ~PlayerControlData(); + /* 0c */ virtual unk32 vfunc_0c(); + /* 10 */ virtual unk32 GetCharacterId() = 0; + /* 14 */ virtual void vfunc_14(s32 param1) = 0; + /* 18 */ virtual void vfunc_18(); + /* 1c */ virtual void vfunc_1c(); + /* 20 */ virtual void vfunc_20(); + /* 24 */ virtual void vfunc_24(); + /* 28 */ virtual void vfunc_28(); + /* 2c */ virtual void vfunc_2c(); + /* 30 */ virtual void vfunc_30(); + /* 34 */ virtual void vfunc_34(); + /* 38 */ virtual void vfunc_38(s32 param1, s32 param2) = 0; + /* 3c */ virtual void vfunc_3c(s32 param1, s32 param2); + /* 40 */ virtual void vfunc_40(u16 *param1, Vec3p *param2, unk32 param3, char param4); + /* 44 */ virtual void vfunc_44(unk32 param1, unk32 *param2, unk32 param3, unk16 param4); + /* 48 */ virtual void vfunc_48(unk32 param1, unk32 param2, unk32 param3, s16 param4); + /* 4c */ virtual void vfunc_4c(unk32 param1, Vec3p *param2); + /* 50 */ virtual void vfunc_50(); + /* 54 */ virtual void vfunc_54(); + /* 58 */ virtual void vfunc_58(); + /* 5c */ virtual void vfunc_5c(); + /* 60 */ virtual void vfunc_60(unk32 param1, unk32 param2, s32 param3); + /* 64 */ virtual void vfunc_64(u32 param1); + /* 68 */ virtual void vfunc_68(unk32 param1, unk32 param2); + /* 6c */ virtual void vfunc_6c(s32 param1, Vec3p *param2); + /* 70 */ virtual void vfunc_70(s32 param1); + /* 74 */ virtual unk32 vfunc_74(); + /* 78 */ virtual unk32 vfunc_78(); + /* 7c */ virtual unk32 vfunc_7c(); + /* 80 */ + + void func_ov000_020b4440(); + void func_ov000_020b4460(s32 param1); + void func_ov000_020b44d4(s32 param1, u32 param2); + void func_ov000_020b4558(s32 param1, u32 param2); + void func_ov000_020b45e0(); + void func_ov000_020b45f8(unk32 *param1, unk8 param2, unk8 param3); + void func_ov000_020b464c(unk32 *param1, unk8 param2, unk8 param3); + void func_ov000_020b484c(s32 param1, s32 param2, s32 param3); + void func_ov000_020b4944(unk32 param1, u32 param2, s32 param3); + void func_ov000_020b4a00(s32 *param1, s32 *param2, s32 *param3, s32 param4); + + PlayerControlData(); }; diff --git a/include/Player/PlayerLink.hpp b/include/Player/PlayerLink.hpp new file mode 100644 index 00000000..51429cea --- /dev/null +++ b/include/Player/PlayerLink.hpp @@ -0,0 +1,65 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "DTCM/UnkStruct_027e0fd4.hpp" +#include "Player/EquipBombchu.hpp" +#include "Player/EquipShield.hpp" +#include "Player/LinkStateCutscene.hpp" +#include "Player/LinkStateFollow.hpp" +#include "Player/PlayerLinkBase.hpp" + +class PlayerLink : public PlayerLinkBase { +public: + /* 00 (base) */ + /* 70 */ s32 mUnk_70; + /* 74 */ unk8 mUnk_74[0x4]; + /* 78 */ unk32 mUnk_78; + /* 7c */ unk32 mUnk_7c; + /* 80 */ char mUnk_80; + /* 81 */ unk8 mUnk_81[0x3]; + /* 84 */ + + /* 00 */ virtual s32 GetMaxHealth() override; + /* 04 */ virtual bool vfunc_04() override; + /* 1c */ virtual void Init() override; + /* 24 */ virtual void UpdatePos() override; + /* 2c */ virtual void vfunc_2c(s32 param1, unk8 param2) override; + /* 40 */ virtual void AddHealth(s16 amount) override; + /* 44 */ virtual void vfunc_44() override; + /* 48 */ virtual void vfunc_48() override; + /* 4c */ virtual void vfunc_4c() override; + /* 50 */ virtual ~PlayerLink() override; + /* 68 */ virtual void vfunc_68() override; + /* 6c */ virtual void vfunc_6c() override; + /* 74 */ virtual void vfunc_74() override; + /* 78 */ virtual unk32 vfunc_78() override; + /* 7c */ virtual void vfunc_7c() override; + /* 80 */ virtual void SetUnk_5e() override; + /* 84 */ virtual void ResetUnk_5e() override; + /* 88 */ virtual void OnDeath(bool param1); + /* 8c */ + + static PlayerLink *Create(); + static PlayerLink *GetInstance(); + void func_ov014_0213eef0(s32 param1); + static LinkStateCutscene *GetLinkStateCutscene(); + PlayerLink(); + void func_ov014_0213f37c(); + static LinkStateItem *GetLinkStateItem(); + static void func_ov014_0213f734(unk32 *param1, UnkStruct_027e0fd4 *param2); + void func_ov014_0213f740(); + void func_ov014_0213f97c(); + + unk32 func_ov023_02177e7c(); + unk32 func_ov023_02177e84(); + void func_ov023_02177e90(); + bool func_ov023_02178058(); + static LinkStateFollow *GetLinkStateFollow(); + void func_ov023_02178174(); + static EquipBombchu *GetEquipBombchu(); + static EquipShield *GetEquipShield(); + void GiveControlToLink(); + void func_ov023_02178630(); +}; diff --git a/include/Player/PlayerLinkBase.hpp b/include/Player/PlayerLinkBase.hpp index 02cf3219..2a208365 100644 --- a/include/Player/PlayerLinkBase.hpp +++ b/include/Player/PlayerLinkBase.hpp @@ -1,13 +1,15 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "Actor/ActorManager.hpp" #include "Debug/DebugHierarchy.hpp" +#include "Item/ItemManager.hpp" #include "Player/MotionParams.hpp" #include "Player/PlayerBase.hpp" +#include "Player/PlayerControlData.hpp" typedef s32 PlayerCharacter; enum PlayerCharacter_ { @@ -43,22 +45,22 @@ public: /* 6c */ DebugHierarchy *mDebugHierarchy_2; /* 70 */ - /* 00 */ s32 GetMaxHealth() override; - /* 08 */ ItemFlag GetEquipId() override; - /* 0c */ bool CanMove() override; - /* 10 */ void vfunc_10(Cylinder *param1) override; - /* 14 */ void vfunc_14(Cylinder *param1) override; - /* 18 */ void vfunc_18(s32 param1) override; - /* 1c */ void Init() override; - /* 20 */ void vfunc_20() override; - /* 24 */ void vfunc_24() override; - /* 28 */ void vfunc_28(s32 param1) override; - /* 2c */ void vfunc_2c(s32 param1, unk8 param2) override; - /* 30 */ bool vfunc_30(s32 param1, Vec3p *param2, s32 param3) override; - /* 34 */ bool Teleport(Vec3p *pos, s16 angle, unk32 param3, bool param4, bool param5) override; - /* 38 */ bool TeleportToEntrance(unk32 entranceId, bool param2) override; - /* 3c */ bool TeleportToLastEntrance(bool param1) override; - /* 50 */ ~PlayerLinkBase() override; + /* 00 */ virtual s32 GetMaxHealth() override; + /* 08 */ virtual ItemFlag GetEquipId() override; + /* 0c */ virtual bool CanMove() override; + /* 10 */ virtual void vfunc_10(Cylinder *param1) override; + /* 14 */ virtual void vfunc_14(Cylinder *param1) override; + /* 18 */ virtual void vfunc_18(s32 param1) override; + /* 1c */ virtual void Init() override; + /* 20 */ virtual void vfunc_20() override; + /* 24 */ virtual void UpdatePos() override; + /* 28 */ virtual void vfunc_28(s32 param1) override; + /* 2c */ virtual void vfunc_2c(s32 param1, unk8 param2) override; + /* 30 */ virtual bool vfunc_30(s32 param1, Vec3p *param2, s32 param3) override; + /* 34 */ virtual bool Teleport(Vec3p *pos, s16 angle, unk32 param3, bool param4, bool param5) override; + /* 38 */ virtual bool TeleportToEntrance(unk32 entranceId, bool param2) override; + /* 3c */ virtual bool TeleportToLastEntrance(bool param1) override; + /* 50 */ virtual ~PlayerLinkBase() override; /* 58 */ virtual bool vfunc_58(); /* 5c */ virtual bool vfunc_5c(); /* 60 */ virtual bool vfunc_60(); @@ -73,13 +75,88 @@ public: /* 84 */ virtual void ResetUnk_5e(); /* 88 */ - bool func_ov00_020bbd80(s32 param1); - void func_ov00_020bc854(Vec3p *param1); - bool func_ov00_020bce48(ItemId cutsceneItemId); // PlayItemCutscene - bool func_ov00_020bd304(); - bool GongoronCollidesWith(Cylinder *hitbox); - s32 GetGrabActorId(); + void UnequipPotion(); + void ChangeLinkState(s32 index); + void SetLinkSubState(s32 index, unk32 substate); + PlayerControlData *GetPlayerControlData(s32 index); + void GetDistanceTo(Vec3p *vec, q20 *yDist, q20 *xzDist); + bool func_ov000_020bb68c(Vec3p *target); + bool func_ov000_020bb6d4(); + void func_ov000_020bb810(Vec3p *target, unk32 param2); + void func_ov000_020bb8c4(Vec3p *param1); + void TurnTo(Vec3p *target); + void func_ov000_020bb9b0(); + void func_ov000_020bb9c8(); + void func_ov000_020bb9e4(); + bool func_ov000_020bba00(); + bool func_ov000_020bba14(); + bool func_ov000_020bba28(); + void func_ov000_020bba48(); + bool func_ov000_020bbabc(); + bool func_ov000_020bbb18(); + bool func_ov000_020bbb64(); + bool func_ov000_020bbb78(); + void func_ov000_020bbbb8(); + bool func_ov000_020bbbd0(s32 param1, s32 param2); + bool func_ov000_020bbc68(s32 param1); + bool func_ov000_020bbd40(); + bool func_ov000_020bbd60(); + bool func_ov000_020bbd80(s32 param1); + unk32 func_ov000_020bbe94(); + void func_ov000_020bc088(); + ItemManager *GetItemManager(); + void func_ov000_020bc1c8(unk32 param1, unk32 param2, unk32 param3); + bool func_ov000_020bc210(); + void SetVelocity(Vec3p *velocity, bool setAngle); + void func_ov000_020bc280(unk16 param1); + unk32 func_ov000_020bc2d4(unk32 param1); + unk32 func_ov000_020bc320(unk32 param1, unk32 param2, unk32 param3); + void func_ov000_020bc398(unk32 param1, s32 param2); PlayerCharacter GetCurrentCharacter(); + s32 GetHealth(PlayerCharacter character); + void AddHealth(s16 amount, PlayerCharacter character); + void func_ov000_020bc4ac(); + s32 GetStateId(); + s32 func_ov000_020bc520(Vec3p *param1); + unk32 Grab(); + void func_ov000_020bc7e0(unk32 param1); + s32 GetGrabActorId(); + s32 func_ov000_020bc808(); + unk32 func_ov000_020bc84c(); + void func_ov000_020bc854(Vec3p *param1); + void UpdateTilePos(Vec3p *param1, PlayerCharacter character); + void func_ov000_020bc90c(unk32 *param1, s32 param2); + bool func_ov000_020bc960(unk32 param1, unk32 param2, unk32 param3); + bool GongoronCollidesWith(Cylinder *hitbox); + bool func_ov000_020bcc78(); + void func_ov000_020bccc8(); + void func_ov000_020bcdb8(); + void func_ov000_020bcdec(Vec3p *param1, unk16 param2); + bool PlayItemCutscene(ItemId cutsceneItemId); + bool func_ov000_020bcec8(); + bool func_ov000_020bcefc(); + bool func_ov000_020bcf2c(); + bool func_ov000_020bcf50(Vec3p *param1, unk32 param2); + bool func_ov000_020bcf84(Vec3p *param1, Vec3p *param2); + bool func_ov000_020bcfb8(s32 param1); + bool func_ov000_020bd030(unk32 param1); + bool func_ov000_020bd070(unk32 param1); + bool func_ov000_020bd0a8(); + bool func_ov000_020bd0bc(Vec3p *param1, s32 param2); + bool func_ov000_020bd268(); + bool func_ov000_020bd2bc(); + bool func_ov000_020bd304(); + bool func_ov000_020bd318(); + void SetPlayerCharacter(PlayerCharacter character); + bool func_ov000_020bd3b0(unk32 param1, unk32 param2, unk32 param3, unk16 param4); + void SetPosition(Vec3p *position); + void SetAngle(s16 *angle); + bool func_ov000_020bd510(s32 param1, unk32 *param2); + + PlayerLinkBase(); + + void UpdatePos(unk32 param1); + bool func_ov005_0210eba4(); }; extern PlayerLinkBase *gPlayerLink; diff --git a/include/Player/PlayerManager.hpp b/include/Player/PlayerManager.hpp new file mode 100644 index 00000000..63d4b303 --- /dev/null +++ b/include/Player/PlayerManager.hpp @@ -0,0 +1,34 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Save/SaveItemManager.hpp" +#include "System/SysNew.hpp" + +class PlayerManager : public SysObject { +public: + /* 00 */ u16 mMaxHealth; + /* 02 */ u16 mHealth; + /* 04 */ s16 mMaxShipHealth; + /* 06 */ s16 mShipHealth; + /* 08 */ u16 mSalvageArmHealth; + /* 0a */ s16 mFlags; + /* 0c */ unk16 mUnk_0c; + /* 0e */ unk8 mUnk_0e; + /* 0f */ unk8 mUnk_0f; + /* 10 */ + + void Save(SaveItemManager *save); + void IncreaseMaxHealth(s16 amount); + void UpdateShipMaxHealth(); + + static void Create(); + static void Destroy(); + PlayerManager(); + ~PlayerManager(); + void Init(bool param1); + void func_ov004_02108008(); +}; + +extern PlayerManager *gPlayerManager; diff --git a/include/Player/TouchControl.hpp b/include/Player/TouchControl.hpp index 47349d28..1301e144 100644 --- a/include/Player/TouchControl.hpp +++ b/include/Player/TouchControl.hpp @@ -1,8 +1,8 @@ #pragma once #include "global.h" -#include "lib/math.h" #include "lib/touch.h" +#include "nds/math.h" #include "types.h" typedef u16 TouchFlags; |
