summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYanis002 <35189056+Yanis002@users.noreply.github.com>2025-02-08 12:40:01 +0100
committerYanis002 <35189056+Yanis002@users.noreply.github.com>2025-02-08 12:40:01 +0100
commitbd747975ff0197043a4e2c655cd3bd9d4874d2e8 (patch)
tree51cc38b1dc8e09ef4478f9c49038b7621188663e
parentcf757250b0b5b2f340a73ad83bbbbf7c2994d27d (diff)
cleanup actornavibase and match `ActorNavi::func_ov059_0219b020`
-rw-r--r--config/eur/arm9/overlays/ov059/symbols.txt14
-rw-r--r--include/Actor/Navi/ActorNavi.hpp24
-rw-r--r--include/Actor/Navi/ActorNaviBase.hpp27
-rw-r--r--src/00_Core/Actor/Navi/ActorNaviBase.cpp2
-rw-r--r--src/59_Hammer/Actor/Navi/ActorNaviBase.cpp34
5 files changed, 61 insertions, 40 deletions
diff --git a/config/eur/arm9/overlays/ov059/symbols.txt b/config/eur/arm9/overlays/ov059/symbols.txt
index 6e50d6e2..73a25090 100644
--- a/config/eur/arm9/overlays/ov059/symbols.txt
+++ b/config/eur/arm9/overlays/ov059/symbols.txt
@@ -16,13 +16,13 @@ _ZN13LinkStateItem19func_ov059_0219907cEv kind:function(arm,size=0x28) addr:0x21
_ZN13LinkStateItem19func_ov059_021990a4Ev kind:function(arm,size=0x268) addr:0x21990a4
_Z14GetEquipHammerv kind:function(arm,size=0x10) addr:0x219930c
_ZN13LinkStateItem15StopUsingHammerEv kind:function(arm,size=0x20) addr:0x219931c
-_ZN13ActorNaviBase19func_ov059_0219933cEj kind:function(arm,size=0xd70) addr:0x219933c
-_ZN13ActorNaviBase19func_ov059_0219a0acEv kind:function(arm,size=0x95c) addr:0x219a0ac
-_ZN13ActorNaviBase19func_ov059_0219aa08Ev kind:function(arm,size=0x1a0) addr:0x219aa08
-_ZN13ActorNaviBase19func_ov059_0219aba8Ej kind:function(arm,size=0x36c) addr:0x219aba8
-_ZN13ActorNaviBase19func_ov059_0219af14Ev kind:function(arm,size=0xb0) addr:0x219af14
-_ZN13ActorNaviBase19func_ov059_0219afc4Ev kind:function(arm,size=0x5c) addr:0x219afc4
-_ZN13ActorNaviBase19func_ov059_0219b020Ev kind:function(arm,size=0xf0) addr:0x219b020
+_ZN9ActorNavi19func_ov059_0219933cEj kind:function(arm,size=0xd70) addr:0x219933c
+_ZN9ActorNavi19func_ov059_0219a0acEv kind:function(arm,size=0x95c) addr:0x219a0ac
+_ZN9ActorNavi19func_ov059_0219aa08Ev kind:function(arm,size=0x1a0) addr:0x219aa08
+_ZN9ActorNavi19func_ov059_0219aba8Ej kind:function(arm,size=0x36c) addr:0x219aba8
+_ZN9ActorNavi19func_ov059_0219af14Ev kind:function(arm,size=0xb0) addr:0x219af14
+_ZN9ActorNavi19func_ov059_0219afc4Ev kind:function(arm,size=0x5c) addr:0x219afc4
+_ZN9ActorNavi19func_ov059_0219b020Ev kind:function(arm,size=0xf0) addr:0x219b020
data_ov059_0219b110 kind:data(any) addr:0x219b110
data_ov059_0219b140 kind:data(any) addr:0x219b140
data_ov059_0219b144 kind:data(any) addr:0x219b144
diff --git a/include/Actor/Navi/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp
index dab24701..5604893c 100644
--- a/include/Actor/Navi/ActorNavi.hpp
+++ b/include/Actor/Navi/ActorNavi.hpp
@@ -3,5 +3,29 @@
#include "Actor/Navi/ActorNaviBase.hpp"
class ActorNavi : public ActorNaviBase {
+public:
+ /* 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 */ u8 mUnk_3c0[0x8];
+ /* 3c8 */
+ 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/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp
index 6fae5e7e..7df4559f 100644
--- a/include/Actor/Navi/ActorNaviBase.hpp
+++ b/include/Actor/Navi/ActorNaviBase.hpp
@@ -34,22 +34,7 @@ public:
/* 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 */ u8 mUnk_3c0[0x8];
- /* 3c8 */
+ /* 294 */
/* 00 */ virtual ~ActorNaviBase() override;
/* 08 */ virtual bool vfunc_08() override;
@@ -78,7 +63,7 @@ public:
/* d0 */ virtual void vfunc_d0();
/* d4 */ virtual void vfunc_d4();
/* d8 */ virtual void vfunc_d8();
- /* dc */ virtual void SetActive(bool active);
+ /* dc */ virtual void SetActive(unk32 active);
/* e0 */ virtual void vfunc_e0();
/* e4 */ virtual void vfunc_e4();
/* e8 */ virtual void vfunc_e8();
@@ -103,12 +88,4 @@ public:
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/src/00_Core/Actor/Navi/ActorNaviBase.cpp b/src/00_Core/Actor/Navi/ActorNaviBase.cpp
index 677d677b..0c681c70 100644
--- a/src/00_Core/Actor/Navi/ActorNaviBase.cpp
+++ b/src/00_Core/Actor/Navi/ActorNaviBase.cpp
@@ -12,7 +12,7 @@ void ActorNaviBase::func_ov000_020b8c50() {}
void ActorNaviBase::func_ov000_020b8c98(unk32 param1, unk32 param2, unk32 param3) {}
void ActorNaviBase::vfunc_d4() {}
void ActorNaviBase::vfunc_d8() {}
-void ActorNaviBase::SetActive(bool active) {}
+void ActorNaviBase::SetActive(unk32 active) {}
void ActorNaviBase::TeleportAboveLink() {}
void ActorNaviBase::vfunc_e0() {}
void ActorNaviBase::vfunc_e4() {}
diff --git a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp
index 109a14b4..f272c4e0 100644
--- a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp
+++ b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp
@@ -1,9 +1,29 @@
#include "Actor/Navi/ActorNaviBase.hpp"
+#include "Actor/Navi/ActorNavi.hpp"
+#include "Player/PlayerControl.hpp"
+#include "Item/ItemManager.hpp"
-bool ActorNaviBase::func_ov059_0219933c(u32 param1) {}
-void ActorNaviBase::func_ov059_0219a0ac() {}
-void ActorNaviBase::func_ov059_0219aa08() {}
-void ActorNaviBase::func_ov059_0219aba8(u32 param1) {}
-bool ActorNaviBase::func_ov059_0219af14() {}
-bool ActorNaviBase::func_ov059_0219afc4() {}
-void ActorNaviBase::func_ov059_0219b020() {}
+ARM bool ActorNavi::func_ov059_0219933c(u32 param1) {}
+ARM void ActorNavi::func_ov059_0219a0ac() {}
+ARM void ActorNavi::func_ov059_0219aa08() {}
+ARM void ActorNavi::func_ov059_0219aba8(u32 param1) {}
+ARM bool ActorNavi::func_ov059_0219af14() {}
+ARM bool ActorNavi::func_ov059_0219afc4() {}
+
+ARM void ActorNavi::func_ov059_0219b020() {
+
+ if (gItemManager->GetEquippedFairy() != FairyId_Courage) {
+ ItemManager* itemMgr = gItemManager;
+
+ this->mPrevPos = this->mUnk_158 = this->mPos = itemMgr->GetFairy(itemMgr->GetEquippedFairy())->mPos;
+ } else {
+ this->mUnk_158 = this->mPos;
+ }
+
+ gPlayerControl->mAimWorld = this->mUnk_158;
+
+ this->mHammer = GetEquipHammer();
+ this->mUnk_3c0[0] = 0x0;
+ this->mUnk_3c0[2] = 0x0;
+ this->SetActive(3);
+}