summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2025-01-25 14:35:02 +0100
committerAetias <aetias@outlook.com>2025-01-25 14:35:02 +0100
commitaecd9545577a9faf3fe8a578a64872aa4b93a4cd (patch)
tree3e9470e0c440660687d71101e873d3d07c83bbbd
parent1983e335f6a53d78cadc2fcf0ae683c773334369 (diff)
Move ov004 documentation from Ghidra
-rw-r--r--config/eur/arm9/dtcm/symbols.txt2
-rw-r--r--config/eur/arm9/overlays/ov000/symbols.txt8
-rw-r--r--config/eur/arm9/overlays/ov004/symbols.txt310
-rw-r--r--config/usa/arm9/dtcm/symbols.txt2
-rw-r--r--config/usa/arm9/overlays/ov000/symbols.txt8
-rw-r--r--config/usa/arm9/overlays/ov004/symbols.txt310
-rw-r--r--include/Actor/ActorManager.hpp12
-rw-r--r--include/Actor/Navi/ActorNaviBase.hpp5
-rw-r--r--include/Cutscene/CutsceneHandler.hpp6
-rw-r--r--include/DTCM/UnkStruct_027e103c.hpp12
-rw-r--r--include/Debug/DebugHierarchy.hpp4
-rw-r--r--include/Debug/DebugHierarchyBase.hpp1
-rw-r--r--include/Item/ItemManager.hpp7
-rw-r--r--include/Item/ItemModelLoader.hpp3
-rw-r--r--include/Map/Course.hpp9
-rw-r--r--include/Map/MapBase.hpp8
-rw-r--r--include/Map/MapData.hpp6
-rw-r--r--include/Map/MapManager.hpp10
-rw-r--r--include/Player/LinkStateBase.hpp2
-rw-r--r--include/Player/LinkStateCutscene.hpp2
-rw-r--r--include/Player/LinkStateDamage.hpp2
-rw-r--r--include/Player/LinkStateFollow.hpp2
-rw-r--r--include/Player/LinkStateInteract.hpp2
-rw-r--r--include/Player/LinkStateItem.hpp2
-rw-r--r--include/Player/LinkStateMove.hpp2
-rw-r--r--include/Player/LinkStateRoll.hpp2
-rw-r--r--include/Player/PlayerBase.hpp2
-rw-r--r--include/Player/PlayerControl.hpp8
-rw-r--r--include/Player/PlayerControlData.hpp2
-rw-r--r--include/Player/PlayerLinkBase.hpp2
-rw-r--r--include/Player/PlayerManager.hpp (renamed from include/Player/HealthManager.hpp)11
-rw-r--r--include/Save/AdventureFlags.hpp10
-rw-r--r--src/00_Core/Item/ItemManager.cpp4
-rw-r--r--src/00_Core/Map/MapData.cpp2
-rw-r--r--src/00_Core/Player/HealthManager.cpp5
-rw-r--r--src/00_Core/Player/PlayerManager.cpp5
-rw-r--r--src/04_Load/Actor/ActorManager.cpp13
-rw-r--r--src/04_Load/Actor/Navi/ActorNaviBase.cpp6
-rw-r--r--src/04_Load/Cutscene/CutsceneHandler.cpp6
-rw-r--r--src/04_Load/DTCM/UnkStruct_027e103c.cpp14
-rw-r--r--src/04_Load/Debug/DebugHierarchy.cpp3
-rw-r--r--src/04_Load/Item/ItemManager.cpp11
-rw-r--r--src/04_Load/Item/ItemModelLoader.cpp4
-rw-r--r--src/04_Load/Map/Course.cpp10
-rw-r--r--src/04_Load/Map/MapBase.cpp20
-rw-r--r--src/04_Load/Map/MapManager.cpp11
-rw-r--r--src/04_Load/Player/EquipItem.cpp5
-rw-r--r--src/04_Load/Player/EquipShield.cpp4
-rw-r--r--src/04_Load/Player/EquipSword.cpp4
-rw-r--r--src/04_Load/Player/LinkStateBase.cpp5
-rw-r--r--src/04_Load/Player/LinkStateCutscene.cpp5
-rw-r--r--src/04_Load/Player/LinkStateDamage.cpp6
-rw-r--r--src/04_Load/Player/LinkStateFollow.cpp5
-rw-r--r--src/04_Load/Player/LinkStateInteract.cpp5
-rw-r--r--src/04_Load/Player/LinkStateItem.cpp5
-rw-r--r--src/04_Load/Player/LinkStateMove.cpp5
-rw-r--r--src/04_Load/Player/LinkStateRoll.cpp5
-rw-r--r--src/04_Load/Player/PlayerBase.cpp4
-rw-r--r--src/04_Load/Player/PlayerControl.cpp9
-rw-r--r--src/04_Load/Player/PlayerControlData.cpp7
-rw-r--r--src/04_Load/Player/PlayerLinkBase.cpp6
-rw-r--r--src/04_Load/Player/PlayerManager.cpp8
-rw-r--r--src/04_Load/Save/AdventureFlags.cpp11
63 files changed, 653 insertions, 334 deletions
diff --git a/config/eur/arm9/dtcm/symbols.txt b/config/eur/arm9/dtcm/symbols.txt
index f2f7f0a0..6fe927d5 100644
--- a/config/eur/arm9/dtcm/symbols.txt
+++ b/config/eur/arm9/dtcm/symbols.txt
@@ -134,7 +134,7 @@ gPlayerAngle kind:bss addr:0x27e0fac
data_027e0fb0 kind:bss addr:0x27e0fb0
gItemManager kind:bss addr:0x27e0fb4
gPlayerControl kind:bss addr:0x27e0fb8
-gHealthManager kind:bss addr:0x27e0fbc
+gPlayerManager kind:bss addr:0x27e0fbc
data_027e0fc0 kind:bss addr:0x27e0fc0
gItemModelLoader kind:bss addr:0x27e0fc4
gPlayerLink kind:bss addr:0x27e0fc8
diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt
index ceadcd0a..d4f2622a 100644
--- a/config/eur/arm9/overlays/ov000/symbols.txt
+++ b/config/eur/arm9/overlays/ov000/symbols.txt
@@ -2394,9 +2394,9 @@ func_ov000_020b7ee8 kind:function(arm,size=0x40) addr:0x20b7ee8
func_ov000_020b7f28 kind:function(arm,size=0xa4) addr:0x20b7f28
func_ov000_020b7fcc kind:function(arm,size=0x1c) addr:0x20b7fcc
func_ov000_020b7fe8 kind:function(arm,size=0x14) addr:0x20b7fe8
-_ZN13HealthManager4SaveEP15SaveItemManager kind:function(thumb,size=0x50) addr:0x20b7ffc
-_ZN13HealthManager17IncreaseMaxHealthEs kind:function(thumb,size=0x14) addr:0x20b804c
-_ZN13HealthManager19UpdateShipMaxHealthEv kind:function(thumb,size=0x80) addr:0x20b8060
+_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
@@ -2966,7 +2966,7 @@ func_ov000_020c4010 kind:function(arm,size=0x4) addr:0x20c4010
func_ov000_020c4014 kind:function(arm,size=0x4) addr:0x20c4014
func_ov000_020c4018 kind:function(arm,size=0x4) addr:0x20c4018
func_ov000_020c401c kind:function(arm,size=0x2c) addr:0x20c401c
-SpawnNpc kind:function(arm,size=0x290) addr:0x20c4048
+SpawnActor kind:function(arm,size=0x290) addr:0x20c4048
func_ov000_020c42d8 kind:function(arm,size=0x14) addr:0x20c42d8
func_ov000_020c42ec kind:function(arm,size=0x30) addr:0x20c42ec
func_ov000_020c431c kind:function(arm,size=0x6c) addr:0x20c431c
diff --git a/config/eur/arm9/overlays/ov004/symbols.txt b/config/eur/arm9/overlays/ov004/symbols.txt
index dff83956..89894cc5 100644
--- a/config/eur/arm9/overlays/ov004/symbols.txt
+++ b/config/eur/arm9/overlays/ov004/symbols.txt
@@ -34,15 +34,15 @@ func_ov004_02101cfc kind:function(thumb,size=0x6c) addr:0x2101cfc
func_ov004_02101d68 kind:function(thumb,size=0x154) addr:0x2101d68
func_ov004_02101ebc kind:function(thumb,size=0x1c) addr:0x2101ebc
func_ov004_02101ed8 kind:function(thumb,size=0x7c) addr:0x2101ed8
-func_ov004_02101f54 kind:function(thumb,size=0x3c) addr:0x2101f54
-func_ov004_02101f90 kind:function(thumb,size=0x2c) addr:0x2101f90
-func_ov004_02101fbc kind:function(thumb,size=0x2c) addr:0x2101fbc
-func_ov004_02101fe8 kind:function(thumb,size=0x24) addr:0x2101fe8
-func_ov004_0210200c kind:function(thumb,size=0x254) addr:0x210200c
-func_ov004_02102260 kind:function(thumb,size=0x4) addr:0x2102260
-func_ov004_02102264 kind:function(thumb,size=0x260) addr:0x2102264
-func_ov004_021024c4 kind:function(thumb,size=0x114) addr:0x21024c4
-func_ov004_021025d8 kind:function(thumb,size=0x10) addr:0x21025d8
+_ZN10MapManagerC1Ev kind:function(thumb,size=0x3c) addr:0x2101f54
+_ZN10MapManagerD1Ev kind:function(thumb,size=0x2c) addr:0x2101f90
+_ZN10MapManager6CreateEv kind:function(thumb,size=0x2c) addr:0x2101fbc
+_ZN10MapManager7DestroyEv kind:function(thumb,size=0x24) addr:0x2101fe8
+_ZN10MapManager17LoadMapTexSpritesEi kind:function(thumb,size=0x254) addr:0x210200c
+_ZN10MapManager19func_ov004_02102260Ev kind:function(thumb,size=0x4) addr:0x2102260
+_ZN10MapManager19func_ov004_02102264EPiPc kind:function(thumb,size=0x260) addr:0x2102264
+_ZN10MapManager19func_ov004_021024c4Eiii kind:function(thumb,size=0x114) addr:0x21024c4
+_ZN10MapManager19func_ov004_021025d8Ev kind:function(thumb,size=0x10) addr:0x21025d8
func_ov004_021025e8 kind:function(thumb,size=0x34) addr:0x21025e8
func_ov004_0210261c kind:function(arm,size=0x4) addr:0x210261c
func_ov004_02102620 kind:function(thumb,size=0x80) addr:0x2102620
@@ -100,46 +100,46 @@ func_ov004_0210372c kind:function(thumb,size=0x14) addr:0x210372c
func_ov004_02103740 kind:function(thumb,size=0x14) addr:0x2103740
func_ov004_02103754 kind:function(thumb,size=0xc94) addr:0x2103754
func_ov004_021043e8 kind:function(thumb,size=0x4) addr:0x21043e8
-func_ov004_021043ec kind:function(arm,size=0x1c) addr:0x21043ec
-func_ov004_02104408 kind:function(arm,size=0x14) addr:0x2104408
-func_ov004_0210441c kind:function(thumb,size=0x4c) addr:0x210441c
-func_ov004_02104468 kind:function(thumb,size=0x40) addr:0x2104468
-func_ov004_021044a8 kind:function(thumb,size=0x2c) addr:0x21044a8
-func_ov004_021044d4 kind:function(thumb,size=0x24) addr:0x21044d4
-func_ov004_021044f8 kind:function(thumb,size=0x44) addr:0x21044f8
-func_ov004_0210453c kind:function(thumb,size=0x20) addr:0x210453c
-func_ov004_0210455c kind:function(thumb,size=0x16c) addr:0x210455c
-func_ov004_021046c8 kind:function(thumb,size=0xc) addr:0x21046c8
-func_ov004_021046d4 kind:function(thumb,size=0x8) addr:0x21046d4
+_ZN14DebugHierarchyD0Ev kind:function(arm,size=0x1c) addr:0x21043ec
+_ZN14DebugHierarchyD1Ev kind:function(arm,size=0x14) addr:0x2104408
+_ZN14AdventureFlagsC1Ev kind:function(thumb,size=0x4c) addr:0x210441c
+_ZN14AdventureFlagsD1Ev kind:function(thumb,size=0x40) addr:0x2104468
+_ZN14AdventureFlags6CreateEv kind:function(thumb,size=0x2c) addr:0x21044a8
+_ZN14AdventureFlags7DestroyEv kind:function(thumb,size=0x24) addr:0x21044d4
+_ZN14AdventureFlags19func_ov004_021044f8Ei kind:function(thumb,size=0x44) addr:0x21044f8
+_ZN14AdventureFlags19func_ov004_0210453cEv kind:function(thumb,size=0x20) addr:0x210453c
+_ZN14AdventureFlags19func_ov004_0210455cEi kind:function(thumb,size=0x16c) addr:0x210455c
+_ZN14AdventureFlags19func_ov004_021046c8Ei kind:function(thumb,size=0xc) addr:0x21046c8
+_ZN14AdventureFlags19func_ov004_021046d4Ev kind:function(thumb,size=0x8) addr:0x21046d4
func_ov004_021046dc kind:function(thumb,size=0x338) addr:0x21046dc
func_ov004_02104a14 kind:function(thumb,size=0xf4) addr:0x2104a14
func_ov004_02104b08 kind:function(thumb,size=0x78) addr:0x2104b08
func_ov004_02104b80 kind:function(thumb,size=0x24) addr:0x2104b80
func_ov004_02104ba4 kind:function(thumb,size=0x9c) addr:0x2104ba4
-func_ov004_02104c40 kind:function(thumb,size=0xa0) addr:0x2104c40
-func_ov004_02104ce0 kind:function(arm,size=0x4) addr:0x2104ce0
-func_ov004_02104ce4 kind:function(thumb,size=0x3c) addr:0x2104ce4
-func_ov004_02104d20 kind:function(thumb,size=0x24) addr:0x2104d20
-func_ov004_02104d44 kind:function(thumb,size=0x24) addr:0x2104d44
-func_ov004_02104d68 kind:function(thumb,size=0x1f4) addr:0x2104d68
-func_ov004_02104f5c kind:function(arm,size=0x1c) addr:0x2104f5c
-func_ov004_02104f78 kind:function(thumb,size=0x30) addr:0x2104f78
-func_ov004_02104fa8 kind:function(thumb,size=0xc) addr:0x2104fa8
-func_ov004_02104fb4 kind:function(thumb,size=0x48) addr:0x2104fb4
-func_ov004_02104ffc kind:function(thumb,size=0x50) addr:0x2104ffc
-func_ov004_0210504c kind:function(thumb,size=0xc) addr:0x210504c
+_ZN18UnkStruct_027e103cC1Ev kind:function(thumb,size=0xa0) addr:0x2104c40
+_Z19func_ov004_02104ce0v kind:function(arm,size=0x4) addr:0x2104ce0
+_ZN18UnkStruct_027e103cD1Ev kind:function(thumb,size=0x3c) addr:0x2104ce4
+_ZN18UnkStruct_027e103c6CreateEv kind:function(thumb,size=0x24) addr:0x2104d20
+_ZN18UnkStruct_027e103c7DestroyEv kind:function(thumb,size=0x24) addr:0x2104d44
+_ZN18UnkStruct_027e103c19func_ov004_02104d68Ev kind:function(thumb,size=0x1f4) addr:0x2104d68
+_ZN18UnkStruct_027e103c19func_ov004_02104f5cEv kind:function(arm,size=0x1c) addr:0x2104f5c
+_ZN18UnkStruct_027e103c19func_ov004_02104f78Ev kind:function(thumb,size=0x30) addr:0x2104f78
+_ZN18UnkStruct_027e103c19func_ov004_02104fa8Ev kind:function(thumb,size=0xc) addr:0x2104fa8
+_ZN18UnkStruct_027e103c19func_ov004_02104fb8Ev kind:function(thumb,size=0x48) addr:0x2104fb4
+_ZN18UnkStruct_027e103c19func_ov004_02104ffcEii kind:function(thumb,size=0x50) addr:0x2104ffc
+_ZN18UnkStruct_027e103c19func_ov004_0210504cEv kind:function(thumb,size=0xc) addr:0x210504c
func_ov004_02105058 kind:function(thumb,size=0x188) addr:0x2105058
-func_ov004_021051e0 kind:function(thumb,size=0x2c) addr:0x21051e0
-func_ov004_0210520c kind:function(thumb,size=0x24) addr:0x210520c
-func_ov004_02105230 kind:function(thumb,size=0xe8) addr:0x2105230
-func_ov004_02105318 kind:function(thumb,size=0x14) addr:0x2105318
-func_ov004_0210532c kind:function(thumb,size=0xb0) addr:0x210532c
-func_ov004_021053dc kind:function(thumb,size=0xc8) addr:0x21053dc
-func_ov004_021054a4 kind:function(thumb,size=0xa8) addr:0x21054a4
-func_ov004_0210554c kind:function(thumb,size=0x2c) addr:0x210554c
-func_ov004_02105578 kind:function(thumb,size=0x90) addr:0x2105578
-func_ov004_02105608 kind:function(thumb,size=0xb0) addr:0x2105608
-func_ov004_021056b8 kind:function(thumb,size=0x10) addr:0x21056b8
+_ZN12ActorManager6CreateEv kind:function(thumb,size=0x2c) addr:0x21051e0
+_ZN12ActorManager7DestroyEv kind:function(thumb,size=0x24) addr:0x210520c
+_ZN12ActorManagerC1Ev kind:function(thumb,size=0xe8) addr:0x2105230
+_ZN12ActorManagerD1Ev kind:function(thumb,size=0x14) addr:0x2105318
+_ZN12ActorManager19func_ov004_0210532cEv kind:function(thumb,size=0xb0) addr:0x210532c
+_ZN12ActorManager19func_ov004_021053dcEv kind:function(thumb,size=0xc8) addr:0x21053dc
+_ZN12ActorManager19func_ov004_021054a4EPiii kind:function(thumb,size=0xa8) addr:0x21054a4
+_ZN12ActorManager19func_ov004_0210554cEv kind:function(thumb,size=0x2c) addr:0x210554c
+_ZN12ActorManager19func_ov004_02105578Ei kind:function(thumb,size=0x90) addr:0x2105578
+_ZN12ActorManager19func_ov004_02105608Eiii kind:function(thumb,size=0xb0) addr:0x2105608
+_ZN12ActorManager19func_ov004_021056b8Ev kind:function(thumb,size=0x10) addr:0x21056b8
func_ov004_021056c8 kind:function(thumb,size=0x28) addr:0x21056c8
func_ov004_021056f0 kind:function(thumb,size=0x24) addr:0x21056f0
func_ov004_02105714 kind:function(thumb,size=0x38) addr:0x2105714
@@ -160,7 +160,7 @@ func_ov004_02105a64 kind:function(thumb,size=0x28) addr:0x2105a64
func_ov004_02105a8c kind:function(thumb,size=0x1c) addr:0x2105a8c
func_ov004_02105aa8 kind:function(thumb,size=0x68) addr:0x2105aa8
func_ov004_02105b10 kind:function(thumb,size=0x154) addr:0x2105b10
-func_ov004_02105c64 kind:function(thumb,size=0x58) addr:0x2105c64
+LoadNarcFile kind:function(thumb,size=0x58) addr:0x2105c64
func_ov004_02105cbc kind:function(thumb,size=0x14) addr:0x2105cbc
func_ov004_02105cd0 kind:function(thumb,size=0xa8) addr:0x2105cd0
func_ov004_02105d78 kind:function(thumb,size=0x2c) addr:0x2105d78
@@ -212,20 +212,20 @@ func_ov004_02107130 kind:function(thumb,size=0x78) addr:0x2107130
func_ov004_021071a8 kind:function(thumb,size=0x14) addr:0x21071a8
func_ov004_021071bc kind:function(thumb,size=0x18) addr:0x21071bc
_ZN11ItemManagerC1Ev kind:function(thumb,size=0x140) addr:0x21071d4
-func_ov004_02107314 kind:function(thumb,size=0x1d4) addr:0x2107314
+_ZN11ItemManager4InitEv kind:function(thumb,size=0x1d4) addr:0x2107314
_ZN11ItemManagerD1Ev kind:function(thumb,size=0x1c) addr:0x21074e8
-func_ov004_02107504 kind:function(thumb,size=0x144) addr:0x2107504
-func_ov004_02107648 kind:function(thumb,size=0x8) addr:0x2107648
-func_ov004_02107650 kind:function(thumb,size=0x48) addr:0x2107650
-func_ov004_02107698 kind:function(thumb,size=0x24) addr:0x2107698
-func_ov004_021076bc kind:function(thumb,size=0x94) addr:0x21076bc
-func_ov004_02107750 kind:function(thumb,size=0xc0) addr:0x2107750
-func_ov004_02107810 kind:function(thumb,size=0xfc) addr:0x2107810
-func_ov004_0210790c kind:function(thumb,size=0x40) addr:0x210790c
-func_ov004_0210794c kind:function(thumb,size=0x48) addr:0x210794c
-func_ov004_02107994 kind:function(thumb,size=0x40) addr:0x2107994
-func_ov004_021079d4 kind:function(thumb,size=0x8) addr:0x21079d4
-func_ov004_021079dc kind:function(thumb,size=0xa4) addr:0x21079dc
+_ZN11ItemManager14InitEquipItemsEv kind:function(thumb,size=0x144) addr:0x2107504
+_ZN11ItemManager19func_ov004_02107648Ev kind:function(thumb,size=0x8) addr:0x2107648
+_ZN11ItemManager19func_ov004_02107650Ev kind:function(thumb,size=0x48) addr:0x2107650
+_ZN11ItemManager19func_ov004_02107698Ev kind:function(thumb,size=0x24) addr:0x2107698
+_ZN11ItemManager19func_ov004_021076bcEv kind:function(thumb,size=0x94) addr:0x21076bc
+_ZN11ItemManager12SpawnFairiesEv kind:function(thumb,size=0xc0) addr:0x2107750
+_ZN13ActorNaviBaseC2Ev kind:function(thumb,size=0xfc) addr:0x2107810
+_ZN13ActorNaviBaseD1Ev kind:function(thumb,size=0x40) addr:0x210790c
+_ZN13ActorNaviBaseD0Ev kind:function(thumb,size=0x48) addr:0x210794c
+_ZN13ActorNaviBaseD2Ev kind:function(thumb,size=0x40) addr:0x2107994
+_Z19func_ov004_021079d4Pi kind:function(thumb,size=0x8) addr:0x21079d4
+_ZN13ActorNaviBase8vfunc_08Ev kind:function(thumb,size=0xa4) addr:0x21079dc
func_ov004_02107a80 kind:function(thumb,size=0x20) addr:0x2107a80
func_ov004_02107aa0 kind:function(thumb,size=0xc4) addr:0x2107aa0
func_ov004_02107b64 kind:function(thumb,size=0x9c) addr:0x2107b64
@@ -234,19 +234,19 @@ func_ov004_02107c2c kind:function(thumb,size=0x20) addr:0x2107c2c
func_ov004_02107c4c kind:function(thumb,size=0x1c0) addr:0x2107c4c
func_ov004_02107e0c kind:function(thumb,size=0x28) addr:0x2107e0c
func_ov004_02107e34 kind:function(thumb,size=0x20) addr:0x2107e34
-func_ov004_02107e54 kind:function(thumb,size=0x24) addr:0x2107e54
-func_ov004_02107e78 kind:function(thumb,size=0x24) addr:0x2107e78
-func_ov004_02107e9c kind:function(thumb,size=0x9c) addr:0x2107e9c
-func_ov004_02107f38 kind:function(thumb,size=0x10) addr:0x2107f38
-func_ov004_02107f48 kind:function(thumb,size=0xc0) addr:0x2107f48
-func_ov004_02108008 kind:function(thumb,size=0x58) addr:0x2108008
+_ZN13PlayerManager6CreateEv kind:function(thumb,size=0x24) addr:0x2107e54
+_ZN13PlayerManager7DestroyEv kind:function(thumb,size=0x24) addr:0x2107e78
+_ZN13PlayerManagerC1Ev kind:function(thumb,size=0x9c) addr:0x2107e9c
+_ZN13PlayerManagerD1Ev kind:function(thumb,size=0x10) addr:0x2107f38
+_ZN13PlayerManager4InitEb kind:function(thumb,size=0xc0) addr:0x2107f48
+_ZN13PlayerManager19func_ov004_02108008Ev kind:function(thumb,size=0x58) addr:0x2108008
func_ov004_02108060 kind:function(thumb,size=0x18) addr:0x2108060
func_ov004_02108078 kind:function(thumb,size=0x21c) addr:0x2108078
func_ov004_02108294 kind:function(thumb,size=0x28) addr:0x2108294
-func_ov004_021082bc kind:function(thumb,size=0x138) addr:0x21082bc
-func_ov004_021083f4 kind:function(thumb,size=0x2c) addr:0x21083f4
-func_ov004_02108420 kind:function(thumb,size=0x60) addr:0x2108420
-func_ov004_02108480 kind:function(thumb,size=0x68) addr:0x2108480
+_ZN15LinkStateDamageC2EP14PlayerLinkBase kind:function(thumb,size=0x138) addr:0x21082bc
+_Z19func_ov004_021083f4Piiii kind:function(thumb,size=0x2c) addr:0x21083f4
+_ZN15LinkStateDamageD1Ev kind:function(thumb,size=0x60) addr:0x2108420
+_ZN15LinkStateDamageD0Ev kind:function(thumb,size=0x68) addr:0x2108480
func_ov004_021084e8 kind:function(thumb,size=0x51c) addr:0x21084e8
func_ov004_02108a04 kind:function(thumb,size=0x17c) addr:0x2108a04
func_ov004_02108b80 kind:function(thumb,size=0x10) addr:0x2108b80
@@ -263,7 +263,7 @@ func_ov004_021097b0 kind:function(thumb,size=0x1b8) addr:0x21097b0
func_ov004_02109968 kind:function(thumb,size=0x48) addr:0x2109968
func_ov004_021099b0 kind:function(thumb,size=0x5c) addr:0x21099b0
func_ov004_02109a0c kind:function(thumb,size=0x4c) addr:0x2109a0c
-func_ov004_02109a58 kind:function(thumb,size=0x90) addr:0x2109a58
+_ZN13LinkStateItemC2EP14PlayerLinkBase kind:function(thumb,size=0x90) addr:0x2109a58
_ZN13LinkStateItemD1Ev kind:function(thumb,size=0x20) addr:0x2109ae8
_ZN13LinkStateItemD0Ev kind:function(thumb,size=0x24) addr:0x2109b08
func_ov004_02109b2c kind:function(thumb,size=0x4c) addr:0x2109b2c
@@ -273,94 +273,94 @@ func_ov004_02109e10 kind:function(thumb,size=0x50) addr:0x2109e10
func_ov004_02109e60 kind:function(thumb,size=0x1f0) addr:0x2109e60
func_ov004_0210a050 kind:function(thumb,size=0x44) addr:0x210a050
func_ov004_0210a094 kind:function(thumb,size=0x14) addr:0x210a094
-func_ov004_0210a0a8 kind:function(thumb,size=0x68c) addr:0x210a0a8
-func_ov004_0210a734 kind:function(thumb,size=0xd0) addr:0x210a734
-func_ov004_0210a804 kind:function(thumb,size=0xd8) addr:0x210a804
-func_ov004_0210a8dc kind:function(thumb,size=0xd0) addr:0x210a8dc
-func_ov004_0210a9ac kind:function(thumb,size=0x174) addr:0x210a9ac
-func_ov004_0210ab20 kind:function(thumb,size=0x24) addr:0x210ab20
-func_ov004_0210ab44 kind:function(thumb,size=0x44) addr:0x210ab44
-func_ov004_0210ab88 kind:function(thumb,size=0x14) addr:0x210ab88
-func_ov004_0210ab9c kind:function(thumb,size=0x1c) addr:0x210ab9c
+_ZN14PlayerLinkBaseC2Ev kind:function(thumb,size=0x68c) addr:0x210a0a8
+_ZN14PlayerLinkBaseD1Ev kind:function(thumb,size=0xd0) addr:0x210a734
+_ZN14PlayerLinkBaseD0Ev kind:function(thumb,size=0xd8) addr:0x210a804
+_ZN14PlayerLinkBaseD2Ev kind:function(thumb,size=0xd0) addr:0x210a8dc
+_ZN14PlayerLinkBase4InitEv kind:function(thumb,size=0x174) addr:0x210a9ac
+_ZN14PlayerLinkBase8vfunc_20Ev kind:function(thumb,size=0x24) addr:0x210ab20
+_ZN17LinkStateInteractC2EP14PlayerLinkBase kind:function(thumb,size=0x44) addr:0x210ab44
+_ZN17LinkStateInteractD1Ev kind:function(thumb,size=0x14) addr:0x210ab88
+_ZN17LinkStateInteractD0Ev kind:function(thumb,size=0x1c) addr:0x210ab9c
func_ov004_0210abb8 kind:function(thumb,size=0x1c) addr:0x210abb8
-func_ov004_0210abd4 kind:function(thumb,size=0xf4) addr:0x210abd4
-func_ov004_0210acc8 kind:function(thumb,size=0x44) addr:0x210acc8
-func_ov004_0210ad0c kind:function(thumb,size=0x4c) addr:0x210ad0c
-func_ov004_0210ad58 kind:function(thumb,size=0x3c) addr:0x210ad58
-func_ov004_0210ad94 kind:function(thumb,size=0x1c) addr:0x210ad94
-func_ov004_0210adb0 kind:function(thumb,size=0x24) addr:0x210adb0
-func_ov004_0210add4 kind:function(thumb,size=0x10) addr:0x210add4
-func_ov004_0210ade4 kind:function(thumb,size=0x4) addr:0x210ade4
-func_ov004_0210ade8 kind:function(thumb,size=0xc) addr:0x210ade8
-func_ov004_0210adf4 kind:function(thumb,size=0x4) addr:0x210adf4
+_ZN17LinkStateCutsceneC2EP14PlayerLinkBase kind:function(thumb,size=0xf4) addr:0x210abd4
+_ZN17LinkStateCutsceneD1Ev kind:function(thumb,size=0x44) addr:0x210acc8
+_ZN17LinkStateCutsceneD0Ev kind:function(thumb,size=0x4c) addr:0x210ad0c
+_ZN15LinkStateFollowC2EP14PlayerLinkBase kind:function(thumb,size=0x3c) addr:0x210ad58
+_ZN15LinkStateFollowD1Ev kind:function(thumb,size=0x1c) addr:0x210ad94
+_ZN15LinkStateFollowD0Ev kind:function(thumb,size=0x24) addr:0x210adb0
+_ZN13LinkStateBaseC2EP14PlayerLinkBase kind:function(thumb,size=0x10) addr:0x210add4
+_ZN13LinkStateBaseD1Ev kind:function(thumb,size=0x4) addr:0x210ade4
+_ZN13LinkStateBaseD0Ev kind:function(thumb,size=0xc) addr:0x210ade8
+_ZN13LinkStateBaseD2Ev kind:function(thumb,size=0x4) addr:0x210adf4
_ZN13LinkStateBase20CreateDebugHierarchyEv kind:function(thumb,size=0x4) addr:0x210adf8
-func_ov004_0210adfc kind:function(thumb,size=0x84) addr:0x210adfc
-func_ov004_0210ae80 kind:function(thumb,size=0x28) addr:0x210ae80
-func_ov004_0210aea8 kind:function(thumb,size=0x2c) addr:0x210aea8
-func_ov004_0210aed4 kind:function(thumb,size=0x20) addr:0x210aed4
-func_ov004_0210aef4 kind:function(thumb,size=0xc) addr:0x210aef4
-func_ov004_0210af00 kind:function(thumb,size=0x14) addr:0x210af00
-func_ov004_0210af14 kind:function(thumb,size=0x24) addr:0x210af14
-func_ov004_0210af38 kind:function(thumb,size=0x24) addr:0x210af38
+_ZN13LinkStateRollC2EP14PlayerLinkBase kind:function(thumb,size=0x84) addr:0x210adfc
+_ZN13LinkStateRollD1Ev kind:function(thumb,size=0x28) addr:0x210ae80
+_ZN13LinkStateRollD0Ev kind:function(thumb,size=0x2c) addr:0x210aea8
+_ZN13LinkStateMoveC2EP14PlayerLinkBase kind:function(thumb,size=0x20) addr:0x210aed4
+_ZN13LinkStateMoveD1Ev kind:function(thumb,size=0xc) addr:0x210aef4
+_ZN13LinkStateMoveD0Ev kind:function(thumb,size=0x14) addr:0x210af00
+_ZN15ItemModelLoader6CreateEv kind:function(thumb,size=0x24) addr:0x210af14
+_ZN15ItemModelLoader7DestroyEv kind:function(thumb,size=0x24) addr:0x210af38
func_ov004_0210af5c kind:function(thumb,size=0x80) addr:0x210af5c
-func_ov004_0210afdc kind:function(thumb,size=0x11c) addr:0x210afdc
-func_ov004_0210b0f8 kind:function(thumb,size=0x44) addr:0x210b0f8
-func_ov004_0210b13c kind:function(thumb,size=0x24) addr:0x210b13c
-func_ov004_0210b160 kind:function(thumb,size=0x24) addr:0x210b160
-func_ov004_0210b184 kind:function(thumb,size=0x4c) addr:0x210b184
-func_ov004_0210b1d0 kind:function(thumb,size=0x20) addr:0x210b1d0
-func_ov004_0210b1f0 kind:function(thumb,size=0x20) addr:0x210b1f0
-func_ov004_0210b210 kind:function(thumb,size=0x48) addr:0x210b210
-func_ov004_0210b258 kind:function(thumb,size=0x28) addr:0x210b258
-func_ov004_0210b280 kind:function(thumb,size=0x30) addr:0x210b280
-func_ov004_0210b2b0 kind:function(thumb,size=0x28) addr:0x210b2b0
+_ZN13PlayerControlC1Ev kind:function(thumb,size=0x11c) addr:0x210afdc
+_ZN13PlayerControlD1Ev kind:function(thumb,size=0x44) addr:0x210b0f8
+_ZN13PlayerControl6CreateEv kind:function(thumb,size=0x24) addr:0x210b13c
+_ZN13PlayerControl7DestroyEv kind:function(thumb,size=0x24) addr:0x210b160
+_ZN13PlayerControl4InitEv kind:function(thumb,size=0x4c) addr:0x210b184
+_ZN13PlayerControl19func_ov004_0210b1d0Ev kind:function(thumb,size=0x20) addr:0x210b1d0
+_ZN13PlayerControl19func_ov004_0210b1f0Ev kind:function(thumb,size=0x20) addr:0x210b1f0
+_ZN10PlayerBaseC2Ev kind:function(thumb,size=0x48) addr:0x210b210
+_ZN10PlayerBaseD1Ev kind:function(thumb,size=0x28) addr:0x210b258
+_ZN10PlayerBaseD0Ev kind:function(thumb,size=0x30) addr:0x210b280
+_ZN10PlayerBaseD2Ev kind:function(thumb,size=0x28) addr:0x210b2b0
func_ov004_0210b2d8 kind:function(thumb,size=0xb8) addr:0x210b2d8
func_ov004_0210b390 kind:function(thumb,size=0x14) addr:0x210b390
func_ov004_0210b3a4 kind:function(thumb,size=0x2c) addr:0x210b3a4
func_ov004_0210b3d0 kind:function(arm,size=0x4) addr:0x210b3d0
func_ov004_0210b3d4 kind:function(arm,size=0x1c) addr:0x210b3d4
-func_ov004_0210b3f0 kind:function(thumb,size=0x144) addr:0x210b3f0
-func_ov004_0210b534 kind:function(thumb,size=0x54) addr:0x210b534
-func_ov004_0210b588 kind:function(thumb,size=0x58) addr:0x210b588
-func_ov004_0210b5e0 kind:function(thumb,size=0x54) addr:0x210b5e0
-func_ov004_0210b634 kind:function(thumb,size=0xc) addr:0x210b634
-func_ov004_0210b640 kind:function(thumb,size=0x38) addr:0x210b640
-func_ov004_0210b678 kind:function(thumb,size=0x4) addr:0x210b678
+_ZN17PlayerControlDataC2Ev kind:function(thumb,size=0x144) addr:0x210b3f0
+_ZN17PlayerControlDataD1Ev kind:function(thumb,size=0x54) addr:0x210b534
+_ZN17PlayerControlDataD0Ev kind:function(thumb,size=0x58) addr:0x210b588
+_ZN17PlayerControlDataD2Ev kind:function(thumb,size=0x54) addr:0x210b5e0
+_Z19func_ov004_0210b634Pi kind:function(thumb,size=0xc) addr:0x210b634
+_ZN17PlayerControlData8vfunc_18Ev kind:function(thumb,size=0x38) addr:0x210b640
+_ZN17PlayerControlData8vfunc_1cEv kind:function(thumb,size=0x4) addr:0x210b678
func_ov004_0210b67c kind:function(thumb,size=0x2c) addr:0x210b67c
func_ov004_0210b6a8 kind:function(thumb,size=0x2c) addr:0x210b6a8
-func_ov004_0210b6d4 kind:function(thumb,size=0x244) addr:0x210b6d4
-func_ov004_0210b918 kind:function(thumb,size=0xa0) addr:0x210b918
-func_ov004_0210b9b8 kind:function(thumb,size=0xa8) addr:0x210b9b8
-func_ov004_0210ba60 kind:function(thumb,size=0x14) addr:0x210ba60
-func_ov004_0210ba74 kind:function(thumb,size=0x4) addr:0x210ba74
-func_ov004_0210ba78 kind:function(thumb,size=0xc) addr:0x210ba78
-func_ov004_0210ba84 kind:function(thumb,size=0x4) addr:0x210ba84
-func_ov004_0210ba88 kind:function(thumb,size=0x4) addr:0x210ba88
-func_ov004_0210ba8c kind:function(thumb,size=0x19c) addr:0x210ba8c
-func_ov004_0210bc28 kind:function(thumb,size=0x6c) addr:0x210bc28
-func_ov004_0210bc94 kind:function(thumb,size=0x70) addr:0x210bc94
+_ZN10EquipSwordC2Ev kind:function(thumb,size=0x244) addr:0x210b6d4
+_ZN10EquipSwordD1Ev kind:function(thumb,size=0xa0) addr:0x210b918
+_ZN10EquipSwordD0Ev kind:function(thumb,size=0xa8) addr:0x210b9b8
+_ZN9EquipItemC2Ev kind:function(thumb,size=0x14) addr:0x210ba60
+_ZN9EquipItemD1Ev kind:function(thumb,size=0x4) addr:0x210ba74
+_ZN9EquipItemD0Ev kind:function(thumb,size=0xc) addr:0x210ba78
+_ZN9EquipItemD2Ev kind:function(thumb,size=0x4) addr:0x210ba84
+_ZN9EquipItem8vfunc_10Ev kind:function(thumb,size=0x4) addr:0x210ba88
+_ZN11EquipShieldC2Ev kind:function(thumb,size=0x19c) addr:0x210ba8c
+_ZN11EquipShieldD1Ev kind:function(thumb,size=0x6c) addr:0x210bc28
+_ZN11EquipShieldD0Ev kind:function(thumb,size=0x70) addr:0x210bc94
func_ov004_0210bd04 kind:function(thumb,size=0x24) addr:0x210bd04
func_ov004_0210bd28 kind:function(thumb,size=0x24) addr:0x210bd28
func_ov004_0210bd4c kind:function(thumb,size=0x6c) addr:0x210bd4c
func_ov004_0210bdb8 kind:function(thumb,size=0x2c) addr:0x210bdb8
-func_ov004_0210bde4 kind:function(arm,size=0x20) addr:0x210bde4
-func_ov004_0210be04 kind:function(thumb,size=0x1a4) addr:0x210be04
-func_ov004_0210bfa8 kind:function(thumb,size=0x170) addr:0x210bfa8
-func_ov004_0210c118 kind:function(thumb,size=0xe0) addr:0x210c118
-func_ov004_0210c1f8 kind:function(thumb,size=0x204) addr:0x210c1f8
-func_ov004_0210c3fc kind:function(thumb,size=0x130) addr:0x210c3fc
-func_ov004_0210c52c kind:function(thumb,size=0xa0) addr:0x210c52c
-func_ov004_0210c5cc kind:function(thumb,size=0x198) addr:0x210c5cc
-func_ov004_0210c764 kind:function(thumb,size=0x9c) addr:0x210c764
-func_ov004_0210c800 kind:function(thumb,size=0x8c) addr:0x210c800
-func_ov004_0210c88c kind:function(thumb,size=0x48) addr:0x210c88c
-func_ov004_0210c8d4 kind:function(thumb,size=0x1b0) addr:0x210c8d4
-func_ov004_0210ca84 kind:function(thumb,size=0x7c) addr:0x210ca84
-func_ov004_0210cb00 kind:function(thumb,size=0x1c) addr:0x210cb00
-func_ov004_0210cb1c kind:function(thumb,size=0x1c) addr:0x210cb1c
-func_ov004_0210cb38 kind:function(thumb,size=0xe8) addr:0x210cb38
-func_ov004_0210cc20 kind:function(thumb,size=0x38) addr:0x210cc20
-func_ov004_0210cc58 kind:function(thumb,size=0x24) addr:0x210cc58
+_ZN15MapBase_Unk_180C1Ev kind:function(arm,size=0x20) addr:0x210bde4
+_ZN7MapBaseC2Ejj kind:function(thumb,size=0x1a4) addr:0x210be04
+_ZN7MapBase8vfunc_14Ev kind:function(thumb,size=0x170) addr:0x210bfa8
+_ZN7MapBase19func_ov004_0210c118Ev kind:function(thumb,size=0xe0) addr:0x210c118
+_ZN7MapBase8vfunc_08EjjP6Course kind:function(thumb,size=0x204) addr:0x210c1f8
+_ZN7MapBase8vfunc_0cEP6Course kind:function(thumb,size=0x130) addr:0x210c3fc
+_ZN7MapBase8vfunc_10Ev kind:function(thumb,size=0xa0) addr:0x210c52c
+_ZN7MapBase8vfunc_2cEv kind:function(thumb,size=0x198) addr:0x210c5cc
+_ZN7MapBase8vfunc_30Ei kind:function(thumb,size=0x9c) addr:0x210c764
+_ZN7MapBase8vfunc_34EPc kind:function(thumb,size=0x8c) addr:0x210c800
+_ZN7MapBase8vfunc_38Ev kind:function(thumb,size=0x48) addr:0x210c88c
+_ZN7MapBase8vfunc_3cEv kind:function(thumb,size=0x1b0) addr:0x210c8d4
+_ZN7MapBase8vfunc_40Ev kind:function(thumb,size=0x7c) addr:0x210ca84
+_ZN7MapBase8vfunc_44Ev kind:function(thumb,size=0x1c) addr:0x210cb00
+_ZN7MapBase19func_ov004_0210cb1cEv kind:function(thumb,size=0x1c) addr:0x210cb1c
+_ZN7MapBase19func_ov004_0210cb38Ev kind:function(thumb,size=0xe8) addr:0x210cb38
+_ZN7MapBase19func_ov004_0210cc20EP6Course kind:function(thumb,size=0x38) addr:0x210cc20
+_ZN7MapBase19func_ov004_0210cc58EP6Coursej kind:function(thumb,size=0x24) addr:0x210cc58
func_ov004_0210cc7c kind:function(arm,size=0x14) addr:0x210cc7c
func_ov004_0210cc90 kind:function(arm,size=0x14) addr:0x210cc90
func_ov004_0210cca4 kind:function(arm,size=0x14) addr:0x210cca4
@@ -405,18 +405,18 @@ func_ov004_0210deb0 kind:function(thumb,size=0xd84) addr:0x210deb0
_0210eb10 kind:label(thumb) addr:0x210eb10
func_ov004_0210ec34 kind:function(thumb,size=0x8c) addr:0x210ec34
func_ov004_0210ecc0 kind:function(thumb,size=0x5c) addr:0x210ecc0
-func_ov004_0210ed1c kind:function(thumb,size=0x114) addr:0x210ed1c
-func_ov004_0210ee30 kind:function(thumb,size=0x54) addr:0x210ee30
-func_ov004_0210ee84 kind:function(thumb,size=0x10c) addr:0x210ee84
-func_ov004_0210ef90 kind:function(thumb,size=0x80) addr:0x210ef90
-func_ov004_0210f010 kind:function(thumb,size=0x6c) addr:0x210f010
-func_ov004_0210f07c kind:function(thumb,size=0x80) addr:0x210f07c
-func_ov004_0210f0fc kind:function(thumb,size=0x44) addr:0x210f0fc
-func_ov004_0210f140 kind:function(thumb,size=0x17c) addr:0x210f140
-func_ov004_0210f2bc kind:function(thumb,size=0xb0) addr:0x210f2bc
-func_ov004_0210f36c kind:function(thumb,size=0x78) addr:0x210f36c
-func_ov004_0210f3e4 kind:function(thumb,size=0x88) addr:0x210f3e4
-func_ov004_0210f46c kind:function(thumb,size=0x5c) addr:0x210f46c
+_ZN6CourseC1Ev kind:function(thumb,size=0x114) addr:0x210ed1c
+_ZN6CourseD1Ev kind:function(thumb,size=0x54) addr:0x210ee30
+_ZN6Course19func_ov004_0210ee84EPc kind:function(thumb,size=0x10c) addr:0x210ee84
+_ZN6Course19func_ov004_0210ef90Ei kind:function(thumb,size=0x80) addr:0x210ef90
+_ZN6Course19func_ov004_0210f010Ev kind:function(thumb,size=0x6c) addr:0x210f010
+_ZN6Course11LoadMapDataEPhiici kind:function(thumb,size=0x80) addr:0x210f07c
+_ZN6Course19func_ov004_0210f0fcEiPsi kind:function(thumb,size=0x44) addr:0x210f0fc
+_ZN6Course19func_ov004_0210f140Ei kind:function(thumb,size=0x17c) addr:0x210f140
+_ZN15CutsceneHandlerC1Ev kind:function(thumb,size=0xb0) addr:0x210f2bc
+_ZN15CutsceneHandlerD1Ev kind:function(thumb,size=0x78) addr:0x210f36c
+_ZN15CutsceneHandler19func_ov004_0210f3e4Ei kind:function(thumb,size=0x88) addr:0x210f3e4
+_ZN15CutsceneHandler19func_ov004_0210f46cEv kind:function(thumb,size=0x5c) addr:0x210f46c
func_ov004_0210f4c8 kind:function(thumb,size=0xc) addr:0x210f4c8
func_ov004_0210f4d4 kind:function(thumb,size=0x4) addr:0x210f4d4
func_ov004_0210f4d8 kind:function(thumb,size=0xc) addr:0x210f4d8
@@ -585,7 +585,7 @@ data_ov004_02110468 kind:data(any) addr:0x2110468
data_ov004_0211047c kind:data(any) addr:0x211047c
data_ov004_02110484 kind:data(any) addr:0x2110484
data_ov004_0211048c kind:data(any) addr:0x211048c
-data_ov004_021104a0 kind:data(any) addr:0x21104a0
+_ZTV14DebugHierarchy kind:data(any) addr:0x21104a0
data_ov004_021104e0 kind:data(any) addr:0x21104e0
data_ov004_021104f0 kind:data(any) addr:0x21104f0
data_ov004_021104f8 kind:data(any) addr:0x21104f8
diff --git a/config/usa/arm9/dtcm/symbols.txt b/config/usa/arm9/dtcm/symbols.txt
index f2f7f0a0..6fe927d5 100644
--- a/config/usa/arm9/dtcm/symbols.txt
+++ b/config/usa/arm9/dtcm/symbols.txt
@@ -134,7 +134,7 @@ gPlayerAngle kind:bss addr:0x27e0fac
data_027e0fb0 kind:bss addr:0x27e0fb0
gItemManager kind:bss addr:0x27e0fb4
gPlayerControl kind:bss addr:0x27e0fb8
-gHealthManager kind:bss addr:0x27e0fbc
+gPlayerManager kind:bss addr:0x27e0fbc
data_027e0fc0 kind:bss addr:0x27e0fc0
gItemModelLoader kind:bss addr:0x27e0fc4
gPlayerLink kind:bss addr:0x27e0fc8
diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt
index 6e51a203..f3f6cde5 100644
--- a/config/usa/arm9/overlays/ov000/symbols.txt
+++ b/config/usa/arm9/overlays/ov000/symbols.txt
@@ -2394,9 +2394,9 @@ func_ov000_020b7ee8 kind:function(arm,size=0x40) addr:0x20b7e88
func_ov000_020b7f28 kind:function(arm,size=0xa4) addr:0x20b7ec8
func_ov000_020b7fcc kind:function(arm,size=0x1c) addr:0x20b7f6c
func_ov000_020b7fe8 kind:function(arm,size=0x14) addr:0x20b7f88
-_ZN13HealthManager4SaveEP15SaveItemManager kind:function(thumb,size=0x50) addr:0x20b7f9c
-_ZN13HealthManager17IncreaseMaxHealthEs kind:function(thumb,size=0x14) addr:0x20b7fec
-_ZN13HealthManager19UpdateShipMaxHealthEv kind:function(thumb,size=0x80) addr:0x20b8000
+_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
@@ -2868,7 +2868,7 @@ func_ov000_020c4010 kind:function(arm,size=0x4) addr:0x20c3fb0
func_ov000_020c4014 kind:function(arm,size=0x4) addr:0x20c3fb4
func_ov000_020c4018 kind:function(arm,size=0x4) addr:0x20c3fb8
func_ov000_020c401c kind:function(arm,size=0x2c) addr:0x20c3fbc
-SpawnNpc kind:function(arm,size=0x290) addr:0x20c3fe8
+SpawnActor kind:function(arm,size=0x290) addr:0x20c3fe8
func_ov000_020c42d8 kind:function(arm,size=0x14) addr:0x20c4278
func_ov000_020c42ec kind:function(arm,size=0x30) addr:0x20c428c
func_ov000_020c431c kind:function(arm,size=0x6c) addr:0x20c42bc
diff --git a/config/usa/arm9/overlays/ov004/symbols.txt b/config/usa/arm9/overlays/ov004/symbols.txt
index e93d87b7..0f7cd422 100644
--- a/config/usa/arm9/overlays/ov004/symbols.txt
+++ b/config/usa/arm9/overlays/ov004/symbols.txt
@@ -34,15 +34,15 @@ func_ov004_02101cfc kind:function(thumb,size=0x6c) addr:0x2101c7c
func_ov004_02101d68 kind:function(thumb,size=0x154) addr:0x2101ce8
func_ov004_02101ebc kind:function(thumb,size=0x1c) addr:0x2101e3c
func_ov004_02101ed8 kind:function(thumb,size=0x7c) addr:0x2101e58
-func_ov004_02101f54 kind:function(thumb,size=0x3c) addr:0x2101ed4
-func_ov004_02101f90 kind:function(thumb,size=0x2c) addr:0x2101f10
-func_ov004_02101fbc kind:function(thumb,size=0x2c) addr:0x2101f3c
-func_ov004_02101fe8 kind:function(thumb,size=0x24) addr:0x2101f68
-func_ov004_0210200c kind:function(thumb,size=0x254) addr:0x2101f8c
-func_ov004_02102260 kind:function(thumb,size=0x4) addr:0x21021e0
-func_ov004_02102264 kind:function(thumb,size=0x260) addr:0x21021e4
-func_ov004_021024c4 kind:function(thumb,size=0x114) addr:0x2102444
-func_ov004_021025d8 kind:function(thumb,size=0x10) addr:0x2102558
+_ZN10MapManagerC1Ev kind:function(thumb,size=0x3c) addr:0x2101ed4
+_ZN10MapManagerD1Ev kind:function(thumb,size=0x2c) addr:0x2101f10
+_ZN10MapManager6CreateEv kind:function(thumb,size=0x2c) addr:0x2101f3c
+_ZN10MapManager7DestroyEv kind:function(thumb,size=0x24) addr:0x2101f68
+_ZN10MapManager17LoadMapTexSpritesEi kind:function(thumb,size=0x254) addr:0x2101f8c
+_ZN10MapManager19func_ov004_02102260Ev kind:function(thumb,size=0x4) addr:0x21021e0
+_ZN10MapManager19func_ov004_02102264EPiPc kind:function(thumb,size=0x260) addr:0x21021e4
+_ZN10MapManager19func_ov004_021024c4Eiii kind:function(thumb,size=0x114) addr:0x2102444
+_ZN10MapManager19func_ov004_021025d8Ev kind:function(thumb,size=0x10) addr:0x2102558
func_ov004_021025e8 kind:function(thumb,size=0x34) addr:0x2102568
func_ov004_0210261c kind:function(arm,size=0x4) addr:0x210259c
func_ov004_02102620 kind:function(thumb,size=0x80) addr:0x21025a0
@@ -100,46 +100,46 @@ func_ov004_0210372c kind:function(thumb,size=0x14) addr:0x21036ac
func_ov004_02103740 kind:function(thumb,size=0x14) addr:0x21036c0
func_ov004_02103754 kind:function(thumb,size=0xc94) addr:0x21036d4
func_ov004_021043e8 kind:function(thumb,size=0x4) addr:0x2104368
-func_ov004_021043ec kind:function(arm,size=0x1c) addr:0x210436c
-func_ov004_02104408 kind:function(arm,size=0x14) addr:0x2104388
-func_ov004_0210441c kind:function(thumb,size=0x4c) addr:0x210439c
-func_ov004_02104468 kind:function(thumb,size=0x40) addr:0x21043e8
-func_ov004_021044a8 kind:function(thumb,size=0x2c) addr:0x2104428
-func_ov004_021044d4 kind:function(thumb,size=0x24) addr:0x2104454
-func_ov004_021044f8 kind:function(thumb,size=0x44) addr:0x2104478
-func_ov004_0210453c kind:function(thumb,size=0x20) addr:0x21044bc
-func_ov004_0210455c kind:function(thumb,size=0x16c) addr:0x21044dc
-func_ov004_021046c8 kind:function(thumb,size=0xc) addr:0x2104648
-func_ov004_021046d4 kind:function(thumb,size=0x8) addr:0x2104654
+_ZN14DebugHierarchyD0Ev kind:function(arm,size=0x1c) addr:0x210436c
+_ZN14DebugHierarchyD1Ev kind:function(arm,size=0x14) addr:0x2104388
+_ZN14AdventureFlagsC1Ev kind:function(thumb,size=0x4c) addr:0x210439c
+_ZN14AdventureFlagsD1Ev kind:function(thumb,size=0x40) addr:0x21043e8
+_ZN14AdventureFlags6CreateEv kind:function(thumb,size=0x2c) addr:0x2104428
+_ZN14AdventureFlags7DestroyEv kind:function(thumb,size=0x24) addr:0x2104454
+_ZN14AdventureFlags19func_ov004_021044f8Ei kind:function(thumb,size=0x44) addr:0x2104478
+_ZN14AdventureFlags19func_ov004_0210453cEv kind:function(thumb,size=0x20) addr:0x21044bc
+_ZN14AdventureFlags19func_ov004_0210455cEi kind:function(thumb,size=0x16c) addr:0x21044dc
+_ZN14AdventureFlags19func_ov004_021046c8Ei kind:function(thumb,size=0xc) addr:0x2104648
+_ZN14AdventureFlags19func_ov004_021046d4Ev kind:function(thumb,size=0x8) addr:0x2104654
func_ov004_021046dc kind:function(thumb,size=0x338) addr:0x210465c
func_ov004_02104a14 kind:function(thumb,size=0xf4) addr:0x2104994
func_ov004_02104b08 kind:function(thumb,size=0x78) addr:0x2104a88
func_ov004_02104b80 kind:function(thumb,size=0x24) addr:0x2104b00
func_ov004_02104ba4 kind:function(thumb,size=0x9c) addr:0x2104b24
-func_ov004_02104c40 kind:function(thumb,size=0xa0) addr:0x2104bc0
-func_ov004_02104ce0 kind:function(arm,size=0x4) addr:0x2104c60
-func_ov004_02104ce4 kind:function(thumb,size=0x3c) addr:0x2104c64
-func_ov004_02104d20 kind:function(thumb,size=0x24) addr:0x2104ca0
-func_ov004_02104d44 kind:function(thumb,size=0x24) addr:0x2104cc4
-func_ov004_02104d68 kind:function(thumb,size=0x1f4) addr:0x2104ce8
-func_ov004_02104f5c kind:function(arm,size=0x1c) addr:0x2104edc
-func_ov004_02104f78 kind:function(thumb,size=0x30) addr:0x2104ef8
-func_ov004_02104fa8 kind:function(thumb,size=0xc) addr:0x2104f28
-func_ov004_02104fb4 kind:function(thumb,size=0x48) addr:0x2104f34
-func_ov004_02104ffc kind:function(thumb,size=0x50) addr:0x2104f7c
-func_ov004_0210504c kind:function(thumb,size=0xc) addr:0x2104fcc
+_ZN18UnkStruct_027e103cC1Ev kind:function(thumb,size=0xa0) addr:0x2104bc0
+_Z19func_ov004_02104ce0v kind:function(arm,size=0x4) addr:0x2104c60
+_ZN18UnkStruct_027e103cD1Ev kind:function(thumb,size=0x3c) addr:0x2104c64
+_ZN18UnkStruct_027e103c6CreateEv kind:function(thumb,size=0x24) addr:0x2104ca0
+_ZN18UnkStruct_027e103c7DestroyEv kind:function(thumb,size=0x24) addr:0x2104cc4
+_ZN18UnkStruct_027e103c19func_ov004_02104d68Ev kind:function(thumb,size=0x1f4) addr:0x2104ce8
+_ZN18UnkStruct_027e103c19func_ov004_02104f5cEv kind:function(arm,size=0x1c) addr:0x2104edc
+_ZN18UnkStruct_027e103c19func_ov004_02104f78Ev kind:function(thumb,size=0x30) addr:0x2104ef8
+_ZN18UnkStruct_027e103c19func_ov004_02104fa8Ev kind:function(thumb,size=0xc) addr:0x2104f28
+_ZN18UnkStruct_027e103c19func_ov004_02104fb8Ev kind:function(thumb,size=0x48) addr:0x2104f34
+_ZN18UnkStruct_027e103c19func_ov004_02104ffcEii kind:function(thumb,size=0x50) addr:0x2104f7c
+_ZN18UnkStruct_027e103c19func_ov004_0210504cEv kind:function(thumb,size=0xc) addr:0x2104fcc
func_ov004_02105058 kind:function(thumb,size=0x188) addr:0x2104fd8
-func_ov004_021051e0 kind:function(thumb,size=0x2c) addr:0x2105160
-func_ov004_0210520c kind:function(thumb,size=0x24) addr:0x210518c
-func_ov004_02105230 kind:function(thumb,size=0xe8) addr:0x21051b0
-func_ov004_02105318 kind:function(thumb,size=0x14) addr:0x2105298
-func_ov004_0210532c kind:function(thumb,size=0xb0) addr:0x21052ac
-func_ov004_021053dc kind:function(thumb,size=0xc8) addr:0x210535c
-func_ov004_021054a4 kind:function(thumb,size=0xa8) addr:0x2105424
-func_ov004_0210554c kind:function(thumb,size=0x2c) addr:0x21054cc
-func_ov004_02105578 kind:function(thumb,size=0x90) addr:0x21054f8
-func_ov004_02105608 kind:function(thumb,size=0xb0) addr:0x2105588
-func_ov004_021056b8 kind:function(thumb,size=0x10) addr:0x2105638
+_ZN12ActorManager6CreateEv kind:function(thumb,size=0x2c) addr:0x2105160
+_ZN12ActorManager7DestroyEv kind:function(thumb,size=0x24) addr:0x210518c
+_ZN12ActorManagerC1Ev kind:function(thumb,size=0xe8) addr:0x21051b0
+_ZN12ActorManagerD1Ev kind:function(thumb,size=0x14) addr:0x2105298
+_ZN12ActorManager19func_ov004_0210532cEv kind:function(thumb,size=0xb0) addr:0x21052ac
+_ZN12ActorManager19func_ov004_021053dcEv kind:function(thumb,size=0xc8) addr:0x210535c
+_ZN12ActorManager19func_ov004_021054a4EPiii kind:function(thumb,size=0xa8) addr:0x2105424
+_ZN12ActorManager19func_ov004_0210554cEv kind:function(thumb,size=0x2c) addr:0x21054cc
+_ZN12ActorManager19func_ov004_02105578Ei kind:function(thumb,size=0x90) addr:0x21054f8
+_ZN12ActorManager19func_ov004_02105608Eiii kind:function(thumb,size=0xb0) addr:0x2105588
+_ZN12ActorManager19func_ov004_021056b8Ev kind:function(thumb,size=0x10) addr:0x2105638
func_ov004_021056c8 kind:function(thumb,size=0x28) addr:0x2105648
func_ov004_021056f0 kind:function(thumb,size=0x24) addr:0x2105670
func_ov004_02105714 kind:function(thumb,size=0x38) addr:0x2105694
@@ -160,7 +160,7 @@ func_ov004_02105a64 kind:function(thumb,size=0x28) addr:0x21059e4
func_ov004_02105a8c kind:function(thumb,size=0x1c) addr:0x2105a0c
func_ov004_02105aa8 kind:function(thumb,size=0x68) addr:0x2105a28
func_ov004_02105b10 kind:function(thumb,size=0x154) addr:0x2105a90
-func_ov004_02105c64 kind:function(thumb,size=0x58) addr:0x2105be4
+LoadNarcFile kind:function(thumb,size=0x58) addr:0x2105be4
func_ov004_02105cbc kind:function(thumb,size=0x14) addr:0x2105c3c
func_ov004_02105cd0 kind:function(thumb,size=0xa8) addr:0x2105c50
func_ov004_02105d78 kind:function(thumb,size=0x2c) addr:0x2105cf8
@@ -212,20 +212,20 @@ func_ov004_02107130 kind:function(thumb,size=0x78) addr:0x21070b0
func_ov004_021071a8 kind:function(thumb,size=0x14) addr:0x2107128
func_ov004_021071bc kind:function(thumb,size=0x18) addr:0x210713c
_ZN11ItemManagerC1Ev kind:function(thumb,size=0x140) addr:0x2107154
-func_ov004_02107314 kind:function(thumb,size=0x1d4) addr:0x2107294
+_ZN11ItemManager4InitEv kind:function(thumb,size=0x1d4) addr:0x2107294
_ZN11ItemManagerD1Ev kind:function(thumb,size=0x1c) addr:0x2107468
-func_ov004_02107504 kind:function(thumb,size=0x144) addr:0x2107484
-func_ov004_02107648 kind:function(thumb,size=0x8) addr:0x21075c8
-func_ov004_02107650 kind:function(thumb,size=0x48) addr:0x21075d0
-func_ov004_02107698 kind:function(thumb,size=0x24) addr:0x2107618
-func_ov004_021076bc kind:function(thumb,size=0x94) addr:0x210763c
-func_ov004_02107750 kind:function(thumb,size=0xc0) addr:0x21076d0
-func_ov004_02107810 kind:function(thumb,size=0xfc) addr:0x2107790
-func_ov004_0210790c kind:function(thumb,size=0x40) addr:0x210788c
-func_ov004_0210794c kind:function(thumb,size=0x48) addr:0x21078cc
-func_ov004_02107994 kind:function(thumb,size=0x40) addr:0x2107914
-func_ov004_021079d4 kind:function(thumb,size=0x8) addr:0x2107954
-func_ov004_021079dc kind:function(thumb,size=0xa4) addr:0x210795c
+_ZN11ItemManager14InitEquipItemsEv kind:function(thumb,size=0x144) addr:0x2107484
+_ZN11ItemManager19func_ov004_02107648Ev kind:function(thumb,size=0x8) addr:0x21075c8
+_ZN11ItemManager19func_ov004_02107650Ev kind:function(thumb,size=0x48) addr:0x21075d0
+_ZN11ItemManager19func_ov004_02107698Ev kind:function(thumb,size=0x24) addr:0x2107618
+_ZN11ItemManager19func_ov004_021076bcEv kind:function(thumb,size=0x94) addr:0x210763c
+_ZN11ItemManager12SpawnFairiesEv kind:function(thumb,size=0xc0) addr:0x21076d0
+_ZN13ActorNaviBaseC2Ev kind:function(thumb,size=0xfc) addr:0x2107790
+_ZN13ActorNaviBaseD1Ev kind:function(thumb,size=0x40) addr:0x210788c
+_ZN13ActorNaviBaseD0Ev kind:function(thumb,size=0x48) addr:0x21078cc
+_ZN13ActorNaviBaseD2Ev kind:function(thumb,size=0x40) addr:0x2107914
+_Z19func_ov004_021079d4Pi kind:function(thumb,size=0x8) addr:0x2107954
+_ZN13ActorNaviBase8vfunc_08Ev kind:function(thumb,size=0xa4) addr:0x210795c
func_ov004_02107a80 kind:function(thumb,size=0x20) addr:0x2107a00
func_ov004_02107aa0 kind:function(thumb,size=0xc4) addr:0x2107a20
func_ov004_02107b64 kind:function(thumb,size=0x9c) addr:0x2107ae4
@@ -234,19 +234,19 @@ func_ov004_02107c2c kind:function(thumb,size=0x20) addr:0x2107bac
func_ov004_02107c4c kind:function(thumb,size=0x1c0) addr:0x2107bcc
func_ov004_02107e0c kind:function(thumb,size=0x28) addr:0x2107d8c
func_ov004_02107e34 kind:function(thumb,size=0x20) addr:0x2107db4
-func_ov004_02107e54 kind:function(thumb,size=0x24) addr:0x2107dd4
-func_ov004_02107e78 kind:function(thumb,size=0x24) addr:0x2107df8
-func_ov004_02107e9c kind:function(thumb,size=0x9c) addr:0x2107e1c
-func_ov004_02107f38 kind:function(thumb,size=0x10) addr:0x2107eb8
-func_ov004_02107f48 kind:function(thumb,size=0xc0) addr:0x2107ec8
-func_ov004_02108008 kind:function(thumb,size=0x58) addr:0x2107f88
+_ZN13PlayerManager6CreateEv kind:function(thumb,size=0x24) addr:0x2107dd4
+_ZN13PlayerManager7DestroyEv kind:function(thumb,size=0x24) addr:0x2107df8
+_ZN13PlayerManagerC1Ev kind:function(thumb,size=0x9c) addr:0x2107e1c
+_ZN13PlayerManagerD1Ev kind:function(thumb,size=0x10) addr:0x2107eb8
+_ZN13PlayerManager4InitEb kind:function(thumb,size=0xc0) addr:0x2107ec8
+_ZN13PlayerManager19func_ov004_02108008Ev kind:function(thumb,size=0x58) addr:0x2107f88
func_ov004_02108060 kind:function(thumb,size=0x18) addr:0x2107fe0
func_ov004_02108078 kind:function(thumb,size=0x21c) addr:0x2107ff8
func_ov004_02108294 kind:function(thumb,size=0x28) addr:0x2108214
-func_ov004_021082bc kind:function(thumb,size=0x138) addr:0x210823c
-func_ov004_021083f4 kind:function(thumb,size=0x2c) addr:0x2108374
-func_ov004_02108420 kind:function(thumb,size=0x60) addr:0x21083a0
-func_ov004_02108480 kind:function(thumb,size=0x68) addr:0x2108400
+_ZN15LinkStateDamageC2EP14PlayerLinkBase kind:function(thumb,size=0x138) addr:0x210823c
+_Z19func_ov004_021083f4Piiii kind:function(thumb,size=0x2c) addr:0x2108374
+_ZN15LinkStateDamageD1Ev kind:function(thumb,size=0x60) addr:0x21083a0
+_ZN15LinkStateDamageD0Ev kind:function(thumb,size=0x68) addr:0x2108400
func_ov004_021084e8 kind:function(thumb,size=0x51c) addr:0x2108468
func_ov004_02108a04 kind:function(thumb,size=0x17c) addr:0x2108984
func_ov004_02108b80 kind:function(thumb,size=0x10) addr:0x2108b00
@@ -263,7 +263,7 @@ func_ov004_021097b0 kind:function(thumb,size=0x1b8) addr:0x2109730
func_ov004_02109968 kind:function(thumb,size=0x48) addr:0x21098e8
func_ov004_021099b0 kind:function(thumb,size=0x5c) addr:0x2109930
func_ov004_02109a0c kind:function(thumb,size=0x4c) addr:0x210998c
-func_ov004_02109a58 kind:function(thumb,size=0x90) addr:0x21099d8
+_ZN13LinkStateItemC2EP14PlayerLinkBase kind:function(thumb,size=0x90) addr:0x21099d8
_ZN13LinkStateItemD1Ev kind:function(thumb,size=0x20) addr:0x2109a68
_ZN13LinkStateItemD0Ev kind:function(thumb,size=0x24) addr:0x2109a88
func_ov004_02109b2c kind:function(thumb,size=0x4c) addr:0x2109aac
@@ -273,94 +273,94 @@ func_ov004_02109e10 kind:function(thumb,size=0x50) addr:0x2109d90
func_ov004_02109e60 kind:function(thumb,size=0x1f0) addr:0x2109de0
func_ov004_0210a050 kind:function(thumb,size=0x44) addr:0x2109fd0
func_ov004_0210a094 kind:function(thumb,size=0x14) addr:0x210a014
-func_ov004_0210a0a8 kind:function(thumb,size=0x68c) addr:0x210a028
-func_ov004_0210a734 kind:function(thumb,size=0xd0) addr:0x210a6b4
-func_ov004_0210a804 kind:function(thumb,size=0xd8) addr:0x210a784
-func_ov004_0210a8dc kind:function(thumb,size=0xd0) addr:0x210a85c
-func_ov004_0210a9ac kind:function(thumb,size=0x174) addr:0x210a92c
-func_ov004_0210ab20 kind:function(thumb,size=0x24) addr:0x210aaa0
-func_ov004_0210ab44 kind:function(thumb,size=0x44) addr:0x210aac4
-func_ov004_0210ab88 kind:function(thumb,size=0x14) addr:0x210ab08
-func_ov004_0210ab9c kind:function(thumb,size=0x1c) addr:0x210ab1c
+_ZN14PlayerLinkBaseC2Ev kind:function(thumb,size=0x68c) addr:0x210a028
+_ZN14PlayerLinkBaseD1Ev kind:function(thumb,size=0xd0) addr:0x210a6b4
+_ZN14PlayerLinkBaseD0Ev kind:function(thumb,size=0xd8) addr:0x210a784
+_ZN14PlayerLinkBaseD2Ev kind:function(thumb,size=0xd0) addr:0x210a85c
+_ZN14PlayerLinkBase4InitEv kind:function(thumb,size=0x174) addr:0x210a92c
+_ZN14PlayerLinkBase8vfunc_20Ev kind:function(thumb,size=0x24) addr:0x210aaa0
+_ZN17LinkStateInteractC2EP14PlayerLinkBase kind:function(thumb,size=0x44) addr:0x210aac4
+_ZN17LinkStateInteractD1Ev kind:function(thumb,size=0x14) addr:0x210ab08
+_ZN17LinkStateInteractD0Ev kind:function(thumb,size=0x1c) addr:0x210ab1c
func_ov004_0210abb8 kind:function(thumb,size=0x1c) addr:0x210ab38
-func_ov004_0210abd4 kind:function(thumb,size=0xf4) addr:0x210ab54
-func_ov004_0210acc8 kind:function(thumb,size=0x44) addr:0x210ac48
-func_ov004_0210ad0c kind:function(thumb,size=0x4c) addr:0x210ac8c
-func_ov004_0210ad58 kind:function(thumb,size=0x3c) addr:0x210acd8
-func_ov004_0210ad94 kind:function(thumb,size=0x1c) addr:0x210ad14
-func_ov004_0210adb0 kind:function(thumb,size=0x24) addr:0x210ad30
-func_ov004_0210add4 kind:function(thumb,size=0x10) addr:0x210ad54
-func_ov004_0210ade4 kind:function(thumb,size=0x4) addr:0x210ad64
-func_ov004_0210ade8 kind:function(thumb,size=0xc) addr:0x210ad68
-func_ov004_0210adf4 kind:function(thumb,size=0x4) addr:0x210ad74
+_ZN17LinkStateCutsceneC2EP14PlayerLinkBase kind:function(thumb,size=0xf4) addr:0x210ab54
+_ZN17LinkStateCutsceneD1Ev kind:function(thumb,size=0x44) addr:0x210ac48
+_ZN17LinkStateCutsceneD0Ev kind:function(thumb,size=0x4c) addr:0x210ac8c
+_ZN15LinkStateFollowC2EP14PlayerLinkBase kind:function(thumb,size=0x3c) addr:0x210acd8
+_ZN15LinkStateFollowD1Ev kind:function(thumb,size=0x1c) addr:0x210ad14
+_ZN15LinkStateFollowD0Ev kind:function(thumb,size=0x24) addr:0x210ad30
+_ZN13LinkStateBaseC2EP14PlayerLinkBase kind:function(thumb,size=0x10) addr:0x210ad54
+_ZN13LinkStateBaseD1Ev kind:function(thumb,size=0x4) addr:0x210ad64
+_ZN13LinkStateBaseD0Ev kind:function(thumb,size=0xc) addr:0x210ad68
+_ZN13LinkStateBaseD2Ev kind:function(thumb,size=0x4) addr:0x210ad74
_ZN13LinkStateBase20CreateDebugHierarchyEv kind:function(thumb,size=0x4) addr:0x210ad78
-func_ov004_0210adfc kind:function(thumb,size=0x84) addr:0x210ad7c
-func_ov004_0210ae80 kind:function(thumb,size=0x28) addr:0x210ae00
-func_ov004_0210aea8 kind:function(thumb,size=0x2c) addr:0x210ae28
-func_ov004_0210aed4 kind:function(thumb,size=0x20) addr:0x210ae54
-func_ov004_0210aef4 kind:function(thumb,size=0xc) addr:0x210ae74
-func_ov004_0210af00 kind:function(thumb,size=0x14) addr:0x210ae80
-func_ov004_0210af14 kind:function(thumb,size=0x24) addr:0x210ae94
-func_ov004_0210af38 kind:function(thumb,size=0x24) addr:0x210aeb8
+_ZN13LinkStateRollC2EP14PlayerLinkBase kind:function(thumb,size=0x84) addr:0x210ad7c
+_ZN13LinkStateRollD1Ev kind:function(thumb,size=0x28) addr:0x210ae00
+_ZN13LinkStateRollD0Ev kind:function(thumb,size=0x2c) addr:0x210ae28
+_ZN13LinkStateMoveC2EP14PlayerLinkBase kind:function(thumb,size=0x20) addr:0x210ae54
+_ZN13LinkStateMoveD1Ev kind:function(thumb,size=0xc) addr:0x210ae74
+_ZN13LinkStateMoveD0Ev kind:function(thumb,size=0x14) addr:0x210ae80
+_ZN15ItemModelLoader6CreateEv kind:function(thumb,size=0x24) addr:0x210ae94
+_ZN15ItemModelLoader7DestroyEv kind:function(thumb,size=0x24) addr:0x210aeb8
func_ov004_0210af5c kind:function(thumb,size=0x80) addr:0x210aedc
-func_ov004_0210afdc kind:function(thumb,size=0x11c) addr:0x210af5c
-func_ov004_0210b0f8 kind:function(thumb,size=0x44) addr:0x210b078
-func_ov004_0210b13c kind:function(thumb,size=0x24) addr:0x210b0bc
-func_ov004_0210b160 kind:function(thumb,size=0x24) addr:0x210b0e0
-func_ov004_0210b184 kind:function(thumb,size=0x4c) addr:0x210b104
-func_ov004_0210b1d0 kind:function(thumb,size=0x20) addr:0x210b150
-func_ov004_0210b1f0 kind:function(thumb,size=0x20) addr:0x210b170
-func_ov004_0210b210 kind:function(thumb,size=0x48) addr:0x210b190
-func_ov004_0210b258 kind:function(thumb,size=0x28) addr:0x210b1d8
-func_ov004_0210b280 kind:function(thumb,size=0x30) addr:0x210b200
-func_ov004_0210b2b0 kind:function(thumb,size=0x28) addr:0x210b230
+_ZN13PlayerControlC1Ev kind:function(thumb,size=0x11c) addr:0x210af5c
+_ZN13PlayerControlD1Ev kind:function(thumb,size=0x44) addr:0x210b078
+_ZN13PlayerControl6CreateEv kind:function(thumb,size=0x24) addr:0x210b0bc
+_ZN13PlayerControl7DestroyEv kind:function(thumb,size=0x24) addr:0x210b0e0
+_ZN13PlayerControl4InitEv kind:function(thumb,size=0x4c) addr:0x210b104
+_ZN13PlayerControl19func_ov004_0210b1d0Ev kind:function(thumb,size=0x20) addr:0x210b150
+_ZN13PlayerControl19func_ov004_0210b1f0Ev kind:function(thumb,size=0x20) addr:0x210b170
+_ZN10PlayerBaseC2Ev kind:function(thumb,size=0x48) addr:0x210b190
+_ZN10PlayerBaseD1Ev kind:function(thumb,size=0x28) addr:0x210b1d8
+_ZN10PlayerBaseD0Ev kind:function(thumb,size=0x30) addr:0x210b200
+_ZN10PlayerBaseD2Ev kind:function(thumb,size=0x28) addr:0x210b230
func_ov004_0210b2d8 kind:function(thumb,size=0xb8) addr:0x210b258
func_ov004_0210b390 kind:function(thumb,size=0x14) addr:0x210b310
func_ov004_0210b3a4 kind:function(thumb,size=0x2c) addr:0x210b324
func_ov004_0210b3d0 kind:function(arm,size=0x4) addr:0x210b350
func_ov004_0210b3d4 kind:function(arm,size=0x1c) addr:0x210b354
-func_ov004_0210b3f0 kind:function(thumb,size=0x144) addr:0x210b370
-func_ov004_0210b534 kind:function(thumb,size=0x54) addr:0x210b4b4
-func_ov004_0210b588 kind:function(thumb,size=0x58) addr:0x210b508
-func_ov004_0210b5e0 kind:function(thumb,size=0x54) addr:0x210b560
-func_ov004_0210b634 kind:function(thumb,size=0xc) addr:0x210b5b4
-func_ov004_0210b640 kind:function(thumb,size=0x38) addr:0x210b5c0
-func_ov004_0210b678 kind:function(thumb,size=0x4) addr:0x210b5f8
+_ZN17PlayerControlDataC2Ev kind:function(thumb,size=0x144) addr:0x210b370
+_ZN17PlayerControlDataD1Ev kind:function(thumb,size=0x54) addr:0x210b4b4
+_ZN17PlayerControlDataD0Ev kind:function(thumb,size=0x58) addr:0x210b508
+_ZN17PlayerControlDataD2Ev kind:function(thumb,size=0x54) addr:0x210b560
+_Z19func_ov004_0210b634Pi kind:function(thumb,size=0xc) addr:0x210b5b4
+_ZN17PlayerControlData8vfunc_18Ev kind:function(thumb,size=0x38) addr:0x210b5c0
+_ZN17PlayerControlData8vfunc_1cEv kind:function(thumb,size=0x4) addr:0x210b5f8
func_ov004_0210b67c kind:function(thumb,size=0x2c) addr:0x210b5fc
func_ov004_0210b6a8 kind:function(thumb,size=0x2c) addr:0x210b628
-func_ov004_0210b6d4 kind:function(thumb,size=0x244) addr:0x210b654
-func_ov004_0210b918 kind:function(thumb,size=0xa0) addr:0x210b898
-func_ov004_0210b9b8 kind:function(thumb,size=0xa8) addr:0x210b938
-func_ov004_0210ba60 kind:function(thumb,size=0x14) addr:0x210b9e0
-func_ov004_0210ba74 kind:function(thumb,size=0x4) addr:0x210b9f4
-func_ov004_0210ba78 kind:function(thumb,size=0xc) addr:0x210b9f8
-func_ov004_0210ba84 kind:function(thumb,size=0x4) addr:0x210ba04
-func_ov004_0210ba88 kind:function(thumb,size=0x4) addr:0x210ba08
-func_ov004_0210ba8c kind:function(thumb,size=0x19c) addr:0x210ba0c
-func_ov004_0210bc28 kind:function(thumb,size=0x6c) addr:0x210bba8
-func_ov004_0210bc94 kind:function(thumb,size=0x70) addr:0x210bc14
+_ZN10EquipSwordC2Ev kind:function(thumb,size=0x244) addr:0x210b654
+_ZN10EquipSwordD1Ev kind:function(thumb,size=0xa0) addr:0x210b898
+_ZN10EquipSwordD0Ev kind:function(thumb,size=0xa8) addr:0x210b938
+_ZN9EquipItemC2Ev kind:function(thumb,size=0x14) addr:0x210b9e0
+_ZN9EquipItemD1Ev kind:function(thumb,size=0x4) addr:0x210b9f4
+_ZN9EquipItemD0Ev kind:function(thumb,size=0xc) addr:0x210b9f8
+_ZN9EquipItemD2Ev kind:function(thumb,size=0x4) addr:0x210ba04
+_ZN9EquipItem8vfunc_10Ev kind:function(thumb,size=0x4) addr:0x210ba08
+_ZN11EquipShieldC2Ev kind:function(thumb,size=0x19c) addr:0x210ba0c
+_ZN11EquipShieldD1Ev kind:function(thumb,size=0x6c) addr:0x210bba8
+_ZN11EquipShieldD0Ev kind:function(thumb,size=0x70) addr:0x210bc14
func_ov004_0210bd04 kind:function(thumb,size=0x24) addr:0x210bc84
func_ov004_0210bd28 kind:function(thumb,size=0x24) addr:0x210bca8
func_ov004_0210bd4c kind:function(thumb,size=0x6c) addr:0x210bccc
func_ov004_0210bdb8 kind:function(thumb,size=0x2c) addr:0x210bd38
-func_ov004_0210bde4 kind:function(arm,size=0x20) addr:0x210bd64
-func_ov004_0210be04 kind:function(thumb,size=0x1a4) addr:0x210bd84
-func_ov004_0210bfa8 kind:function(thumb,size=0x170) addr:0x210bf28
-func_ov004_0210c118 kind:function(thumb,size=0xe0) addr:0x210c098
-func_ov004_0210c1f8 kind:function(thumb,size=0x204) addr:0x210c178
-func_ov004_0210c3fc kind:function(thumb,size=0x130) addr:0x210c37c
-func_ov004_0210c52c kind:function(thumb,size=0xa0) addr:0x210c4ac
-func_ov004_0210c5cc kind:function(thumb,size=0x198) addr:0x210c54c
-func_ov004_0210c764 kind:function(thumb,size=0x9c) addr:0x210c6e4
-func_ov004_0210c800 kind:function(thumb,size=0x8c) addr:0x210c780
-func_ov004_0210c88c kind:function(thumb,size=0x48) addr:0x210c80c
-func_ov004_0210c8d4 kind:function(thumb,size=0x1b0) addr:0x210c854
-func_ov004_0210ca84 kind:function(thumb,size=0x7c) addr:0x210ca04
-func_ov004_0210cb00 kind:function(thumb,size=0x1c) addr:0x210ca80
-func_ov004_0210cb1c kind:function(thumb,size=0x1c) addr:0x210ca9c
-func_ov004_0210cb38 kind:function(thumb,size=0xe8) addr:0x210cab8
-func_ov004_0210cc20 kind:function(thumb,size=0x38) addr:0x210cba0
-func_ov004_0210cc58 kind:function(thumb,size=0x24) addr:0x210cbd8
+_ZN15MapBase_Unk_180C1Ev kind:function(arm,size=0x20) addr:0x210bd64
+_ZN7MapBaseC2Ejj kind:function(thumb,size=0x1a4) addr:0x210bd84
+_ZN7MapBase8vfunc_14Ev kind:function(thumb,size=0x170) addr:0x210bf28
+_ZN7MapBase19func_ov004_0210c118Ev kind:function(thumb,size=0xe0) addr:0x210c098
+_ZN7MapBase8vfunc_08EjjP6Course kind:function(thumb,size=0x204) addr:0x210c178
+_ZN7MapBase8vfunc_0cEP6Course kind:function(thumb,size=0x130) addr:0x210c37c
+_ZN7MapBase8vfunc_10Ev kind:function(thumb,size=0xa0) addr:0x210c4ac
+_ZN7MapBase8vfunc_2cEv kind:function(thumb,size=0x198) addr:0x210c54c
+_ZN7MapBase8vfunc_30Ei kind:function(thumb,size=0x9c) addr:0x210c6e4
+_ZN7MapBase8vfunc_34EPc kind:function(thumb,size=0x8c) addr:0x210c780
+_ZN7MapBase8vfunc_38Ev kind:function(thumb,size=0x48) addr:0x210c80c
+_ZN7MapBase8vfunc_3cEv kind:function(thumb,size=0x1b0) addr:0x210c854
+_ZN7MapBase8vfunc_40Ev kind:function(thumb,size=0x7c) addr:0x210ca04
+_ZN7MapBase8vfunc_44Ev kind:function(thumb,size=0x1c) addr:0x210ca80
+_ZN7MapBase19func_ov004_0210cb1cEv kind:function(thumb,size=0x1c) addr:0x210ca9c
+_ZN7MapBase19func_ov004_0210cb38Ev kind:function(thumb,size=0xe8) addr:0x210cab8
+_ZN7MapBase19func_ov004_0210cc20EP6Course kind:function(thumb,size=0x38) addr:0x210cba0
+_ZN7MapBase19func_ov004_0210cc58EP6Coursej kind:function(thumb,size=0x24) addr:0x210cbd8
func_ov004_0210cc7c kind:function(arm,size=0x14) addr:0x210cbfc
func_ov004_0210cc90 kind:function(arm,size=0x14) addr:0x210cc10
func_ov004_0210cca4 kind:function(arm,size=0x14) addr:0x210cc24
@@ -405,18 +405,18 @@ func_ov004_0210deb0 kind:function(thumb,size=0xd84) addr:0x210de30
func_ov004_0210eb10 kind:label(thumb) addr:0x210ea90
func_ov004_0210ec34 kind:function(thumb,size=0x8c) addr:0x210ebb4
func_ov004_0210ecc0 kind:function(thumb,size=0x5c) addr:0x210ec40
-func_ov004_0210ed1c kind:function(thumb,size=0x114) addr:0x210ec9c
-func_ov004_0210ee30 kind:function(thumb,size=0x54) addr:0x210edb0
-func_ov004_0210ee84 kind:function(thumb,size=0x10c) addr:0x210ee04
-func_ov004_0210ef90 kind:function(thumb,size=0x80) addr:0x210ef10
-func_ov004_0210f010 kind:function(thumb,size=0x6c) addr:0x210ef90
-func_ov004_0210f07c kind:function(thumb,size=0x80) addr:0x210effc
-func_ov004_0210f0fc kind:function(thumb,size=0x44) addr:0x210f07c
-func_ov004_0210f140 kind:function(thumb,size=0x17c) addr:0x210f0c0
-func_ov004_0210f2bc kind:function(thumb,size=0xb0) addr:0x210f23c
-func_ov004_0210f36c kind:function(thumb,size=0x78) addr:0x210f2ec
-func_ov004_0210f3e4 kind:function(thumb,size=0x88) addr:0x210f364
-func_ov004_0210f46c kind:function(thumb,size=0x5c) addr:0x210f3ec
+_ZN6CourseC1Ev kind:function(thumb,size=0x114) addr:0x210ec9c
+_ZN6CourseD1Ev kind:function(thumb,size=0x54) addr:0x210edb0
+_ZN6Course19func_ov004_0210ee84EPc kind:function(thumb,size=0x10c) addr:0x210ee04
+_ZN6Course19func_ov004_0210ef90Ei kind:function(thumb,size=0x80) addr:0x210ef10
+_ZN6Course19func_ov004_0210f010Ev kind:function(thumb,size=0x6c) addr:0x210ef90
+_ZN6Course11LoadMapDataEPhiici kind:function(thumb,size=0x80) addr:0x210effc
+_ZN6Course19func_ov004_0210f0fcEiPsi kind:function(thumb,size=0x44) addr:0x210f07c
+_ZN6Course19func_ov004_0210f140Ei kind:function(thumb,size=0x17c) addr:0x210f0c0
+_ZN15CutsceneHandlerC1Ev kind:function(thumb,size=0xb0) addr:0x210f23c
+_ZN15CutsceneHandlerD1Ev kind:function(thumb,size=0x78) addr:0x210f2ec
+_ZN15CutsceneHandler19func_ov004_0210f3e4Ei kind:function(thumb,size=0x88) addr:0x210f364
+_ZN15CutsceneHandler19func_ov004_0210f46cEv kind:function(thumb,size=0x5c) addr:0x210f3ec
func_ov004_0210f4c8 kind:function(thumb,size=0xc) addr:0x210f448
func_ov004_0210f4d4 kind:function(thumb,size=0x4) addr:0x210f454
func_ov004_0210f4d8 kind:function(thumb,size=0xc) addr:0x210f458
@@ -585,7 +585,7 @@ data_ov004_02110468 kind:data(any) addr:0x21103e8
data_ov004_0211047c kind:data(any) addr:0x21103fc
data_ov004_02110484 kind:data(any) addr:0x2110404
data_ov004_0211048c kind:data(any) addr:0x211040c
-data_ov004_021104a0 kind:data(any) addr:0x2110420
+_ZTV14DebugHierarchy kind:data(any) addr:0x2110420
data_ov004_021104e0 kind:data(any) addr:0x2110460
data_ov004_021104f0 kind:data(any) addr:0x2110470
data_ov004_021104f8 kind:data(any) addr:0x2110478
diff --git a/include/Actor/ActorManager.hpp b/include/Actor/ActorManager.hpp
index 6d3cce71..fd246f37 100644
--- a/include/Actor/ActorManager.hpp
+++ b/include/Actor/ActorManager.hpp
@@ -93,6 +93,18 @@ public:
void func_ov00_020c3ce8(unk32 param1, bool param2);
void Actor_vfunc_28();
static bool ActorTypeIsOneOf(ActorTypeId type, const ActorTypeId *types);
+
+ static void Create();
+ static void Destroy();
+ ActorManager();
+ ~ActorManager();
+ void func_ov004_0210532c();
+ void func_ov004_021053dc();
+ void func_ov004_021054a4(s32 *param1, s32 param2, unk32 param3);
+ void func_ov004_0210554c();
+ bool func_ov004_02105578(unk32 param1);
+ bool func_ov004_02105608(unk32 param1, unk32 param2, unk32 param3);
+ void func_ov004_021056b8();
};
extern ActorManager *gActorManager;
diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp
index 311de7c0..e0c7c120 100644
--- a/include/Actor/Navi/ActorNaviBase.hpp
+++ b/include/Actor/Navi/ActorNaviBase.hpp
@@ -12,7 +12,8 @@ class ActorNaviBase : public Actor {
/* 000 (base) */
/* 158 */ Vec3p mUnk_158;
/* 164 */ unk32 mUnk_164;
- /* 168 */ unk8 mUnk_168[0x68];
+ /* 168 */ ModelRender mUnk_168;
+ /* 1c4 */ unk8 mUnk_1c4[0xc];
/* 1d0 */ void *mUnk_1d0;
/* 1d4 */ unk8 mUnk_1d4[0x30];
/* 214 */ unk16 mUnk_214;
@@ -98,4 +99,6 @@ class ActorNaviBase : public Actor {
void func_ov000_020bad18();
static void func_ov000_020bb0ac();
static void func_ov000_020bb0e0();
+
+ ActorNaviBase();
};
diff --git a/include/Cutscene/CutsceneHandler.hpp b/include/Cutscene/CutsceneHandler.hpp
index 50f0c1cb..035638a7 100644
--- a/include/Cutscene/CutsceneHandler.hpp
+++ b/include/Cutscene/CutsceneHandler.hpp
@@ -43,7 +43,6 @@ public:
/* 88 */ s32 mUnk_88;
/* 8c */
- CutsceneHandler();
s32 func_ov000_020980fc(unk32 param1, unk32 param2, void **param3);
bool func_ov000_02098114();
bool SkipCutscene(s32 param1);
@@ -58,4 +57,9 @@ public:
bool func_ov000_02098860();
unk32 func_ov000_02098890(unk32 param1, s32 param2);
static unk32 func_ov000_02098920(unk32 param1);
+
+ CutsceneHandler();
+ ~CutsceneHandler();
+ void func_ov004_0210f3e4(s32 param1);
+ void func_ov004_0210f46c();
};
diff --git a/include/DTCM/UnkStruct_027e103c.hpp b/include/DTCM/UnkStruct_027e103c.hpp
index 7761fb0e..339c9213 100644
--- a/include/DTCM/UnkStruct_027e103c.hpp
+++ b/include/DTCM/UnkStruct_027e103c.hpp
@@ -101,6 +101,18 @@ struct UnkStruct_027e103c {
void func_ov000_020cfe40(unk8 param1, unk32 param2);
void func_ov000_020cfe74(unk32 param1, unk32 param2);
unk32 func_ov000_020cfea8();
+
+ UnkStruct_027e103c();
+ ~UnkStruct_027e103c();
+ static void Create();
+ static void Destroy();
+ void func_ov004_02104d68();
+ static bool func_ov004_02104f5c();
+ void func_ov004_02104f78();
+ void func_ov004_02104fa8();
+ void func_ov004_02104fb8();
+ void func_ov004_02104ffc(unk32 param1, unk32 param2);
+ void func_ov004_0210504c();
};
extern UnkStruct_027e103c *data_027e103c;
diff --git a/include/Debug/DebugHierarchy.hpp b/include/Debug/DebugHierarchy.hpp
index 05ab803f..fcbc0f50 100644
--- a/include/Debug/DebugHierarchy.hpp
+++ b/include/Debug/DebugHierarchy.hpp
@@ -6,6 +6,10 @@
#include "Debug/DebugHierarchyBase.hpp"
class DebugHierarchy : public DebugHierarchyBase {
+public:
/* 00 (base) */
/* 08 */
+
+ /* 00 */ ~DebugHierarchy() override;
+ /* 40 */
};
diff --git a/include/Debug/DebugHierarchyBase.hpp b/include/Debug/DebugHierarchyBase.hpp
index 7ce7a2fc..5b4a175a 100644
--- a/include/Debug/DebugHierarchyBase.hpp
+++ b/include/Debug/DebugHierarchyBase.hpp
@@ -7,6 +7,7 @@
#include "System/SysNew.hpp"
class DebugHierarchyBase : public SysObject {
+public:
/* 00 (vtable) */
/* 04 */ void *mNodes;
/* 08 */
diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp
index d219c838..c0a84aa7 100644
--- a/include/Item/ItemManager.hpp
+++ b/include/Item/ItemManager.hpp
@@ -106,6 +106,7 @@ public:
static void Destroy();
ItemManager();
~ItemManager();
+ void Init();
// Save/load
void Save(SaveItemManager *save);
@@ -116,6 +117,7 @@ public:
ActorNavi *GetFairy(FairyId id) const;
u32 GetActiveFairyLevel(FairyId id) const;
u32 GetFairyLevel(FairyId id) const;
+ void SpawnFairies();
// Equip item
void ClearPrevEquippedItem();
@@ -134,6 +136,11 @@ public:
bool ClearForcedEquipItem();
void UpdateSwordShieldInUse();
static EquipItem *GetEquipItemUnchecked(ItemFlag equipId);
+ void InitEquipItems();
+ void func_ov004_02107648();
+ void func_ov004_02107650();
+ void func_ov004_02107698();
+ void func_ov004_021076bc();
// Ammo
u16 GetAmmo(ItemFlag equipId) const;
diff --git a/include/Item/ItemModelLoader.hpp b/include/Item/ItemModelLoader.hpp
index 0f470e6b..6b06893a 100644
--- a/include/Item/ItemModelLoader.hpp
+++ b/include/Item/ItemModelLoader.hpp
@@ -23,4 +23,7 @@ public:
void func_ov000_020bb414(unk32 param1);
void func_ov000_020bb420(unk32 param1);
void func_ov000_020bb42c(unk32 param1);
+
+ static void Create();
+ static void Destroy();
};
diff --git a/include/Map/Course.hpp b/include/Map/Course.hpp
index 8f87379c..b9b11904 100644
--- a/include/Map/Course.hpp
+++ b/include/Map/Course.hpp
@@ -111,4 +111,13 @@ class Course : public SysObject {
bool GetMapDataFlag4(unk32 param_2);
MapData *FindMapData(u32 map);
MapData *FindCurrentMapData();
+
+ Course();
+ ~Course();
+ bool func_ov004_0210ee84(char *param1);
+ unk32 func_ov004_0210ef90(unk32 param1);
+ void func_ov004_0210f010();
+ void LoadMapData(u8 *map, s32 x, s32 y, char param4, unk32 param5);
+ bool func_ov004_0210f0fc(unk32 param1, unk16 *param2, s32 param3);
+ void func_ov004_0210f140(s32 param1);
};
diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp
index f85c782e..c92060a3 100644
--- a/include/Map/MapBase.hpp
+++ b/include/Map/MapBase.hpp
@@ -25,6 +25,7 @@ struct MapBase_Unk_180 {
/* 4 */
~MapBase_Unk_180();
+ MapBase_Unk_180();
};
struct MapBase_Unk1 {
@@ -234,4 +235,11 @@ public:
void func_ov00_02080de4();
unk8 func_ov00_02080de8(unk32 param_2);
void func_ov00_02080edc();
+
+ MapBase(u32 param1, u32 param2);
+ void func_ov004_0210c118();
+ void func_ov004_0210cb1c();
+ void func_ov004_0210cb38();
+ void func_ov004_0210cc20(Course *course);
+ void func_ov004_0210cc58(Course *course, u32 map);
};
diff --git a/include/Map/MapData.hpp b/include/Map/MapData.hpp
index 35dbc007..a2343aa2 100644
--- a/include/Map/MapData.hpp
+++ b/include/Map/MapData.hpp
@@ -16,7 +16,9 @@ public:
/* 06 */ unk8 mUnk_06[2];
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
- /* 10 */ unk8 mUnk_10[4];
+ /* 10 */ unk8 mGridX;
+ /* 11 */ unk8 mGridY;
+ /* 12 */ unk8 mUnk_12[2];
/* 14 */ Vec3p mCenter;
/* 20 */ unk32 mFlags0[1];
/* 24 */ unk32 mFlags1[8];
@@ -25,7 +27,7 @@ public:
/* 54 */ unk32 mFlags4[1];
/* 58 */
- MapData(u8 *map, unk8 param2, unk8 param3, unk32 param4, unk32 param5);
+ MapData(u8 *map, unk8 x, unk8 y, unk32 param4, unk32 param5);
~MapData();
void func_ov000_020972e4(u16 *param1, unk32 *param2, bool param3);
void func_ov000_02097354();
diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp
index 0cfa7479..13ca4348 100644
--- a/include/Map/MapManager.hpp
+++ b/include/Map/MapManager.hpp
@@ -245,6 +245,16 @@ public:
Vec3p *param_8);
bool func_ov00_02086a84(s32 *param_2, Vec3p *param_3, Vec3p *param_4, s32 param_5, s32 param_6, unk32 param_7,
Vec3p *param_8, Vec3p *param_9);
+
+ MapManager();
+ ~MapManager();
+ static void Create();
+ static void Destroy();
+ static void LoadMapTexSprites(s32 param1);
+ void func_ov004_02102260();
+ void func_ov004_02102264(unk32 *param1, char *param2);
+ void func_ov004_021024c4(s32 param1, unk32 param2, unk32 param3);
+ void func_ov004_021025d8();
};
extern MapManager *gMapManager;
diff --git a/include/Player/LinkStateBase.hpp b/include/Player/LinkStateBase.hpp
index f3ac5087..b7f7800a 100644
--- a/include/Player/LinkStateBase.hpp
+++ b/include/Player/LinkStateBase.hpp
@@ -127,6 +127,8 @@ public:
s32 Get_PlayerLinkBase_Unk38();
DebugHierarchy *GetDebugHierarchy0();
DebugHierarchy *GetDebugHierarchy1();
+
+ LinkStateBase(PlayerLinkBase *link);
};
LinkStateBase *GetLinkState(s32 index);
diff --git a/include/Player/LinkStateCutscene.hpp b/include/Player/LinkStateCutscene.hpp
index 52b40e42..3c343b94 100644
--- a/include/Player/LinkStateCutscene.hpp
+++ b/include/Player/LinkStateCutscene.hpp
@@ -96,4 +96,6 @@ public:
void func_ov000_020b3278(s32 param1, s32 *param2);
void func_ov000_020b35d8(s32 param1, s32 param2);
void func_ov000_020b38dc(u32 param1, u32 param2);
+
+ LinkStateCutscene(PlayerLinkBase *link);
};
diff --git a/include/Player/LinkStateDamage.hpp b/include/Player/LinkStateDamage.hpp
index 1c59d90e..0e3a70a7 100644
--- a/include/Player/LinkStateDamage.hpp
+++ b/include/Player/LinkStateDamage.hpp
@@ -48,4 +48,6 @@ class LinkStateDamage : public LinkStateBase {
void func_ov00_020ace90(Vec3p *param1, unk32 param2);
void func_ov00_020acfe8(bool param1);
+
+ LinkStateDamage(PlayerLinkBase *link);
};
diff --git a/include/Player/LinkStateFollow.hpp b/include/Player/LinkStateFollow.hpp
index 09de008e..1d9a5403 100644
--- a/include/Player/LinkStateFollow.hpp
+++ b/include/Player/LinkStateFollow.hpp
@@ -37,4 +37,6 @@ public:
LinkStateCutscene *GetLinkStateCutscene();
bool func_ov00_020a9180(Vec3p *param1);
bool func_ov00_020a9210(Vec3p *param1, Actor *param2);
+
+ LinkStateFollow(PlayerLinkBase *link);
};
diff --git a/include/Player/LinkStateInteract.hpp b/include/Player/LinkStateInteract.hpp
index 55081c8a..d0bacf2d 100644
--- a/include/Player/LinkStateInteract.hpp
+++ b/include/Player/LinkStateInteract.hpp
@@ -53,4 +53,6 @@ public:
void func_ov00_020abc18(ActorRef *ref);
bool func_ov00_020abc40();
bool func_ov00_020abc78(ActorRef *ref);
+
+ LinkStateInteract(PlayerLinkBase *link);
};
diff --git a/include/Player/LinkStateItem.hpp b/include/Player/LinkStateItem.hpp
index 0c5f4a4d..d9c6659b 100644
--- a/include/Player/LinkStateItem.hpp
+++ b/include/Player/LinkStateItem.hpp
@@ -50,4 +50,6 @@ public:
static EquipBombchu *GetEquipBombchu();
static LinkStateMove *GetLinkStateMove();
bool func_ov00_020abf70();
+
+ LinkStateItem(PlayerLinkBase *link);
};
diff --git a/include/Player/LinkStateMove.hpp b/include/Player/LinkStateMove.hpp
index e56eee3c..a8f8d846 100644
--- a/include/Player/LinkStateMove.hpp
+++ b/include/Player/LinkStateMove.hpp
@@ -29,4 +29,6 @@ public:
bool func_ov00_020a8f2c();
bool func_ov00_020a8f4c();
+
+ LinkStateMove(PlayerLinkBase *link);
};
diff --git a/include/Player/LinkStateRoll.hpp b/include/Player/LinkStateRoll.hpp
index 52b42b43..3185f511 100644
--- a/include/Player/LinkStateRoll.hpp
+++ b/include/Player/LinkStateRoll.hpp
@@ -43,4 +43,6 @@ public:
void func_ov00_020aee58(s16 param1, u16 param2);
void func_ov00_020aee84();
bool func_ov00_020aeeac();
+
+ LinkStateRoll(PlayerLinkBase *link);
};
diff --git a/include/Player/PlayerBase.hpp b/include/Player/PlayerBase.hpp
index 578f3e27..893335bb 100644
--- a/include/Player/PlayerBase.hpp
+++ b/include/Player/PlayerBase.hpp
@@ -57,6 +57,8 @@ public:
bool EquipCollidesWith(Cylinder *cylinder, ItemFlag equipId);
s32 EquipItem_vfunc_2c();
void SetHealth(s16 health);
+
+ PlayerBase();
};
extern PlayerBase *gPlayer;
diff --git a/include/Player/PlayerControl.hpp b/include/Player/PlayerControl.hpp
index d8db3f65..f2cc23eb 100644
--- a/include/Player/PlayerControl.hpp
+++ b/include/Player/PlayerControl.hpp
@@ -130,6 +130,14 @@ public:
void func_ov000_020b7924(s32 param1);
void ApplyTouchWorld(Vec3p *result, unk32 scale);
bool func_ov000_020b7d6c();
+
+ PlayerControl();
+ ~PlayerControl();
+ static void Create();
+ static void Destroy();
+ void Init();
+ void func_ov004_0210b1d0();
+ static void func_ov004_0210b1f0();
};
extern PlayerControl *gPlayerControl;
diff --git a/include/Player/PlayerControlData.hpp b/include/Player/PlayerControlData.hpp
index f309953c..99802698 100644
--- a/include/Player/PlayerControlData.hpp
+++ b/include/Player/PlayerControlData.hpp
@@ -102,4 +102,6 @@ public:
void func_ov000_020b484c(s32 param1, s32 param2, s32 param3);
void func_ov000_020b4944(unk32 param1, u32 param2, s32 param3);
void func_ov000_020b4a00(s32 *param1, s32 *param2, s32 *param3, s32 param4);
+
+ PlayerControlData();
};
diff --git a/include/Player/PlayerLinkBase.hpp b/include/Player/PlayerLinkBase.hpp
index b617920b..e167d4d5 100644
--- a/include/Player/PlayerLinkBase.hpp
+++ b/include/Player/PlayerLinkBase.hpp
@@ -152,6 +152,8 @@ public:
void SetPosition(Vec3p *position);
void SetAngle(s16 *angle);
bool func_ov000_020bd510(s32 param1, unk32 *param2);
+
+ PlayerLinkBase();
};
extern PlayerLinkBase *gPlayerLink;
diff --git a/include/Player/HealthManager.hpp b/include/Player/PlayerManager.hpp
index 7e36decc..63d4b303 100644
--- a/include/Player/HealthManager.hpp
+++ b/include/Player/PlayerManager.hpp
@@ -6,7 +6,7 @@
#include "Save/SaveItemManager.hpp"
#include "System/SysNew.hpp"
-class HealthManager : public SysObject {
+class PlayerManager : public SysObject {
public:
/* 00 */ u16 mMaxHealth;
/* 02 */ u16 mHealth;
@@ -22,6 +22,13 @@ public:
void Save(SaveItemManager *save);
void IncreaseMaxHealth(s16 amount);
void UpdateShipMaxHealth();
+
+ static void Create();
+ static void Destroy();
+ PlayerManager();
+ ~PlayerManager();
+ void Init(bool param1);
+ void func_ov004_02108008();
};
-extern HealthManager *gHealthManager;
+extern PlayerManager *gPlayerManager;
diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp
index dc2b2bfa..b076cd73 100644
--- a/include/Save/AdventureFlags.hpp
+++ b/include/Save/AdventureFlags.hpp
@@ -131,6 +131,16 @@ public:
bool func_ov00_0209809c();
bool func_ov00_020980ac();
void func_ov00_020980bc(s32 param1);
+
+ AdventureFlags();
+ ~AdventureFlags();
+ static void Create();
+ static void Destroy();
+ void func_ov004_021044f8(s32 param1);
+ void func_ov004_0210453c();
+ bool func_ov004_0210455c(s32 param1);
+ void func_ov004_021046c8(unk32 param1);
+ void func_ov004_021046d4();
};
extern AdventureFlags *gAdventureFlags;
diff --git a/src/00_Core/Item/ItemManager.cpp b/src/00_Core/Item/ItemManager.cpp
index b87b371e..96fbad4c 100644
--- a/src/00_Core/Item/ItemManager.cpp
+++ b/src/00_Core/Item/ItemManager.cpp
@@ -2,8 +2,8 @@
#include "DTCM/UnkStruct_027e0d38.hpp"
#include "DTCM/UnkStruct_027e0f78.hpp"
#include "Map/MapManager.hpp"
-#include "Player/HealthManager.hpp"
#include "Player/PlayerLinkBase.hpp"
+#include "Player/PlayerManager.hpp"
#include "Save/AdventureFlags.hpp"
#include "System/OverlayManager.hpp"
@@ -692,7 +692,7 @@ THUMB void ItemManager::GiveItem(ItemId id) {
case ItemId_SalvageArm: {
SET_FLAG(mItemFlags.flags, ItemFlag_SalvageArm);
gAdventureFlags->Set(AdventureFlag_SalvageArm, true);
- gHealthManager->mSalvageArmHealth = 5;
+ gPlayerManager->mSalvageArmHealth = 5;
} break;
case ItemId_SwordsmanScroll: {
diff --git a/src/00_Core/Map/MapData.cpp b/src/00_Core/Map/MapData.cpp
index 2df3b5c8..12e485e0 100644
--- a/src/00_Core/Map/MapData.cpp
+++ b/src/00_Core/Map/MapData.cpp
@@ -1,6 +1,6 @@
#include "Map/MapData.hpp"
-MapData::MapData(u8 *map, unk8 param2, unk8 param3, unk32 param4, unk32 param5) {}
+MapData::MapData(u8 *map, unk8 x, unk8 y, unk32 param4, unk32 param5) {}
MapData::~MapData() {}
void MapData::func_ov000_020972e4(u16 *param1, unk32 *param2, bool param3) {}
void MapData::func_ov000_02097354() {}
diff --git a/src/00_Core/Player/HealthManager.cpp b/src/00_Core/Player/HealthManager.cpp
deleted file mode 100644
index aef87357..00000000
--- a/src/00_Core/Player/HealthManager.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "Player/HealthManager.hpp"
-
-void HealthManager::Save(SaveItemManager *save) {}
-void HealthManager::IncreaseMaxHealth(s16 amount) {}
-void HealthManager::UpdateShipMaxHealth() {}
diff --git a/src/00_Core/Player/PlayerManager.cpp b/src/00_Core/Player/PlayerManager.cpp
new file mode 100644
index 00000000..c5e67e1d
--- /dev/null
+++ b/src/00_Core/Player/PlayerManager.cpp
@@ -0,0 +1,5 @@
+#include "Player/PlayerManager.hpp"
+
+void PlayerManager::Save(SaveItemManager *save) {}
+void PlayerManager::IncreaseMaxHealth(s16 amount) {}
+void PlayerManager::UpdateShipMaxHealth() {}
diff --git a/src/04_Load/Actor/ActorManager.cpp b/src/04_Load/Actor/ActorManager.cpp
new file mode 100644
index 00000000..a1ace7fe
--- /dev/null
+++ b/src/04_Load/Actor/ActorManager.cpp
@@ -0,0 +1,13 @@
+#include "Actor/ActorManager.hpp"
+
+void ActorManager::Create() {}
+void ActorManager::Destroy() {}
+ActorManager::ActorManager() {}
+ActorManager::~ActorManager() {}
+void ActorManager::func_ov004_0210532c() {}
+void ActorManager::func_ov004_021053dc() {}
+void ActorManager::func_ov004_021054a4(s32 *param1, s32 param2, unk32 param3) {}
+void ActorManager::func_ov004_0210554c() {}
+bool ActorManager::func_ov004_02105578(unk32 param1) {}
+bool ActorManager::func_ov004_02105608(unk32 param1, unk32 param2, unk32 param3) {}
+void ActorManager::func_ov004_021056b8() {} \ No newline at end of file
diff --git a/src/04_Load/Actor/Navi/ActorNaviBase.cpp b/src/04_Load/Actor/Navi/ActorNaviBase.cpp
new file mode 100644
index 00000000..c4f5a069
--- /dev/null
+++ b/src/04_Load/Actor/Navi/ActorNaviBase.cpp
@@ -0,0 +1,6 @@
+#include "Actor/Navi/ActorNaviBase.hpp"
+
+ActorNaviBase::ActorNaviBase() {}
+ActorNaviBase::~ActorNaviBase() {}
+void func_ov004_021079d4(unk32 *param1) {}
+bool ActorNaviBase::vfunc_08() {}
diff --git a/src/04_Load/Cutscene/CutsceneHandler.cpp b/src/04_Load/Cutscene/CutsceneHandler.cpp
new file mode 100644
index 00000000..924d03e3
--- /dev/null
+++ b/src/04_Load/Cutscene/CutsceneHandler.cpp
@@ -0,0 +1,6 @@
+#include "Cutscene/CutsceneHandler.hpp"
+
+CutsceneHandler::CutsceneHandler() {}
+CutsceneHandler::~CutsceneHandler() {}
+void CutsceneHandler::func_ov004_0210f3e4(s32 param1) {}
+void CutsceneHandler::func_ov004_0210f46c() {}
diff --git a/src/04_Load/DTCM/UnkStruct_027e103c.cpp b/src/04_Load/DTCM/UnkStruct_027e103c.cpp
new file mode 100644
index 00000000..b14c5226
--- /dev/null
+++ b/src/04_Load/DTCM/UnkStruct_027e103c.cpp
@@ -0,0 +1,14 @@
+#include "DTCM/UnkStruct_027e103c.hpp"
+
+UnkStruct_027e103c::UnkStruct_027e103c() {}
+void _Z19func_ov004_02104ce0v() {}
+UnkStruct_027e103c::~UnkStruct_027e103c() {}
+void UnkStruct_027e103c::Create() {}
+void UnkStruct_027e103c::Destroy() {}
+void UnkStruct_027e103c::func_ov004_02104d68() {}
+bool UnkStruct_027e103c::func_ov004_02104f5c() {}
+void UnkStruct_027e103c::func_ov004_02104f78() {}
+void UnkStruct_027e103c::func_ov004_02104fa8() {}
+void UnkStruct_027e103c::func_ov004_02104fb8() {}
+void UnkStruct_027e103c::func_ov004_02104ffc(unk32 param1, unk32 param2) {}
+void UnkStruct_027e103c::func_ov004_0210504c() {}
diff --git a/src/04_Load/Debug/DebugHierarchy.cpp b/src/04_Load/Debug/DebugHierarchy.cpp
new file mode 100644
index 00000000..a759227d
--- /dev/null
+++ b/src/04_Load/Debug/DebugHierarchy.cpp
@@ -0,0 +1,3 @@
+#include "Debug/DebugHierarchy.hpp"
+
+DebugHierarchy::~DebugHierarchy() {}
diff --git a/src/04_Load/Item/ItemManager.cpp b/src/04_Load/Item/ItemManager.cpp
new file mode 100644
index 00000000..98475a9b
--- /dev/null
+++ b/src/04_Load/Item/ItemManager.cpp
@@ -0,0 +1,11 @@
+#include "Item/ItemManager.hpp"
+
+ItemManager::ItemManager() {}
+void ItemManager::Init() {}
+ItemManager::~ItemManager() {}
+void ItemManager::InitEquipItems() {}
+void ItemManager::func_ov004_02107648() {}
+void ItemManager::func_ov004_02107650() {}
+void ItemManager::func_ov004_02107698() {}
+void ItemManager::func_ov004_021076bc() {}
+void ItemManager::SpawnFairies() {}
diff --git a/src/04_Load/Item/ItemModelLoader.cpp b/src/04_Load/Item/ItemModelLoader.cpp
new file mode 100644
index 00000000..b7d0e845
--- /dev/null
+++ b/src/04_Load/Item/ItemModelLoader.cpp
@@ -0,0 +1,4 @@
+#include "Item/ItemModelLoader.hpp"
+
+void ItemModelLoader::Create() {}
+void ItemModelLoader::Destroy() {}
diff --git a/src/04_Load/Map/Course.cpp b/src/04_Load/Map/Course.cpp
new file mode 100644
index 00000000..6217d8b8
--- /dev/null
+++ b/src/04_Load/Map/Course.cpp
@@ -0,0 +1,10 @@
+#include "Map/Course.hpp"
+
+Course::Course() {}
+Course::~Course() {}
+bool Course::func_ov004_0210ee84(char *param1) {}
+unk32 Course::func_ov004_0210ef90(unk32 param1) {}
+void Course::func_ov004_0210f010() {}
+void Course::LoadMapData(u8 *map, s32 x, s32 y, char param4, unk32 param5) {}
+bool Course::func_ov004_0210f0fc(unk32 param1, unk16 *param2, s32 param3) {}
+void Course::func_ov004_0210f140(s32 param1) {}
diff --git a/src/04_Load/Map/MapBase.cpp b/src/04_Load/Map/MapBase.cpp
new file mode 100644
index 00000000..7e93b2f0
--- /dev/null
+++ b/src/04_Load/Map/MapBase.cpp
@@ -0,0 +1,20 @@
+#include "Map/MapBase.hpp"
+
+MapBase_Unk_180::MapBase_Unk_180() {}
+MapBase::MapBase(u32 param1, u32 param2) {}
+void MapBase::vfunc_14() {}
+void MapBase::func_ov004_0210c118() {}
+void MapBase::vfunc_08(u32 param_2, u32 param_3, Course *param_4) {}
+void MapBase::vfunc_0c(Course *param_2) {}
+void MapBase::vfunc_10() {}
+void MapBase::vfunc_2c() {}
+void MapBase::vfunc_30(s32 param_2) {}
+bool MapBase::vfunc_34(char *param_2) {}
+void MapBase::vfunc_38() {}
+void MapBase::vfunc_3c() {}
+void MapBase::vfunc_40() {}
+void MapBase::vfunc_44() {}
+void MapBase::func_ov004_0210cb1c() {}
+void MapBase::func_ov004_0210cb38() {}
+void MapBase::func_ov004_0210cc20(Course *course) {}
+void MapBase::func_ov004_0210cc58(Course *course, u32 map) {}
diff --git a/src/04_Load/Map/MapManager.cpp b/src/04_Load/Map/MapManager.cpp
new file mode 100644
index 00000000..74f9c617
--- /dev/null
+++ b/src/04_Load/Map/MapManager.cpp
@@ -0,0 +1,11 @@
+#include "Map/MapManager.hpp"
+
+MapManager::MapManager() {}
+MapManager::~MapManager() {}
+void MapManager::Create() {}
+void MapManager::Destroy() {}
+void MapManager::LoadMapTexSprites(s32 param1) {}
+void MapManager::func_ov004_02102260() {}
+void MapManager::func_ov004_02102264(unk32 *param1, char *param2) {}
+void MapManager::func_ov004_021024c4(s32 param1, unk32 param2, unk32 param3) {}
+void MapManager::func_ov004_021025d8() {}
diff --git a/src/04_Load/Player/EquipItem.cpp b/src/04_Load/Player/EquipItem.cpp
new file mode 100644
index 00000000..1192a561
--- /dev/null
+++ b/src/04_Load/Player/EquipItem.cpp
@@ -0,0 +1,5 @@
+#include "Player/EquipItem.hpp"
+
+EquipItem::EquipItem() {}
+EquipItem::~EquipItem() {}
+void EquipItem::vfunc_10() {}
diff --git a/src/04_Load/Player/EquipShield.cpp b/src/04_Load/Player/EquipShield.cpp
new file mode 100644
index 00000000..9dac9b72
--- /dev/null
+++ b/src/04_Load/Player/EquipShield.cpp
@@ -0,0 +1,4 @@
+#include "Player/EquipShield.hpp"
+
+EquipShield::EquipShield() {}
+EquipShield::~EquipShield() {}
diff --git a/src/04_Load/Player/EquipSword.cpp b/src/04_Load/Player/EquipSword.cpp
new file mode 100644
index 00000000..d1ce0b39
--- /dev/null
+++ b/src/04_Load/Player/EquipSword.cpp
@@ -0,0 +1,4 @@
+#include "Player/EquipSword.hpp"
+
+EquipSword::EquipSword() {}
+EquipSword::~EquipSword() {}
diff --git a/src/04_Load/Player/LinkStateBase.cpp b/src/04_Load/Player/LinkStateBase.cpp
new file mode 100644
index 00000000..183d78a4
--- /dev/null
+++ b/src/04_Load/Player/LinkStateBase.cpp
@@ -0,0 +1,5 @@
+#include "Player/LinkStateBase.hpp"
+
+LinkStateBase::LinkStateBase(PlayerLinkBase *link) {}
+LinkStateBase::~LinkStateBase() {}
+void LinkStateBase::CreateDebugHierarchy() {}
diff --git a/src/04_Load/Player/LinkStateCutscene.cpp b/src/04_Load/Player/LinkStateCutscene.cpp
new file mode 100644
index 00000000..2d68fa4d
--- /dev/null
+++ b/src/04_Load/Player/LinkStateCutscene.cpp
@@ -0,0 +1,5 @@
+#include "Player/LinkStateCutscene.hpp"
+
+LinkStateCutscene::LinkStateCutscene(PlayerLinkBase *link) :
+ LinkStateBase(link) {}
+LinkStateCutscene::~LinkStateCutscene() {}
diff --git a/src/04_Load/Player/LinkStateDamage.cpp b/src/04_Load/Player/LinkStateDamage.cpp
new file mode 100644
index 00000000..2eecae46
--- /dev/null
+++ b/src/04_Load/Player/LinkStateDamage.cpp
@@ -0,0 +1,6 @@
+#include "Player/LinkStateDamage.hpp"
+
+LinkStateDamage::LinkStateDamage(PlayerLinkBase *link) :
+ LinkStateBase(link) {}
+unk32 *_Z19func_ov004_021083f4Piiii(unk32 *param1, unk32 param2, unk32 param3, unk32 param4) {}
+LinkStateDamage::~LinkStateDamage() {}
diff --git a/src/04_Load/Player/LinkStateFollow.cpp b/src/04_Load/Player/LinkStateFollow.cpp
new file mode 100644
index 00000000..72e3789b
--- /dev/null
+++ b/src/04_Load/Player/LinkStateFollow.cpp
@@ -0,0 +1,5 @@
+#include "Player/LinkStateFollow.hpp"
+
+LinkStateFollow::LinkStateFollow(PlayerLinkBase *link) :
+ LinkStateBase(link) {}
+LinkStateFollow::~LinkStateFollow() {}
diff --git a/src/04_Load/Player/LinkStateInteract.cpp b/src/04_Load/Player/LinkStateInteract.cpp
new file mode 100644
index 00000000..7775cf81
--- /dev/null
+++ b/src/04_Load/Player/LinkStateInteract.cpp
@@ -0,0 +1,5 @@
+#include "Player/LinkStateInteract.hpp"
+
+LinkStateInteract::LinkStateInteract(PlayerLinkBase *link) :
+ LinkStateBase(link) {}
+LinkStateInteract::~LinkStateInteract() {}
diff --git a/src/04_Load/Player/LinkStateItem.cpp b/src/04_Load/Player/LinkStateItem.cpp
new file mode 100644
index 00000000..b6d31fea
--- /dev/null
+++ b/src/04_Load/Player/LinkStateItem.cpp
@@ -0,0 +1,5 @@
+#include "Player/LinkStateItem.hpp"
+
+LinkStateItem::LinkStateItem(PlayerLinkBase *link) :
+ LinkStateBase(link) {}
+LinkStateItem::~LinkStateItem() {}
diff --git a/src/04_Load/Player/LinkStateMove.cpp b/src/04_Load/Player/LinkStateMove.cpp
new file mode 100644
index 00000000..ffd5c89e
--- /dev/null
+++ b/src/04_Load/Player/LinkStateMove.cpp
@@ -0,0 +1,5 @@
+#include "Player/LinkStateMove.hpp"
+
+LinkStateMove::LinkStateMove(PlayerLinkBase *link) :
+ LinkStateBase(link) {}
+LinkStateMove::~LinkStateMove() {}
diff --git a/src/04_Load/Player/LinkStateRoll.cpp b/src/04_Load/Player/LinkStateRoll.cpp
new file mode 100644
index 00000000..f2eea62f
--- /dev/null
+++ b/src/04_Load/Player/LinkStateRoll.cpp
@@ -0,0 +1,5 @@
+#include "Player/LinkStateRoll.hpp"
+
+LinkStateRoll::LinkStateRoll(PlayerLinkBase *link) :
+ LinkStateBase(link) {}
+LinkStateRoll::~LinkStateRoll() {}
diff --git a/src/04_Load/Player/PlayerBase.cpp b/src/04_Load/Player/PlayerBase.cpp
new file mode 100644
index 00000000..de9d78a3
--- /dev/null
+++ b/src/04_Load/Player/PlayerBase.cpp
@@ -0,0 +1,4 @@
+#include "Player/PlayerBase.hpp"
+
+PlayerBase::PlayerBase() {}
+PlayerBase::~PlayerBase() {}
diff --git a/src/04_Load/Player/PlayerControl.cpp b/src/04_Load/Player/PlayerControl.cpp
new file mode 100644
index 00000000..19c9ab7a
--- /dev/null
+++ b/src/04_Load/Player/PlayerControl.cpp
@@ -0,0 +1,9 @@
+#include "Player/PlayerControl.hpp"
+
+PlayerControl::PlayerControl() {}
+PlayerControl::~PlayerControl() {}
+void PlayerControl::Create() {}
+void PlayerControl::Destroy() {}
+void PlayerControl::Init() {}
+void PlayerControl::func_ov004_0210b1d0() {}
+void PlayerControl::func_ov004_0210b1f0() {}
diff --git a/src/04_Load/Player/PlayerControlData.cpp b/src/04_Load/Player/PlayerControlData.cpp
new file mode 100644
index 00000000..a9be443d
--- /dev/null
+++ b/src/04_Load/Player/PlayerControlData.cpp
@@ -0,0 +1,7 @@
+#include "Player/PlayerControlData.hpp"
+
+PlayerControlData::PlayerControlData() {}
+PlayerControlData::~PlayerControlData() {}
+void func_ov004_0210b634(unk32 *param1) {}
+void PlayerControlData::vfunc_18() {}
+void PlayerControlData::vfunc_1c() {}
diff --git a/src/04_Load/Player/PlayerLinkBase.cpp b/src/04_Load/Player/PlayerLinkBase.cpp
new file mode 100644
index 00000000..ab82b4dd
--- /dev/null
+++ b/src/04_Load/Player/PlayerLinkBase.cpp
@@ -0,0 +1,6 @@
+#include "Player/PlayerLinkBase.hpp"
+
+PlayerLinkBase::PlayerLinkBase() {}
+PlayerLinkBase::~PlayerLinkBase() {}
+void PlayerLinkBase::Init() {}
+void PlayerLinkBase::vfunc_20() {}
diff --git a/src/04_Load/Player/PlayerManager.cpp b/src/04_Load/Player/PlayerManager.cpp
new file mode 100644
index 00000000..d7e5cdb9
--- /dev/null
+++ b/src/04_Load/Player/PlayerManager.cpp
@@ -0,0 +1,8 @@
+#include "Player/PlayerManager.hpp"
+
+void PlayerManager::Create() {}
+void PlayerManager::Destroy() {}
+PlayerManager::PlayerManager() {}
+PlayerManager::~PlayerManager() {}
+void PlayerManager::Init(bool param1) {}
+void PlayerManager::func_ov004_02108008() {}
diff --git a/src/04_Load/Save/AdventureFlags.cpp b/src/04_Load/Save/AdventureFlags.cpp
new file mode 100644
index 00000000..8588afef
--- /dev/null
+++ b/src/04_Load/Save/AdventureFlags.cpp
@@ -0,0 +1,11 @@
+#include "Save/AdventureFlags.hpp"
+
+AdventureFlags::AdventureFlags() {}
+AdventureFlags::~AdventureFlags() {}
+void AdventureFlags::Create() {}
+void AdventureFlags::Destroy() {}
+void AdventureFlags::func_ov004_021044f8(s32 param1) {}
+void AdventureFlags::func_ov004_0210453c() {}
+bool AdventureFlags::func_ov004_0210455c(s32 param1) {}
+void AdventureFlags::func_ov004_021046c8(unk32 param1) {}
+void AdventureFlags::func_ov004_021046d4() {}