summaryrefslogtreecommitdiff
path: root/include/Actor
diff options
context:
space:
mode:
Diffstat (limited to 'include/Actor')
-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
7 files changed, 130 insertions, 24 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 092d8549..fe7b2cc6 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();
+};