summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/eur/arm9/overlays/ov000/delinks.txt7
-rw-r--r--config/eur/arm9/overlays/ov000/symbols.txt66
-rw-r--r--config/usa/arm9/overlays/ov000/delinks.txt7
-rw-r--r--config/usa/arm9/overlays/ov000/symbols.txt66
-rw-r--r--include/Actor/Navi/ActorNavi.hpp64
-rw-r--r--include/Actor/Navi/ActorNaviBase.hpp18
-rw-r--r--src/00_Core/Actor/Navi/ActorNavi.cpp32
-rw-r--r--src/04_Load/Actor/Navi/ActorNavi.cpp3
8 files changed, 180 insertions, 83 deletions
diff --git a/config/eur/arm9/overlays/ov000/delinks.txt b/config/eur/arm9/overlays/ov000/delinks.txt
index 46f9a7dc..612ebc21 100644
--- a/config/eur/arm9/overlays/ov000/delinks.txt
+++ b/config/eur/arm9/overlays/ov000/delinks.txt
@@ -30,6 +30,13 @@ src/00_Core/Actor/Dungeon/ActorEventIcon.cpp:
.data start:0x020e2aa0 end:0x020e2b5c
.sbss start:0x020ecda4 end:0x020ecdc4
+src/00_Core/Actor/Navi/ActorNavi.cpp:
+ .text start:0x020b80e0 end:0x020b85d8
+ .init start:0x020e12d8 end:0x020e133c
+ .ctor start:0x020e1f08 end:0x020e1f0c
+ .data start:0x020e6514 end:0x020e6674
+ .sbss start:0x020ee1a0 end:0x020ee1d8
+
src/00_Core/Actor/Navi/ActorNaviBase.cpp:
.text start:0x020b885c end:0x020bb118
.rodata start:0x020dc81c end:0x020dc858
diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt
index 56f493dd..ad3278f9 100644
--- a/config/eur/arm9/overlays/ov000/symbols.txt
+++ b/config/eur/arm9/overlays/ov000/symbols.txt
@@ -2397,33 +2397,33 @@ func_ov000_020b7fe8 kind:function(arm,size=0x14) addr:0x20b7fe8
_ZN13PlayerManager4SaveEP15SaveItemManager kind:function(thumb,size=0x50) addr:0x20b7ffc
_ZN13PlayerManager17IncreaseMaxHealthEs kind:function(thumb,size=0x14) addr:0x20b804c
_ZN13PlayerManager19UpdateShipMaxHealthEv kind:function(thumb,size=0x80) addr:0x20b8060
-func_ov000_020b80e0 kind:function(arm,size=0x30) addr:0x20b80e0
-func_ov000_020b8110 kind:function(arm,size=0x24) addr:0x20b8110
-func_ov000_020b8134 kind:function(arm,size=0x14) addr:0x20b8134
-func_ov000_020b8148 kind:function(arm,size=0x1c) addr:0x20b8148
-func_ov000_020b8164 kind:function(arm,size=0x50) addr:0x20b8164
-func_ov000_020b81b4 kind:function(arm,size=0x40) addr:0x20b81b4
-func_ov000_020b81f4 kind:function(arm,size=0xc) addr:0x20b81f4
-func_ov000_020b8200 kind:function(arm,size=0x10) addr:0x20b8200
-func_ov000_020b8210 kind:function(arm,size=0x38) addr:0x20b8210
-func_ov000_020b8248 kind:function(arm,size=0x38) addr:0x20b8248
-func_ov000_020b8280 kind:function(arm,size=0x8) addr:0x20b8280
-func_ov000_020b8288 kind:function(arm,size=0x8) addr:0x20b8288
-func_ov000_020b8290 kind:function(arm,size=0x2c) addr:0x20b8290
-func_ov000_020b82bc kind:function(arm,size=0x2c) addr:0x20b82bc
-func_ov000_020b82e8 kind:function(arm,size=0x58) addr:0x20b82e8
-func_ov000_020b8340 kind:function(arm,size=0xb8) addr:0x20b8340
-func_ov000_020b83f8 kind:function(arm,size=0x20) addr:0x20b83f8
-func_ov000_020b8418 kind:function(arm,size=0x3c) addr:0x20b8418
-func_ov000_020b8454 kind:function(arm,size=0x24) addr:0x20b8454
-func_ov000_020b8478 kind:function(arm,size=0x24) addr:0x20b8478
-func_ov000_020b849c kind:function(arm,size=0x34) addr:0x20b849c
-func_ov000_020b84d0 kind:function(arm,size=0x8) addr:0x20b84d0
-func_ov000_020b84d8 kind:function(arm,size=0x54) addr:0x20b84d8
-func_ov000_020b852c kind:function(arm,size=0x10) addr:0x20b852c
-func_ov000_020b853c kind:function(arm,size=0x14) addr:0x20b853c
-func_ov000_020b8550 kind:function(arm,size=0x48) addr:0x20b8550
-func_ov000_020b8598 kind:function(arm,size=0x40) addr:0x20b8598
+_ZN9ActorNavi6CreateEv kind:function(arm,size=0x30) addr:0x20b80e0
+_ZN24UnkStruct_ov000_020b8110C2Ev kind:function(arm,size=0x24) addr:0x20b8110
+_ZN24UnkStruct_ov000_020b8110D1Ev kind:function(arm,size=0x14) addr:0x20b8134
+_ZN24UnkStruct_ov000_020b8110D0Ev kind:function(arm,size=0x1c) addr:0x20b8148
+_ZN24UnkStruct_ov000_020b81108vfunc_08EPs kind:function(arm,size=0x50) addr:0x20b8164
+_ZN24UnkStruct_ov000_020b81108vfunc_18EPi kind:function(arm,size=0x40) addr:0x20b81b4
+_ZN24UnkStruct_ov000_020b81108vfunc_14EPt kind:function(arm,size=0xc) addr:0x20b81f4
+_ZN9ActorNavi19func_ov000_020b8200Ev kind:function(arm,size=0x10) addr:0x20b8200
+_ZN9ActorNavi8vfunc_c4Ev kind:function(arm,size=0x38) addr:0x20b8210
+_ZN9ActorNavi8vfunc_c8Ev kind:function(arm,size=0x38) addr:0x20b8248
+_ZN9ActorNavi8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x20b8280
+_ZN9ActorNavi8vfunc_b8Ev kind:function(arm,size=0x8) addr:0x20b8288
+_ZN9ActorNavi8vfunc_d4Ev kind:function(arm,size=0x2c) addr:0x20b8290
+_ZN9ActorNavi8vfunc_d0Ev kind:function(arm,size=0x2c) addr:0x20b82bc
+_ZN9ActorNavi9SetActiveEb kind:function(arm,size=0x58) addr:0x20b82e8
+_ZN9ActorNavi8vfunc_e0Ev kind:function(arm,size=0xb8) addr:0x20b8340
+_ZN9ActorNavi8vfunc_d8Ev kind:function(arm,size=0x20) addr:0x20b83f8
+_ZN9ActorNavi8vfunc_20Eb kind:function(arm,size=0x3c) addr:0x20b8418
+_ZN9ActorNavi8vfunc_ccEPi kind:function(arm,size=0x24) addr:0x20b8454
+_ZN9ActorNavi8vfunc_c0EP5Vec3p kind:function(arm,size=0x24) addr:0x20b8478
+_ZN9ActorNavi8vfunc_e8Ev kind:function(arm,size=0x34) addr:0x20b849c
+_ZN9ActorNavi8vfunc_8cEv kind:function(arm,size=0x8) addr:0x20b84d0
+_ZN9ActorNavi8vfunc_ecEv kind:function(arm,size=0x54) addr:0x20b84d8
+_Z14GetEquipHammerv kind:function(arm,size=0x10) addr:0x20b852c local
+_ZN9ActorNavi19func_ov000_020b853cEv kind:function(arm,size=0x14) addr:0x20b853c
+_ZN9ActorNaviD1Ev kind:function(arm,size=0x48) addr:0x20b8550
+_ZN9ActorNaviD0Ev kind:function(arm,size=0x40) addr:0x20b8598
func_ov000_020b85d8 kind:function(thumb,size=0x28) addr:0x20b85d8
func_ov000_020b8600 kind:function(arm,size=0x10) addr:0x20b8600
func_ov000_020b8610 kind:function(arm,size=0x1c) addr:0x20b8610
@@ -3955,7 +3955,7 @@ __sinit_ov000_020e11d8 kind:function(arm,size=0x34) addr:0x20e11d8
__sinit_ov000_020e120c kind:function(arm,size=0x44) addr:0x20e120c
__sinit_ov000_020e1250 kind:function(arm,size=0x40) addr:0x20e1250
__sinit_ov000_020e1290 kind:function(arm,size=0x48) addr:0x20e1290
-__sinit_ov000_020e12d8 kind:function(arm,size=0x64) addr:0x20e12d8
+__sinit_ActorNavi.cpp kind:function(arm,size=0x64) addr:0x20e12d8
__sinit_ov000_020e133c kind:function(arm,size=0x40) addr:0x20e133c
__sinit_ov000_020e137c kind:function(arm,size=0x798) addr:0x20e137c
__sinit_ov000_020e1b14 kind:function(arm,size=0x40) addr:0x20e1b14
@@ -4956,8 +4956,8 @@ data_ov000_020e6528 kind:data(any) addr:0x20e6528
data_ov000_020e652c kind:data(any) addr:0x20e652c
data_ov000_020e6530 kind:data(any) addr:0x20e6530
data_ov000_020e6534 kind:data(any) addr:0x20e6534
-data_ov000_020e6560 kind:data(any) addr:0x20e6560
-data_ov000_020e6658 kind:data(any) addr:0x20e6658
+_ZTV9ActorNavi kind:data(any) addr:0x20e6560
+_ZTV24UnkStruct_ov000_020b8110 kind:data(any) addr:0x20e6658
data_ov000_020e667c kind:data(any) addr:0x20e667c
data_ov000_020e676c kind:data(any) addr:0x20e676c
data_ov000_020e6770 kind:data(any) addr:0x20e6770
@@ -5875,9 +5875,9 @@ data_ov000_020ee16c kind:bss addr:0x20ee16c
data_ov000_020ee178 kind:bss addr:0x20ee178
data_ov000_020ee184 kind:bss addr:0x20ee184
data_ov000_020ee198 kind:bss addr:0x20ee198
-data_ov000_020ee1a0 kind:bss addr:0x20ee1a0
-data_ov000_020ee1ac kind:bss addr:0x20ee1ac
-data_ov000_020ee1c0 kind:bss addr:0x20ee1c0
+@418 kind:bss addr:0x20ee1a0
+_ZN9ActorNavi5gTypeE kind:bss addr:0x20ee1ac
+@419 kind:bss addr:0x20ee1c0
data_ov000_020ee1cc kind:bss addr:0x20ee1cc
data_ov000_020ee1d8 kind:bss addr:0x20ee1d8
data_ov000_020ee1e4 kind:bss addr:0x20ee1e4
diff --git a/config/usa/arm9/overlays/ov000/delinks.txt b/config/usa/arm9/overlays/ov000/delinks.txt
index ddb30117..bf023a36 100644
--- a/config/usa/arm9/overlays/ov000/delinks.txt
+++ b/config/usa/arm9/overlays/ov000/delinks.txt
@@ -30,6 +30,13 @@ src/00_Core/Actor/Dungeon/ActorEventIcon.cpp:
.data start:0x020e2a40 end:0x020e2afc
.sbss start:0x020ecd44 end:0x020ecd64
+src/00_Core/Actor/Navi/ActorNavi.cpp:
+ .text start:0x020b8080 end:0x020b8578
+ .init start:0x020e1278 end:0x020e12dc
+ .ctor start:0x020e1ea8 end:0x020e1eac
+ .data start:0x020e64b4 end:0x020e6614
+ .sbss start:0x020ee140 end:0x020ee178
+
src/00_Core/Actor/Navi/ActorNaviBase.cpp:
.text start:0x020b87fc end:0x020bb0b8
.rodata start:0x020dc7bc end:0x020dc7f8
diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt
index 1b9d2f65..4b641f48 100644
--- a/config/usa/arm9/overlays/ov000/symbols.txt
+++ b/config/usa/arm9/overlays/ov000/symbols.txt
@@ -2397,33 +2397,33 @@ func_ov000_020b7fe8 kind:function(arm,size=0x14) addr:0x20b7f88
_ZN13PlayerManager4SaveEP15SaveItemManager kind:function(thumb,size=0x50) addr:0x20b7f9c
_ZN13PlayerManager17IncreaseMaxHealthEs kind:function(thumb,size=0x14) addr:0x20b7fec
_ZN13PlayerManager19UpdateShipMaxHealthEv kind:function(thumb,size=0x80) addr:0x20b8000
-func_ov000_020b80e0 kind:function(arm,size=0x30) addr:0x20b8080
-func_ov000_020b8110 kind:function(arm,size=0x24) addr:0x20b80b0
-func_ov000_020b8134 kind:function(arm,size=0x14) addr:0x20b80d4
-func_ov000_020b8148 kind:function(arm,size=0x1c) addr:0x20b80e8
-func_ov000_020b8164 kind:function(arm,size=0x50) addr:0x20b8104
-func_ov000_020b81b4 kind:function(arm,size=0x40) addr:0x20b8154
-func_ov000_020b81f4 kind:function(arm,size=0xc) addr:0x20b8194
-func_ov000_020b8200 kind:function(arm,size=0x10) addr:0x20b81a0
-func_ov000_020b8210 kind:function(arm,size=0x38) addr:0x20b81b0
-func_ov000_020b8248 kind:function(arm,size=0x38) addr:0x20b81e8
-func_ov000_020b8280 kind:function(arm,size=0x8) addr:0x20b8220
-func_ov000_020b8288 kind:function(arm,size=0x8) addr:0x20b8228
-func_ov000_020b8290 kind:function(arm,size=0x2c) addr:0x20b8230
-func_ov000_020b82bc kind:function(arm,size=0x2c) addr:0x20b825c
-func_ov000_020b82e8 kind:function(arm,size=0x58) addr:0x20b8288
-func_ov000_020b8340 kind:function(arm,size=0xb8) addr:0x20b82e0
-func_ov000_020b83f8 kind:function(arm,size=0x20) addr:0x20b8398
-func_ov000_020b8418 kind:function(arm,size=0x3c) addr:0x20b83b8
-func_ov000_020b8454 kind:function(arm,size=0x24) addr:0x20b83f4
-func_ov000_020b8478 kind:function(arm,size=0x24) addr:0x20b8418
-func_ov000_020b849c kind:function(arm,size=0x34) addr:0x20b843c
-func_ov000_020b84d0 kind:function(arm,size=0x8) addr:0x20b8470
-func_ov000_020b84d8 kind:function(arm,size=0x54) addr:0x20b8478
-func_ov000_020b852c kind:function(arm,size=0x10) addr:0x20b84cc
-func_ov000_020b853c kind:function(arm,size=0x14) addr:0x20b84dc
-func_ov000_020b8550 kind:function(arm,size=0x48) addr:0x20b84f0
-func_ov000_020b8598 kind:function(arm,size=0x40) addr:0x20b8538
+_ZN9ActorNavi6CreateEv kind:function(arm,size=0x30) addr:0x20b8080
+_ZN24UnkStruct_ov000_020b8110C2Ev kind:function(arm,size=0x24) addr:0x20b80b0
+_ZN24UnkStruct_ov000_020b8110D1Ev kind:function(arm,size=0x14) addr:0x20b80d4
+_ZN24UnkStruct_ov000_020b8110D0Ev kind:function(arm,size=0x1c) addr:0x20b80e8
+_ZN24UnkStruct_ov000_020b81108vfunc_08EPs kind:function(arm,size=0x50) addr:0x20b8104
+_ZN24UnkStruct_ov000_020b81108vfunc_18EPi kind:function(arm,size=0x40) addr:0x20b8154
+_ZN24UnkStruct_ov000_020b81108vfunc_14EPt kind:function(arm,size=0xc) addr:0x20b8194
+_ZN9ActorNavi19func_ov000_020b8200Ev kind:function(arm,size=0x10) addr:0x20b81a0
+_ZN9ActorNavi8vfunc_c4Ev kind:function(arm,size=0x38) addr:0x20b81b0
+_ZN9ActorNavi8vfunc_c8Ev kind:function(arm,size=0x38) addr:0x20b81e8
+_ZN9ActorNavi8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x20b8220
+_ZN9ActorNavi8vfunc_b8Ev kind:function(arm,size=0x8) addr:0x20b8228
+_ZN9ActorNavi8vfunc_d4Ev kind:function(arm,size=0x2c) addr:0x20b8230
+_ZN9ActorNavi8vfunc_d0Ev kind:function(arm,size=0x2c) addr:0x20b825c
+_ZN9ActorNavi9SetActiveEb kind:function(arm,size=0x58) addr:0x20b8288
+_ZN9ActorNavi8vfunc_e0Ev kind:function(arm,size=0xb8) addr:0x20b82e0
+_ZN9ActorNavi8vfunc_d8Ev kind:function(arm,size=0x20) addr:0x20b8398
+_ZN9ActorNavi8vfunc_20Eb kind:function(arm,size=0x3c) addr:0x20b83b8
+_ZN9ActorNavi8vfunc_ccEPi kind:function(arm,size=0x24) addr:0x20b83f4
+_ZN9ActorNavi8vfunc_c0EP5Vec3p kind:function(arm,size=0x24) addr:0x20b8418
+_ZN9ActorNavi8vfunc_e8Ev kind:function(arm,size=0x34) addr:0x20b843c
+_ZN9ActorNavi8vfunc_8cEv kind:function(arm,size=0x8) addr:0x20b8470
+_ZN9ActorNavi8vfunc_ecEv kind:function(arm,size=0x54) addr:0x20b8478
+_Z14GetEquipHammerv kind:function(arm,size=0x10) addr:0x20b84cc local
+_ZN9ActorNavi19func_ov000_020b853cEv kind:function(arm,size=0x14) addr:0x20b84dc
+_ZN9ActorNaviD1Ev kind:function(arm,size=0x48) addr:0x20b84f0
+_ZN9ActorNaviD0Ev kind:function(arm,size=0x40) addr:0x20b8538
func_ov000_020b85d8 kind:function(thumb,size=0x28) addr:0x20b8578
func_ov000_020b8600 kind:function(arm,size=0x10) addr:0x20b85a0
func_ov000_020b8610 kind:function(arm,size=0x1c) addr:0x20b85b0
@@ -3955,7 +3955,7 @@ __sinit_ov000_020e11d8 kind:function(arm,size=0x34) addr:0x20e1178
__sinit_ov000_020e120c kind:function(arm,size=0x44) addr:0x20e11ac
__sinit_ov000_020e1250 kind:function(arm,size=0x40) addr:0x20e11f0
__sinit_ov000_020e1290 kind:function(arm,size=0x48) addr:0x20e1230
-__sinit_ov000_020e12d8 kind:function(arm,size=0x64) addr:0x20e1278
+__sinit_ActorNavi.cpp kind:function(arm,size=0x64) addr:0x20e1278
__sinit_ov000_020e133c kind:function(arm,size=0x40) addr:0x20e12dc
__sinit_ov000_020e137c kind:function(arm,size=0x798) addr:0x20e131c
__sinit_ov000_020e1b14 kind:function(arm,size=0x40) addr:0x20e1ab4
@@ -4956,8 +4956,8 @@ data_ov000_020e6528 kind:data(any) addr:0x20e64c8
data_ov000_020e652c kind:data(any) addr:0x20e64cc
data_ov000_020e6530 kind:data(any) addr:0x20e64d0
data_ov000_020e6534 kind:data(any) addr:0x20e64d4
-data_ov000_020e6560 kind:data(any) addr:0x20e6500
-data_ov000_020e6658 kind:data(any) addr:0x20e65f8
+_ZTV9ActorNavi kind:data(any) addr:0x20e6500
+_ZTV24UnkStruct_ov000_020b8110 kind:data(any) addr:0x20e65f8
data_ov000_020e667c kind:data(any) addr:0x20e661c
data_ov000_020e676c kind:data(any) addr:0x20e670c
data_ov000_020e6770 kind:data(any) addr:0x20e6710
@@ -5875,9 +5875,9 @@ data_ov000_020ee16c kind:bss addr:0x20ee10c
data_ov000_020ee178 kind:bss addr:0x20ee118
data_ov000_020ee184 kind:bss addr:0x20ee124
data_ov000_020ee198 kind:bss addr:0x20ee138
-data_ov000_020ee1a0 kind:bss addr:0x20ee140
-data_ov000_020ee1ac kind:bss addr:0x20ee14c
-data_ov000_020ee1c0 kind:bss addr:0x20ee160
+@418 kind:bss addr:0x20ee140
+_ZN9ActorNavi5gTypeE kind:bss addr:0x20ee14c
+@419 kind:bss addr:0x20ee160
data_ov000_020ee1cc kind:bss addr:0x20ee16c
data_ov000_020ee1d8 kind:bss addr:0x20ee178
data_ov000_020ee1e4 kind:bss addr:0x20ee184
diff --git a/include/Actor/Navi/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp
index 98ebcf51..0d0b2fb5 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 void vfunc_b4() 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..2af8acdf 100644
--- a/include/Actor/Navi/ActorNaviBase.hpp
+++ b/include/Actor/Navi/ActorNaviBase.hpp
@@ -10,6 +10,7 @@
class ActorNaviBase_Unk1 {};
class ActorNaviBase : public Actor {
+public:
/* 000 (base) */
/* 158 */ Vec3p mUnk_158;
/* 164 */ unk32 mUnk_164;
@@ -33,22 +34,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;
diff --git a/src/00_Core/Actor/Navi/ActorNavi.cpp b/src/00_Core/Actor/Navi/ActorNavi.cpp
new file mode 100644
index 00000000..5c4c18f4
--- /dev/null
+++ b/src/00_Core/Actor/Navi/ActorNavi.cpp
@@ -0,0 +1,32 @@
+#include "Actor/Navi/ActorNavi.hpp"
+#include "Player/EquipHammer.hpp"
+
+ActorType ActorNavi::gType = ActorType(ActorTypeId_Navi, (ActorCreateFunc) ActorNavi::Create, NULL);
+UnkStruct_ov000_020b8110 data_ov000_020ee1cc;
+
+ActorNavi *ActorNavi::Create() {}
+UnkStruct_ov000_020b8110::UnkStruct_ov000_020b8110() :
+ UnkStruct_ov000_020beba8(7) {}
+UnkStruct_ov000_020b8110::~UnkStruct_ov000_020b8110() {}
+void UnkStruct_ov000_020b8110::vfunc_08(unk16 *param1) {}
+void UnkStruct_ov000_020b8110::vfunc_18(s32 *param1) {}
+void UnkStruct_ov000_020b8110::vfunc_14(u16 *param1) {}
+void ActorNavi::func_ov000_020b8200() {}
+void ActorNavi::vfunc_c4() {}
+void ActorNavi::vfunc_c8() {}
+void ActorNavi::vfunc_b4() {}
+s32 ActorNavi::vfunc_b8() {}
+void ActorNavi::vfunc_d4() {}
+void ActorNavi::vfunc_d0() {}
+void ActorNavi::SetActive(bool active) {}
+void ActorNavi::vfunc_e0() {}
+void ActorNavi::vfunc_d8() {}
+void ActorNavi::vfunc_20(bool param1) {}
+bool ActorNavi::vfunc_cc(unk32 *param1) {}
+bool ActorNavi::vfunc_c0(Vec3p *param1) {}
+void ActorNavi::vfunc_e8() {}
+bool ActorNavi::vfunc_8c() {}
+void ActorNavi::vfunc_ec() {}
+EquipHammer *GetEquipHammer() {}
+void ActorNavi::func_ov000_020b853c() {}
+ActorNavi::~ActorNavi() {}
diff --git a/src/04_Load/Actor/Navi/ActorNavi.cpp b/src/04_Load/Actor/Navi/ActorNavi.cpp
new file mode 100644
index 00000000..12939c04
--- /dev/null
+++ b/src/04_Load/Actor/Navi/ActorNavi.cpp
@@ -0,0 +1,3 @@
+#include "Actor/Navi/ActorNavi.hpp"
+
+ActorNavi::ActorNavi() {}