summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/Actor/Actor.hpp2
-rw-r--r--include/Actor/ActorType.hpp1
-rw-r--r--include/Actor/Dungeon/ActorActionObject.hpp20
-rw-r--r--include/Actor/Navi/ActorForceNavi.hpp15
-rw-r--r--include/Actor/Navi/ActorNavi.hpp64
-rw-r--r--include/Actor/Navi/ActorNaviBase.hpp37
-rw-r--r--include/Actor/Navi/ActorWisdomNavi.hpp15
-rw-r--r--include/Item/ItemManager.hpp15
-rw-r--r--include/Player/PlayerBase.hpp2
-rw-r--r--include/Player/PlayerLinkBase.hpp2
10 files changed, 135 insertions, 38 deletions
diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp
index 2a30a7c1..c22f086e 100644
--- a/include/Actor/Actor.hpp
+++ b/include/Actor/Actor.hpp
@@ -227,7 +227,7 @@ public:
bool func_ov00_020c195c();
bool func_ov00_020c198c();
void KillPickupItemActors();
- void func_Ov00_020c1bfc(s32 param1);
+ bool func_ov00_020c1bfc(s32 param1);
void func_ov00_020c1c20(s32 param1, unk32 param2);
bool IsNearLink();
void func_ov00_020c1cf8();
diff --git a/include/Actor/ActorType.hpp b/include/Actor/ActorType.hpp
index 7842da14..f71c533b 100644
--- a/include/Actor/ActorType.hpp
+++ b/include/Actor/ActorType.hpp
@@ -41,6 +41,7 @@ enum ActorTypeId_ {
ActorTypeId_SmallKey = 'NKEY',
ActorTypeId_SwitchObject = 'SWOB',
ActorTypeId_EventIcon = 'EVIC',
+ ActorTypeId_ActionObject = 'ACOB',
ActorTypeId_Sandworm = 'MLDW',
ActorTypeId_Tektite = 'TEKT',
diff --git a/include/Actor/Dungeon/ActorActionObject.hpp b/include/Actor/Dungeon/ActorActionObject.hpp
new file mode 100644
index 00000000..0bf35dfb
--- /dev/null
+++ b/include/Actor/Dungeon/ActorActionObject.hpp
@@ -0,0 +1,20 @@
+#pragma once
+
+#include "Actor/Actor.hpp"
+
+class ActorActionObject : public Actor {
+public:
+ static ActorType gType;
+
+ /* 000 (base) */
+ /* 158 */
+
+ /* 00 */ virtual ~ActorActionObject() 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 ActorActionObject *Create();
+ ActorActionObject();
+};
diff --git a/include/Actor/Navi/ActorForceNavi.hpp b/include/Actor/Navi/ActorForceNavi.hpp
new file mode 100644
index 00000000..18a124f4
--- /dev/null
+++ b/include/Actor/Navi/ActorForceNavi.hpp
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "Actor/Navi/ActorNaviBase.hpp"
+
+class ActorForceNavi : public ActorNaviBase {
+public:
+ static ActorType gType;
+
+ /* 000 (base) */
+ /* 294 */
+
+ /* b4 */ virtual FairyId GetFairyId() override;
+
+ static ActorForceNavi *Create();
+};
diff --git a/include/Actor/Navi/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp
index 98ebcf51..86774de4 100644
--- a/include/Actor/Navi/ActorNavi.hpp
+++ b/include/Actor/Navi/ActorNavi.hpp
@@ -1,3 +1,65 @@
#pragma once
-class ActorNavi;
+#include "Actor/Navi/ActorNaviBase.hpp"
+#include "Unknown/UnkStruct_ov000_020beba8.hpp"
+
+class UnkStruct_ov000_020b8110 : public UnkStruct_ov000_020beba8 {
+public:
+ /* 0 (base) */
+ /* c */
+
+ /* 00 */ virtual ~UnkStruct_ov000_020b8110() override;
+ /* 08 */ virtual void vfunc_08(unk16 *param1) override;
+ /* 14 */ virtual void vfunc_14(u16 *param1) override;
+ /* 18 */ virtual void vfunc_18(s32 *param1) override;
+ /* 1c */
+
+ UnkStruct_ov000_020b8110();
+};
+
+class ActorNavi : public ActorNaviBase {
+public:
+ static ActorType gType;
+
+ /* 000 (base) */
+ /* 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 ~ActorNavi() override;
+ /* 08 */ virtual bool vfunc_08() override;
+ /* 20 */ virtual void vfunc_20(bool param1) override;
+ /* 8c */ virtual bool vfunc_8c() override;
+ /* b4 */ virtual FairyId GetFairyId() override;
+ /* b8 */ virtual s32 vfunc_b8() override;
+ /* c0 */ virtual bool vfunc_c0(Vec3p *param1) override;
+ /* c4 */ virtual void vfunc_c4() override;
+ /* c8 */ virtual void vfunc_c8() override;
+ /* cc */ virtual bool vfunc_cc(unk32 *param1) override;
+ /* d0 */ virtual void vfunc_d0() override;
+ /* d4 */ virtual void vfunc_d4() override;
+ /* d8 */ virtual void vfunc_d8() override;
+ /* dc */ virtual void SetActive(bool active) override;
+ /* e0 */ virtual void vfunc_e0() override;
+ /* e8 */ virtual void vfunc_e8() override;
+ /* ec */ virtual void vfunc_ec() override;
+
+ static ActorNavi *Create();
+ void func_ov000_020b8200();
+ void func_ov000_020b853c();
+
+ ActorNavi();
+};
diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp
index f3a45e8a..4c2a20cf 100644
--- a/include/Actor/Navi/ActorNaviBase.hpp
+++ b/include/Actor/Navi/ActorNaviBase.hpp
@@ -7,20 +7,30 @@
#include "Player/EquipHammer.hpp"
#include "Render/ModelRender.hpp"
+typedef s32 FairyId;
+enum FairyId_ {
+ FairyId_None = -1,
+ FairyId_Courage = 0,
+ FairyId_Power = 1,
+ FairyId_Wisdom = 2,
+ FairyId_COUNT = 3,
+};
+
class ActorNaviBase_Unk1 {};
class ActorNaviBase : public Actor {
+public:
/* 000 (base) */
/* 158 */ Vec3p mUnk_158;
/* 164 */ unk32 mUnk_164;
/* 168 */ ModelRender mUnk_168;
/* 1c4 */ unk8 mUnk_1c4[0xc];
- /* 1d0 */ void *mUnk_1d0;
- /* 1d4 */ unk8 mUnk_1d4[0x30];
+ /* 1d0 */ unk8 mUnk_1d0[0x24];
+ /* 1f4 */ unk8 mUnk_1f4[0x20];
/* 214 */ unk16 mUnk_214;
/* 216 */ unk8 mUnk_216[0xc];
/* 222 */ unk16 mUnk_222;
- /* 224 */ unk8 mUnk_224[0x18];
+ /* 224 */ unk8 mUnk_224[0x28];
/* 24c */ unk32 mUnk_24c;
/* 250 */ unk32 mUnk_250;
/* 254 */ unk32 mUnk_254;
@@ -33,22 +43,7 @@ class ActorNaviBase : public Actor {
/* 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 */
+ /* 294 */
/* 00 */ virtual ~ActorNaviBase() override;
/* 08 */ virtual bool vfunc_08() override;
@@ -65,9 +60,7 @@ class ActorNaviBase : public Actor {
/* 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;
+ /* b4 */ virtual FairyId GetFairyId() = 0;
/* b8 */ virtual s32 vfunc_b8();
/* bc */ virtual bool vfunc_bc(unk32 param1, unk8 param2, s32 param3);
/* c0 */ virtual bool vfunc_c0(Vec3p *param1);
diff --git a/include/Actor/Navi/ActorWisdomNavi.hpp b/include/Actor/Navi/ActorWisdomNavi.hpp
new file mode 100644
index 00000000..fb6d2641
--- /dev/null
+++ b/include/Actor/Navi/ActorWisdomNavi.hpp
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "Actor/Navi/ActorNaviBase.hpp"
+
+class ActorWisdomNavi : public ActorNaviBase {
+public:
+ static ActorType gType;
+
+ /* 000 (base) */
+ /* 294 */
+
+ /* b4 */ virtual FairyId GetFairyId() override;
+
+ static ActorWisdomNavi *Create();
+};
diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp
index c0a84aa7..9e473fc2 100644
--- a/include/Item/ItemManager.hpp
+++ b/include/Item/ItemManager.hpp
@@ -8,7 +8,7 @@ extern "C" {
#include "nds/math.h"
#include "types.h"
-#include "Actor/Navi/ActorNavi.hpp"
+#include "Actor/Navi/ActorNaviBase.hpp"
#include "Item/Item.hpp"
#include "Player/EquipItem.hpp"
#include "Render/ModelRender.hpp"
@@ -20,15 +20,6 @@ extern "C" {
#define MAX_AMMO_UPGRADE 2
#define MAX_UNK_0BA 9
-typedef s32 FairyId;
-enum FairyId_ {
- FairyId_None = -1,
- FairyId_Courage = 0,
- FairyId_Power = 1,
- FairyId_Wisdom = 2,
- FairyId_COUNT = 3,
-};
-
typedef u32 ItemModelId;
enum ItemModelId_ {
ItemModelId_OshusSword, // swA
@@ -66,7 +57,7 @@ private:
/* 008 */ ItemFlag mForcedItem; // game crashes when any item besides this one is equipped
/* 00c */ u32 mHourglassSandFrames;
/* 010 */ FairyId mEquippedFairy;
- /* 014 */ ActorNavi *mFairies[FairyId_COUNT];
+ /* 014 */ ActorNaviBase *mFairies[FairyId_COUNT];
/* 020 */ u16 mEquipLoadTimer;
/* 022 */ u16 mNumRupees;
/* 024 */ u8 mNumGems[Gem_COUNT];
@@ -114,7 +105,7 @@ public:
// Fairy
FairyId GetEquippedFairy() const;
- ActorNavi *GetFairy(FairyId id) const;
+ ActorNaviBase *GetFairy(FairyId id) const;
u32 GetActiveFairyLevel(FairyId id) const;
u32 GetFairyLevel(FairyId id) const;
void SpawnFairies();
diff --git a/include/Player/PlayerBase.hpp b/include/Player/PlayerBase.hpp
index 354e1078..ba4b3deb 100644
--- a/include/Player/PlayerBase.hpp
+++ b/include/Player/PlayerBase.hpp
@@ -29,7 +29,7 @@ public:
/* 0c */ virtual bool CanMove();
/* 10 */ virtual void vfunc_10(Cylinder *param1) = 0;
/* 14 */ virtual void vfunc_14(Cylinder *param1) = 0;
- /* 18 */ virtual void vfunc_18() = 0;
+ /* 18 */ virtual bool vfunc_18(s32 param1) = 0;
/* 1c */ virtual void Init() = 0;
/* 20 */ virtual void vfunc_20() = 0;
/* 24 */ virtual void UpdatePos() = 0;
diff --git a/include/Player/PlayerLinkBase.hpp b/include/Player/PlayerLinkBase.hpp
index 2a208365..b5bf77ed 100644
--- a/include/Player/PlayerLinkBase.hpp
+++ b/include/Player/PlayerLinkBase.hpp
@@ -50,7 +50,7 @@ public:
/* 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;
+ /* 18 */ virtual bool vfunc_18(s32 param1) override;
/* 1c */ virtual void Init() override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void UpdatePos() override;