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/Map/MapOverworld.hpp75
-rw-r--r--include/Player/PlayerBase.hpp2
-rw-r--r--include/Player/PlayerLinkBase.hpp2
-rw-r--r--include/System/OverlayManager.hpp1
-rw-r--r--include/Unknown/UnkStruct_ov000_020c0c08.hpp21
13 files changed, 232 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 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();
+};
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/Map/MapOverworld.hpp b/include/Map/MapOverworld.hpp
new file mode 100644
index 00000000..482b3ad1
--- /dev/null
+++ b/include/Map/MapOverworld.hpp
@@ -0,0 +1,75 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "Map/MapBase.hpp"
+#include "Render/ModelRender.hpp"
+#include "Unknown/UnkStruct_ov000_020c0c08.hpp"
+
+class MapOverworld_Unk1 : public UnkStruct_ov000_020c0c08 {
+public:
+ /* 00 (base) */
+ /* 24 */
+
+ MapOverworld_Unk1(u32 param1, u8 *param2, unk32 param3);
+};
+
+class MapOverworld : public MapBase {
+public:
+ /* 000 (base) */
+ /* 1b0 */ void *mUnk_1b0;
+ /* 1b4 */ unk8 mUnk_1b4;
+ /* 1b5 */ unk8 mUnk_1b5;
+ /* 1b6 */ unk8 mUnk_1b6;
+ /* 1b7 */ unk8 mUnk_1b7;
+ /* 1b8 */ u8 mUnk_1b8;
+ /* 1b9 */ unk8 mUnk_1b9;
+ /* 1ba */ unk8 mUnk_1ba;
+ /* 1bb */ unk8 mUnk_1bb;
+ /* 1bc */ s32 mUnk_1bc;
+ /* 1c0 */ ModelRender *mUnk_1c0;
+ /* 1c4 */ void *mUnk_1c4;
+ /* 1c8 */ void *mUnk_1c8;
+ /* 1cc */ unk8 mUnk_1cc;
+ /* 1cd */ unk8 mUnk_1cd;
+ /* 1ce */ unk8 mUnk_1ce[0x2];
+ /* 1d0 */ unk32 mUnk_1d0;
+ /* 1d4 */ unk32 mUnk_1d4;
+ /* 1d8 */ s16 mUnk_1d8;
+ /* 1da */ s16 mUnk_1da;
+ /* 1dc */
+
+ /* 00 */ virtual ~MapOverworld() override;
+ /* 08 */ virtual void vfunc_08(u32 param_2, u32 param_3, Course *param_4) override;
+ /* 14 */ virtual void vfunc_14() override;
+ /* 1c */ virtual void vfunc_1c(bool param_2) override;
+ /* 20 */ virtual void vfunc_20(s32 param_2) override;
+ /* 2c */ virtual void vfunc_2c() override;
+ /* 4c */ virtual void vfunc_4c() override;
+ /* 54 */ virtual unk32 vfunc_54() override;
+ /* 58 */ virtual unk32 vfunc_58() override;
+ /* 5c */ virtual unk32 vfunc_5c() override;
+ /* 60 */ virtual unk32 vfunc_60() override;
+ /* 64 */ virtual unk32 vfunc_64() override;
+ /* 78 */ virtual unk32 vfunc_78() override;
+ /* 7c */ virtual unk32 vfunc_7c() override;
+ /* 80 */ virtual unk32 vfunc_80() override;
+ /* 94 */ virtual void vfunc_94() override;
+ /* 98 */ virtual void vfunc_98() override;
+ /* a4 */ virtual unk32 vfunc_a4() override;
+ /* b0 */ virtual unk8 vfunc_b0(unk32 param_2, unk32 param_3) override;
+ /* bc */ virtual void vfunc_bc() override;
+ /* c0 */ virtual void vfunc_c0() override;
+ /* c4 */
+
+ MapOverworld(u32 width, u32 height);
+ void func_ov018_0215bfc8();
+ u32 func_ov018_0215c34c();
+ u32 func_ov018_0215c368();
+ s32 func_ov018_0215c380(u8 *param1);
+ void func_ov018_0215c650();
+ void func_ov018_0215c6ac();
+ void func_ov018_0215c6d0();
+ void func_ov018_0215c9ac();
+};
diff --git a/include/Player/PlayerBase.hpp b/include/Player/PlayerBase.hpp
index f813d770..f7caf604 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;
diff --git a/include/System/OverlayManager.hpp b/include/System/OverlayManager.hpp
index 636208fc..4c83bbe4 100644
--- a/include/System/OverlayManager.hpp
+++ b/include/System/OverlayManager.hpp
@@ -6,6 +6,7 @@
typedef u32 OverlayId;
enum OverlayId_ {
+ OverlayId_None = -1,
OverlayId_Core,
OverlayId_01,
OverlayId_02,
diff --git a/include/Unknown/UnkStruct_ov000_020c0c08.hpp b/include/Unknown/UnkStruct_ov000_020c0c08.hpp
new file mode 100644
index 00000000..69054538
--- /dev/null
+++ b/include/Unknown/UnkStruct_ov000_020c0c08.hpp
@@ -0,0 +1,21 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "System/SysNew.hpp"
+#include "Unknown/UnkStruct_0202e1a0.hpp"
+
+class UnkStruct_ov000_020c0c08 : public SysObject {
+public:
+ /* 00 (vtable) */
+ /* 04 */ unk32 mUnk_04;
+ /* 08 */ u8 *mUnk_08;
+ /* 0c */ UnkStruct_0202e1a0 mUnk_0c;
+ /* 24 */
+
+ /* 00 */ virtual ~UnkStruct_ov000_020c0c08();
+ /* 08 */
+
+ UnkStruct_ov000_020c0c08(unk32 param1, u8 *param2);
+};