summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAetias <144526980+AetiasHax@users.noreply.github.com>2025-02-03 23:53:59 +0100
committerGitHub <noreply@github.com>2025-02-03 23:53:59 +0100
commit66fa3f0623820bc4fb099289a398453cd28e4ed9 (patch)
tree49de846e0516c9490ea31fd14a867cc14253f7e4 /src
parent48bbd8bb7f008ac913cabb6f7faf4a47ad86878b (diff)
parent2bd1bbd10b1ba5a595372a3313e80e4274a4e912 (diff)
Merge pull request #59 from AetiasHax/ghidra-symbols
Import documentation from Ghidra server
Diffstat (limited to 'src')
-rw-r--r--src/00_Core/Actor/Actor.cpp16
-rw-r--r--src/00_Core/Actor/ActorSpawner.cpp10
-rw-r--r--src/00_Core/Actor/Dungeon/ActorEventIcon.cpp13
-rw-r--r--src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp15
-rw-r--r--src/00_Core/Actor/Navi/ActorNaviBase.cpp46
-rw-r--r--src/00_Core/Cutscene/CutsceneHandler.cpp16
-rw-r--r--src/00_Core/DTCM/UnkStruct_027e0d38.cpp5
-rw-r--r--src/00_Core/DTCM/UnkStruct_027e0fd4.cpp37
-rw-r--r--src/00_Core/DTCM/UnkStruct_027e103c.cpp82
-rw-r--r--src/00_Core/Item/ItemManager.cpp27
-rw-r--r--src/00_Core/Item/ItemModelLoader.cpp14
-rw-r--r--src/00_Core/Map/MapBase.cpp4
-rw-r--r--src/00_Core/Map/MapData.cpp16
-rw-r--r--src/00_Core/Map/MapManager.cpp2
-rw-r--r--src/00_Core/Map/Trigger.cpp40
-rw-r--r--src/00_Core/Map/TriggerAABB_Unk2_Unk1_1.cpp6
-rw-r--r--src/00_Core/Map/TriggerAABB_Unk2_Unk1_2.cpp12
-rw-r--r--src/00_Core/Physics/AABB.cpp15
-rw-r--r--src/00_Core/Player/EquipItem.cpp19
-rw-r--r--src/00_Core/Player/EquipShield.cpp12
-rw-r--r--src/00_Core/Player/EquipSword.cpp26
-rw-r--r--src/00_Core/Player/LinkStateCutscene.cpp37
-rw-r--r--src/00_Core/Player/LinkStateItem.cpp21
-rw-r--r--src/00_Core/Player/PlayerControlData.cpp37
-rw-r--r--src/00_Core/Player/PlayerControl_2.cpp7
-rw-r--r--src/00_Core/Player/PlayerLinkBase.cpp101
-rw-r--r--src/00_Core/Player/PlayerManager.cpp5
-rw-r--r--src/00_Core/Render/ModelRender.cpp25
-rw-r--r--src/00_Core/Save/AdventureFlags.cpp1
-rw-r--r--src/00_Core/Save/FlagsUnk.cpp5
-rw-r--r--src/00_Core/Save/SaveItemManager.cpp3
-rw-r--r--src/00_Core/Unknown/UnkStruct_ov000_020b1528.cpp9
-rw-r--r--src/00_Core/Unknown/UnkStruct_ov000_020beba8.cpp9
-rw-r--r--src/00_Core/Unknown/UnkStruct_ov000_020e2f04.cpp13
-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
-rw-r--r--src/05/DTCM/UnkStruct_027e103c.cpp24
-rw-r--r--src/05/Map/MapBase.cpp6
-rw-r--r--src/05/Player/LinkStateBase.cpp30
-rw-r--r--src/05/Player/LinkStateCutscene.cpp28
-rw-r--r--src/05/Player/LinkStateDamage.cpp4
-rw-r--r--src/05/Player/LinkStateFollow.cpp17
-rw-r--r--src/05/Player/LinkStateInteract.cpp15
-rw-r--r--src/05/Player/LinkStateItem.cpp22
-rw-r--r--src/05/Player/LinkStateMove.cpp5
-rw-r--r--src/05/Player/LinkStateRoll.cpp23
-rw-r--r--src/05/Player/PlayerLinkBase.cpp7
-rw-r--r--src/12_Battle/Player/Battle/PlayerBattleLinkControlData.cpp25
-rw-r--r--src/14_Land/Actor/ActorRupee.cpp14
-rw-r--r--src/14_Land/Actor/Player/ActorArrow.cpp34
-rw-r--r--src/14_Land/Actor/Player/ActorBlast.cpp12
-rw-r--r--src/14_Land/Actor/Player/ActorBomb.cpp24
-rw-r--r--src/14_Land/Actor/Player/ActorRope.cpp19
-rw-r--r--src/14_Land/Player/EquipBomb.cpp6
-rw-r--r--src/14_Land/Player/EquipBombchu.cpp13
-rw-r--r--src/14_Land/Player/EquipBoomerang.cpp12
-rw-r--r--src/14_Land/Player/EquipBow.cpp5
-rw-r--r--src/14_Land/Player/EquipHammer.cpp8
-rw-r--r--src/14_Land/Player/EquipPotion.cpp11
-rw-r--r--src/14_Land/Player/EquipRope.cpp40
-rw-r--r--src/14_Land/Player/EquipScoop.cpp5
-rw-r--r--src/14_Land/Player/PlayerLink.cpp24
-rw-r--r--src/23/Player/PlayerLink.cpp13
-rw-r--r--src/40/Player/PlayerLink.cpp6
-rw-r--r--src/53_Boomerang/Player/EquipBoomerang.cpp17
-rw-r--r--src/54_Scoop/Player/EquipScoop.cpp22
-rw-r--r--src/55_Bomb/Player/EquipBomb.cpp15
-rw-r--r--src/55_Bomb/Player/EquipPotion.cpp10
-rw-r--r--src/56_Bow/Player/EquipBow.cpp18
-rw-r--r--src/57_Rope/Actor/Player/ActorRope.cpp12
-rw-r--r--src/57_Rope/Player/EquipRope.cpp39
-rw-r--r--src/58_Bombchu/Player/EquipBombchu.cpp33
-rw-r--r--src/59_Hammer/Actor/Navi/ActorNaviBase.cpp9
-rw-r--r--src/59_Hammer/Player/EquipHammer.cpp21
-rw-r--r--src/ITCM/Map/MapManager.cpp6
-rw-r--r--src/Main/DTCM/UnkStruct_027e05f8_1.cpp4
-rw-r--r--src/Main/DTCM/UnkStruct_027e05f8_2.cpp6
-rw-r--r--src/Main/DTCM/UnkStruct_027e077c.cpp4
-rw-r--r--src/Main/DTCM/UnkStruct_027e0fe0.cpp6
-rw-r--r--src/Main/Debug/DebugHierarchyBase.cpp19
-rw-r--r--src/Main/Player/TouchControl.cpp4
-rw-r--r--src/Main/Render/FadeControl.cpp10
-rw-r--r--src/Main/Render/FadeController.cpp12
-rw-r--r--src/Main/System/OverlayManager.cpp7
-rw-r--r--src/Main/System/SysNew.cpp11
-rw-r--r--src/Main/Unknown/UnkStruct_0202e1a0.cpp10
-rw-r--r--src/Main/Unknown/UnkStruct_02032f0c.cpp34
-rw-r--r--src/Main/Unknown/UnkStruct_02035064.cpp11
-rw-r--r--src/Main/Unknown/UnkStruct_02037750.cpp25
-rw-r--r--src/Main/Unknown/UnkStruct_02038aa0.cpp43
-rw-r--r--src/Main/Unknown/UnkStruct_020397f8.cpp39
-rw-r--r--src/Main/Unknown/UnkStruct_0203dae0.cpp25
117 files changed, 1786 insertions, 41 deletions
diff --git a/src/00_Core/Actor/Actor.cpp b/src/00_Core/Actor/Actor.cpp
index 3f1f2850..f008064d 100644
--- a/src/00_Core/Actor/Actor.cpp
+++ b/src/00_Core/Actor/Actor.cpp
@@ -251,7 +251,7 @@ ARM bool Actor::vfunc_9c() {}
ARM bool Actor::func_ov00_020c195c() {
if (!mUnk_11b) return false;
- gPlayerLink->func_ov00_020bc854(&mPos);
+ gPlayerLink->func_ov000_020bc854(&mPos);
return true;
}
@@ -272,7 +272,7 @@ ARM bool Actor::func_ov00_020c198c() {
{
return false;
}
- if (gPlayerLink && !gPlayerLink->func_ov00_020bd304()) return false;
+ if (gPlayerLink && !gPlayerLink->func_ov000_020bd304()) return false;
return true;
}
@@ -551,12 +551,12 @@ ARM bool Actor::func_ov00_020c243c(ActorTypeId *actorTypes, Actor **out) {
knockback.mUnk_10 = 5;
} break;
- case ActorTypeId_ROPE: {
+ case ActorTypeId_GrapplingHook: {
knockback.mUnk_10 = 8;
} break;
case ActorTypeId_Bomb:
- case ActorTypeId_BLST:
+ case ActorTypeId_Blast:
case ActorTypeId_BMTY:
case ActorTypeId_CBLS: {
knockback.mUnk_10 = 6;
@@ -759,7 +759,7 @@ ARM EquipBoomerang *Actor::GetEquipBoomerang() {
ARM bool Actor::func_ov00_020c2d54() {
const ActorTypeId types[] = {
- ActorTypeId_ROPE,
+ ActorTypeId_GrapplingHook,
ActorTypeId_Null,
};
if (mHitbox.size >= 0) {
@@ -780,7 +780,7 @@ ARM bool Actor::func_ov00_020c2de4() {
EquipRope *rope = EquipSword::GetEquipRope();
- Actor *actor = rope->func_ov14_0213d420();
+ ActorRope *actor = rope->GetRopeActor();
if (actor) {
Vec3p_Sub(&actor->mPos, &mPos, &vel);
if (Vec3p_Length(&vel) > FLOAT_TO_Q20(1.0)) {
@@ -819,8 +819,8 @@ ARM bool Actor::func_ov00_020c2ed4() {
s32 index = rope->func_ov14_0213d440(mRef.id);
if (index >= 0) {
- bool unk1 = rope->func_ov14_0213d420();
- if (unk1) {
+ ActorRope *actor = rope->GetRopeActor();
+ if (actor) {
Vec3p vel;
if (rope->func_ov14_0213d81c(index, &vel)) {
mVel = vel;
diff --git a/src/00_Core/Actor/ActorSpawner.cpp b/src/00_Core/Actor/ActorSpawner.cpp
new file mode 100644
index 00000000..514156ac
--- /dev/null
+++ b/src/00_Core/Actor/ActorSpawner.cpp
@@ -0,0 +1,10 @@
+#include "Actor/ActorSpawner.hpp"
+
+ActorSpawner *ActorSpawner::Create() {}
+void ActorSpawner::Destroy() {}
+ActorSpawner::ActorSpawner() {}
+ActorSpawner::~ActorSpawner() {}
+void ActorSpawner::_ZN12ActorSpawner19func_ov000_020c4014Ev() {}
+void ActorSpawner::_ZN12ActorSpawner19func_ov000_020c4018Ev() {}
+Actor *ActorSpawner::CreateActor(ActorTypeId type) {}
+s32 ActorSpawner::Spawn(ActorTypeId type, Vec3p *pos, void *param3, ActorRef *ref) {}
diff --git a/src/00_Core/Actor/Dungeon/ActorEventIcon.cpp b/src/00_Core/Actor/Dungeon/ActorEventIcon.cpp
new file mode 100644
index 00000000..8e943095
--- /dev/null
+++ b/src/00_Core/Actor/Dungeon/ActorEventIcon.cpp
@@ -0,0 +1,13 @@
+#include "Actor/Dungeon/ActorEventIcon.hpp"
+
+ActorType ActorEventIcon::gType = ActorType(ActorTypeId_EventIcon, (ActorCreateFunc) ActorEventIcon::Create, NULL);
+
+ActorEventIcon *ActorEventIcon::Create() {}
+ActorEventIcon::ActorEventIcon() {}
+bool ActorEventIcon::vfunc_08() {}
+void ActorEventIcon::vfunc_14(u32 param1) {}
+void ActorEventIcon::vfunc_18(u32 param1) {}
+u32 ActorEventIcon::func_ov000_02090648(u32 param1) {}
+bool func_ov000_02090774(u32 param1) {}
+void ActorEventIcon::vfunc_1c(u16 *param1) {}
+ActorEventIcon::~ActorEventIcon() {}
diff --git a/src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp b/src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp
new file mode 100644
index 00000000..37c4511c
--- /dev/null
+++ b/src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp
@@ -0,0 +1,15 @@
+#include "Actor/Dungeon/ActorSwitchObject.hpp"
+
+ActorType ActorSwitchObject::gType = ActorType(ActorTypeId_SwitchObject, (ActorCreateFunc) ActorSwitchObject::Create, NULL);
+
+ActorSwitchObject *ActorSwitchObject::Create() {}
+bool ActorSwitchObject::vfunc_08() {}
+void ActorSwitchObject::vfunc_0c() {}
+void ActorSwitchObject::vfunc_14(u32 param1) {}
+void ActorSwitchObject::vfunc_18(u32 param1) {}
+bool ActorSwitchObject::func_ov000_0208fc10(s32 param1) {}
+void ActorSwitchObject::func_ov000_0208fc7c() {}
+bool ActorSwitchObject::func_ov000_0208fcb4() {}
+void ActorSwitchObject::func_ov000_0208fef8() {}
+void ActorSwitchObject::func_ov000_0209032c() {}
+ActorSwitchObject::~ActorSwitchObject() {}
diff --git a/src/00_Core/Actor/Navi/ActorNaviBase.cpp b/src/00_Core/Actor/Navi/ActorNaviBase.cpp
new file mode 100644
index 00000000..677d677b
--- /dev/null
+++ b/src/00_Core/Actor/Navi/ActorNaviBase.cpp
@@ -0,0 +1,46 @@
+#include "Actor/Navi/ActorNaviBase.hpp"
+
+void ActorNaviBase::vfunc_c4() {}
+void ActorNaviBase::vfunc_c8() {}
+unk32 ActorNaviBase::vfunc_30() {}
+s32 ActorNaviBase::vfunc_b8() {}
+bool ActorNaviBase::vfunc_cc(unk32 *param1) {}
+void ActorNaviBase::GetOffsetPos(Vec3p *pos) {}
+unk32 ActorNaviBase::vfunc_38() {}
+void ActorNaviBase::vfunc_d0() {}
+void ActorNaviBase::func_ov000_020b8c50() {}
+void ActorNaviBase::func_ov000_020b8c98(unk32 param1, unk32 param2, unk32 param3) {}
+void ActorNaviBase::vfunc_d4() {}
+void ActorNaviBase::vfunc_d8() {}
+void ActorNaviBase::SetActive(bool active) {}
+void ActorNaviBase::TeleportAboveLink() {}
+void ActorNaviBase::vfunc_e0() {}
+void ActorNaviBase::vfunc_e4() {}
+void ActorNaviBase::func_ov000_020b9770(s32 param1) {}
+void ActorNaviBase::vfunc_e8() {}
+void ActorNaviBase::vfunc_14(u32 param1) {}
+void ActorNaviBase::vfunc_18(u32 param1) {}
+void ActorNaviBase::func_ov000_020b9fdc() {}
+void ActorNaviBase::func_ov000_020b9fe8() {}
+void ActorNaviBase::vfunc_20(bool param1) {}
+void ActorNaviBase::vfunc_10(u32 param1) {}
+unk32 ActorNaviBase::func_ov000_020ba204(Vec3p *param1, Vec3p *param2, s32 param3) {}
+unk32 func_ov000_020ba350(unk32 param1) {}
+bool ActorNaviBase::vfunc_c0(Vec3p *param1) {}
+unk32 ActorNaviBase::func_ov000_020ba3b4() {}
+void ActorNaviBase::func_ov000_020ba414(Vec3p *param1) {}
+bool ActorNaviBase::func_ov000_020ba458() {}
+void ActorNaviBase::func_ov000_020ba4e4() {}
+void ActorNaviBase::func_ov000_020ba53c() {}
+void ActorNaviBase::vfunc_80() {}
+void ActorNaviBase::vfunc_84() {}
+bool ActorNaviBase::vfunc_78() {}
+bool ActorNaviBase::vfunc_bc(unk32 param1, unk8 param2, s32 param3) {}
+void ActorNaviBase::vfunc_74() {}
+void ActorNaviBase::func_ov000_020baca8(Vec3p *param1, unk32 param2) {}
+void ActorNaviBase::func_ov000_020bad18() {}
+bool ActorNaviBase::vfunc_90() {}
+void ActorNaviBase::vfunc_94() {}
+void ActorNaviBase::func_ov000_020bb0ac() {}
+void ActorNaviBase::func_ov000_020bb0e0() {}
+void ActorNaviBase::vfunc_ec() {}
diff --git a/src/00_Core/Cutscene/CutsceneHandler.cpp b/src/00_Core/Cutscene/CutsceneHandler.cpp
new file mode 100644
index 00000000..c55730ba
--- /dev/null
+++ b/src/00_Core/Cutscene/CutsceneHandler.cpp
@@ -0,0 +1,16 @@
+#include "Cutscene/CutsceneHandler.hpp"
+
+s32 CutsceneHandler::func_ov000_020980fc(unk32 param1, unk32 param2, void **param3) {}
+bool CutsceneHandler::func_ov000_02098114() {}
+bool CutsceneHandler::SkipCutscene(s32 param1) {}
+unk32 CutsceneHandler::func_ov000_020981b8(unk32 *param1) {}
+void CutsceneHandler::func_ov000_020985c0() {}
+void CutsceneHandler::func_ov000_020985c4() {}
+void CutsceneHandler::func_ov000_02098618(s32 param1, unk32 param2, void **param3) {}
+void CutsceneHandler::func_ov000_02098658() {}
+bool CutsceneHandler::func_ov000_02098694(unk32 param1) {}
+bool CutsceneHandler::func_ov000_020987c4(unk32 param1, unk16 param2, unk32 param3, unk32 param4, bool param5) {}
+bool CutsceneHandler::func_ov000_02098834() {}
+bool CutsceneHandler::func_ov000_02098860() {}
+unk32 CutsceneHandler::func_ov000_02098890(unk32 param1, s32 param2) {}
+unk32 CutsceneHandler::func_ov000_02098920(unk32 param1) {}
diff --git a/src/00_Core/DTCM/UnkStruct_027e0d38.cpp b/src/00_Core/DTCM/UnkStruct_027e0d38.cpp
new file mode 100644
index 00000000..c9d66183
--- /dev/null
+++ b/src/00_Core/DTCM/UnkStruct_027e0d38.cpp
@@ -0,0 +1,5 @@
+#include "DTCM/UnkStruct_027e0d38.hpp"
+
+unk32 UnkStruct_027e0d38::func_ov000_02078b40() {}
+unk8 UnkStruct_027e0d38::func_ov000_02078b64() {}
+bool UnkStruct_027e0d38::func_ov000_02078b88() {}
diff --git a/src/00_Core/DTCM/UnkStruct_027e0fd4.cpp b/src/00_Core/DTCM/UnkStruct_027e0fd4.cpp
new file mode 100644
index 00000000..893e5664
--- /dev/null
+++ b/src/00_Core/DTCM/UnkStruct_027e0fd4.cpp
@@ -0,0 +1,37 @@
+#include "DTCM/UnkStruct_027e0fd4.hpp"
+
+void UnkStruct_027e0fd4_Unk1::vfunc_08(u16 *param1, unk32 param2, u32 param3) {}
+bool UnkStruct_027e0fd4_Unk1::vfunc_10(s32 *param1) {}
+bool UnkStruct_027e0fd4_Unk1::vfunc_14() {}
+s32 func_ov000_020b4b60(s32 a, s32 b) {}
+UnkStruct_027e0fd4::UnkStruct_027e0fd4() {}
+UnkStruct_027e0fd4::~UnkStruct_027e0fd4() {}
+void UnkStruct_027e0fd4::vfunc_1c() {}
+s32 UnkStruct_027e0fd4::func_Ov000_020b4c2c() {}
+void UnkStruct_027e0fd4::func_ov000_020b4c4c(Vec3p *param1, s32 size) {}
+void UnkStruct_027e0fd4::func_ov000_020b4d00() {}
+unk32 UnkStruct_027e0fd4::func_ov000_020b4d28(u32 *param1, s32 *param2, s32 *param3) {}
+unk32 UnkStruct_027e0fd4::func_ov000_020b5034(Vec3p *param1) {}
+bool UnkStruct_027e0fd4::func_ov000_020b50e0() {}
+bool UnkStruct_027e0fd4::func_ov000_020b50f8() {}
+unk32 UnkStruct_027e0fd4::func_ov000_020b510c() {}
+void UnkStruct_027e0fd4::func_ov000_020b5160(u32 *param1, u32 param2) {}
+bool UnkStruct_027e0fd4::func_ov000_020b5268(unk32 param1, Vec3p *param2, unk32 param3) {}
+UnkStruct_027e0fd4_Unk1::~UnkStruct_027e0fd4_Unk1() {}
+u32 UnkStruct_027e0fd4::func_ov000_020b5360(s32 param1, s32 param2) {}
+void UnkStruct_027e0fd4::func_ov000_020b53c4(unk32 *param1) {}
+bool UnkStruct_027e0fd4::func_ov000_020b53f4(unk32 param1, unk32 param2, u32 param3) {}
+void UnkStruct_027e0fd4::func_ov000_020b5420(unk32 *param1, UnkStruct_027e0fd4 *param2) {}
+void UnkStruct_027e0fd4::func_ov000_020b542c(u32 param1) {}
+void UnkStruct_027e0fd4::Clear() {}
+void UnkStruct_027e0fd4::func_ov000_020b54c8() {}
+void UnkStruct_027e0fd4::func_ov000_020b5514(Vec3p *param1, Vec3p *param2) {}
+void UnkStruct_027e0fd4::func_ov000_020b5cb4(Vec3p *param1, Vec3p *param2, s32 *param3, s32 *param4) {}
+s32 UnkStruct_027e0fd4::func_ov000_020b6af0(unk32 *param1) {}
+void UnkStruct_027e0fd4::func_ov000_020b6ba4(s32 param1, s32 param2) {}
+bool UnkStruct_027e0fd4::func_ov000_020b6e70() {}
+bool UnkStruct_027e0fd4::vfunc_08() {}
+bool UnkStruct_027e0fd4::vfunc_0c() {}
+bool UnkStruct_027e0fd4::vfunc_10(s32 *param1) {}
+bool UnkStruct_027e0fd4::vfunc_14(u16 *index, unk32 param2) {}
+unk32 UnkStruct_027e0fd4_Unk1::vfunc_0c() {} \ No newline at end of file
diff --git a/src/00_Core/DTCM/UnkStruct_027e103c.cpp b/src/00_Core/DTCM/UnkStruct_027e103c.cpp
new file mode 100644
index 00000000..53f72d35
--- /dev/null
+++ b/src/00_Core/DTCM/UnkStruct_027e103c.cpp
@@ -0,0 +1,82 @@
+#include "DTCM/UnkStruct_027e103c.hpp"
+
+void *UnkStruct_027e103c::func_ov000_020cef9c() {}
+unk32 UnkStruct_027e103c::func_ov000_020cefbc() {}
+unk32 UnkStruct_027e103c::func_ov000_020cefdc() {}
+unk32 UnkStruct_027e103c::func_ov000_020ceffc() {}
+unk32 UnkStruct_027e103c::func_ov000_020cf01c() {}
+unk32 UnkStruct_027e103c::func_ov000_020cf03c() {}
+unk32 UnkStruct_027e103c::func_ov000_020cf05c() {}
+unk32 UnkStruct_027e103c::func_ov000_020cf07c() {}
+unk32 UnkStruct_027e103c::func_ov000_020cf09c() {}
+unk32 UnkStruct_027e103c::func_ov000_020cf0bc() {}
+unk32 UnkStruct_027e103c::func_ov000_020cf0dc() {}
+unk32 UnkStruct_027e103c::func_ov000_020cf0fc() {}
+unk32 UnkStruct_027e103c::func_ov000_020cf11c() {}
+void UnkStruct_027e103c::func_ov000_020cf13c(s32 param1) {}
+void UnkStruct_027e103c::func_ov000_020cf1b8() {}
+void UnkStruct_027e103c::func_ov000_020cf1d4(unk32 param1) {}
+void UnkStruct_027e103c::func_ov000_020cf20c() {}
+void UnkStruct_027e103c::func_ov000_020cf224(unk32 param1) {}
+void UnkStruct_027e103c::func_ov000_020cf238(unk32 param1, unk32 param2) {}
+bool UnkStruct_027e103c::func_ov000_020cf270(u16 param1) {}
+void UnkStruct_027e103c::func_ov000_020cf284(u16 param1, s32 param2) {}
+void UnkStruct_027e103c::func_ov000_020cf2a0(u32 param1) {}
+void UnkStruct_027e103c::func_ov000_020cf2b8() {}
+void UnkStruct_027e103c::func_ov000_020cf2d8() {}
+void UnkStruct_027e103c::func_ov000_020cf2f8() {}
+void UnkStruct_027e103c::func_ov000_020cf330() {}
+void UnkStruct_027e103c::func_ov000_020cf348() {}
+s32 UnkStruct_027e103c::func_ov000_020cf374(bool param1) {}
+void UnkStruct_027e103c::func_ov000_020cf384() {}
+void UnkStruct_027e103c::func_ov000_020cf398() {}
+void UnkStruct_027e103c::func_ov000_020cf3b8() {}
+void UnkStruct_027e103c::func_ov000_020cf3c8() {}
+void UnkStruct_027e103c::func_ov000_020cf3dc() {}
+void UnkStruct_027e103c::func_ov000_020cf3f0() {}
+void UnkStruct_027e103c::func_ov000_020cf404() {}
+void UnkStruct_027e103c::func_ov000_020cf414() {}
+void UnkStruct_027e103c::func_ov000_020cf42c() {}
+bool UnkStruct_027e103c::func_ov000_020cf444() {}
+bool UnkStruct_027e103c::func_ov000_020cf488() {}
+bool UnkStruct_027e103c::func_ov000_020cf4bc() {}
+bool UnkStruct_027e103c::func_ov000_020cf4d8() {}
+bool UnkStruct_027e103c::func_ov000_020cf4f4() {}
+bool UnkStruct_027e103c::func_ov000_020cf518() {}
+bool UnkStruct_027e103c::func_ov000_020cf534() {}
+bool UnkStruct_027e103c::func_ov000_020cf550() {}
+bool UnkStruct_027e103c::func_ov000_020cf678() {}
+bool UnkStruct_027e103c::func_ov000_020cf750() {}
+bool UnkStruct_027e103c::func_ov000_020cf7c4() {}
+void UnkStruct_027e103c::func_ov000_020cf7e8() {}
+u32 UnkStruct_027e103c::func_ov000_020cf864(u32 param1) {}
+bool UnkStruct_027e103c::func_ov000_020cf8fc(u32 param1) {}
+bool UnkStruct_027e103c::func_ov000_020cf948() {}
+void UnkStruct_027e103c::func_ov000_020cf9dc(s32 param1, s32 param2) {}
+void UnkStruct_027e103c::func_ov000_020cfa24(s32 param1, s32 param2) {}
+unk8 UnkStruct_027e103c::func_ov000_020cfa64() {}
+void UnkStruct_027e103c::func_ov000_020cfa70(s32 param1, s32 param2) {}
+unk8 UnkStruct_027e103c::func_ov000_020cfab0() {}
+void UnkStruct_027e103c::func_ov000_020cfabc(s32 param1, s32 param2) {}
+void UnkStruct_027e103c::func_ov000_020cfae8(s32 param1, s32 param2) {}
+void UnkStruct_027e103c::func_ov000_020cfb20(unk32 param1) {}
+void UnkStruct_027e103c::func_ov000_020cfb38() {}
+void UnkStruct_027e103c::func_ov000_020cfb48() {}
+void UnkStruct_027e103c::func_ov000_020cfb58() {}
+void UnkStruct_027e103c::func_ov000_020cfb68() {}
+void UnkStruct_027e103c::func_ov000_020cfb84() {}
+void UnkStruct_027e103c::func_ov000_020cfb94() {}
+unk32 UnkStruct_027e103c::func_ov000_020cfbb0() {}
+void UnkStruct_027e103c::func_ov000_020cfbd8(unk8 param1) {}
+void UnkStruct_027e103c::func_ov000_020cfbf0(unk32 param1, unk32 param2, unk32 param3) {}
+void UnkStruct_027e103c::func_ov000_020cfc20() {}
+void UnkStruct_027e103c::func_ov000_020cfc44(unk32 param1) {}
+void UnkStruct_027e103c::func_ov000_020cfc70(unk32 param1) {}
+void UnkStruct_027e103c::func_ov000_020cfc9c(unk32 param1, unk32 param2) {}
+void UnkStruct_027e103c::func_ov000_020cfcec() {}
+bool UnkStruct_027e103c::func_ov000_020cfcf8() {}
+void UnkStruct_027e103c::func_ov000_020cfde4(unk32 param1) {}
+void UnkStruct_027e103c::func_ov000_020cfe10(unk8 param1) {}
+void UnkStruct_027e103c::func_ov000_020cfe40(unk8 param1, unk32 param2) {}
+void UnkStruct_027e103c::func_ov000_020cfe74(unk32 param1, unk32 param2) {}
+unk32 UnkStruct_027e103c::func_ov000_020cfea8() {} \ No newline at end of file
diff --git a/src/00_Core/Item/ItemManager.cpp b/src/00_Core/Item/ItemManager.cpp
index 9b4a71fb..96fbad4c 100644
--- a/src/00_Core/Item/ItemManager.cpp
+++ b/src/00_Core/Item/ItemManager.cpp
@@ -1,5 +1,11 @@
#include "Item/ItemManager.hpp"
+#include "DTCM/UnkStruct_027e0d38.hpp"
+#include "DTCM/UnkStruct_027e0f78.hpp"
+#include "Map/MapManager.hpp"
#include "Player/PlayerLinkBase.hpp"
+#include "Player/PlayerManager.hpp"
+#include "Save/AdventureFlags.hpp"
+#include "System/OverlayManager.hpp"
static const char *sShipPartTypes[] = {"anc", "bow", "hul", "can", "dco", "pdl", "fnl", "brg"};
@@ -21,7 +27,7 @@ THUMB void ItemManager::ClearPrevEquippedItem() {
THUMB void ItemManager::Save(SaveItemManager *save) {
save->itemFlags = mItemFlags;
save->numRupees = mNumRupees;
- for (s32 i = 0; i < NUM_POTIONS; ++i) {
+ for (s32 i = 0; i < MAX_POTIONS; ++i) {
save->potions[i] = mPotions[i];
}
save->numBombs = (u8) (*mAmmo)[ItemFlag_BombBag];
@@ -29,7 +35,7 @@ THUMB void ItemManager::Save(SaveItemManager *save) {
save->numArrows = (u8) (*mAmmo)[ItemFlag_Bow];
save->equippedItem = (u8) mEquippedItem;
save->salvagedTreasureFlags = mSalvagedTreasureFlags;
- save->hourglassSeconds = FastDivide(mHourglassSandFrames, 60);
+ save->hourglassSeconds = SoftDivide(mHourglassSandFrames, 60);
for (s32 i = 0; i < Gem_COUNT; ++i) {
save->numGems[i] = mNumGems[i];
}
@@ -71,7 +77,7 @@ THUMB void ItemManager::Load(const SaveItemManager *save) {
(*mAmmo)[ItemFlag_BombBag] = save->numBombs;
(*mAmmo)[ItemFlag_BombchuBag] = save->numBombchus;
(*mAmmo)[ItemFlag_Bow] = save->numArrows;
- for (s32 i = 0; i < NUM_POTIONS; ++i) {
+ for (s32 i = 0; i < MAX_POTIONS; ++i) {
mPotions[i] = save->potions[i];
}
mEquippedItem = save->equippedItem;
@@ -124,7 +130,6 @@ ARM ActorNavi *ItemManager::GetFairy(FairyId id) const {
return mFairies[id];
}
-extern UnkStruct_027e0d38 *data_027e0d38;
extern unk32 gPlayerAnimHandler;
extern "C" void LoadEquipItemModel(unk32 param1, ItemFlag param2);
extern "C" void _ZNK11ItemManager15GetEquippedItemEv();
@@ -153,16 +158,16 @@ ARM ItemModel *ItemManager::GetItemModel(ItemModelId id) {
return mItemModels[id];
}
-extern unk32 data_027e0fc4;
+extern unk32 gItemModelLoader;
extern "C" void *func_ov00_020bb3a8(unk32 param1, u32 index);
extern "C" void func_ov00_020c0bdc(void *param1, unk32 param2);
ARM void ItemManager::func_ov00_020ad538(unk32 param1) const {
- void *unk1 = func_ov00_020bb3a8(data_027e0fc4, 6);
+ void *unk1 = func_ov00_020bb3a8(gItemModelLoader, 6);
func_ov00_020c0bdc(unk1, param1);
}
ARM void ItemManager::func_ov00_020ad560(unk32 param1) const {
- void *unk1 = func_ov00_020bb3a8(data_027e0fc4, 7);
+ void *unk1 = func_ov00_020bb3a8(gItemModelLoader, 7);
func_ov00_020c0bdc(unk1, param1);
}
@@ -171,7 +176,7 @@ ARM ItemModel *ItemManager::GetDungeonItemModel(u32 index) {
}
ARM void ItemManager::func_ov00_020ad594(unk32 param1) const {
- void *unk1 = func_ov00_020bb3a8(data_027e0fc4, 11);
+ void *unk1 = func_ov00_020bb3a8(gItemModelLoader, 11);
func_ov00_020c0bdc(unk1, param1);
}
@@ -251,7 +256,7 @@ ARM bool ItemManager::func_ov00_020ad790(unk32 param1) {
ItemFlag equipId = mForcedItem;
bool unk2 = !gMapManager->func_ov00_020849f8(equipId);
if (mEquippedItem != ItemFlag_None && (unk2 || (u32) mEquippedItem - 9 <= 1) &&
- (gPlayerLink == 0 || gPlayerLink->func_ov00_020bbd80(param1)) && this->HasItem(mEquippedItem))
+ (gPlayerLink == 0 || gPlayerLink->func_ov000_020bbd80(param1)) && this->HasItem(mEquippedItem))
{
equipId = mEquippedItem;
}
@@ -298,7 +303,7 @@ THUMB u16 ItemManager::GetUnk_09e(u32 index) const {
}
THUMB s32 ItemManager::GetUnk_09e_Divided(u32 index) const {
- q20 quotient = Divide(INT_TO_Q20(mUnk_09e[index]), FLOAT_TO_Q20(2.54));
+ q20 quotient = CoDivide64By32(INT_TO_Q20(mUnk_09e[index]), FLOAT_TO_Q20(2.54));
s32 result = ROUND_Q20(quotient);
if (result < 1) result = 1;
return result;
@@ -687,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/Item/ItemModelLoader.cpp b/src/00_Core/Item/ItemModelLoader.cpp
new file mode 100644
index 00000000..d78622ad
--- /dev/null
+++ b/src/00_Core/Item/ItemModelLoader.cpp
@@ -0,0 +1,14 @@
+#include "Item/ItemModelLoader.hpp"
+
+ItemModelLoader::ItemModelLoader() {}
+ItemModelLoader *ItemModelLoader::func_ov000_020bb2ec() {}
+unk32 ItemModelLoader::func_ov000_020bb34c() {}
+void ItemModelLoader::func_ov000_020bb378(s32 param1) {}
+unk32 ItemModelLoader::func_ov000_020bb390(s32 equipId) {}
+unk32 ItemModelLoader::func_ov000_020bb3a8(s32 param1) {}
+s32 ItemModelLoader::func_ov000_020bb3b4(s32 param1, char *param2) {}
+unk32 ItemModelLoader::func_ov000_020bb3d4(s32 param1, unk32 param2) {}
+void ItemModelLoader::func_ov000_020bb3f4(char *param2) {}
+void ItemModelLoader::func_ov000_020bb414(unk32 param1) {}
+void ItemModelLoader::func_ov000_020bb420(unk32 param1) {}
+void ItemModelLoader::func_ov000_020bb42c(unk32 param1) {} \ No newline at end of file
diff --git a/src/00_Core/Map/MapBase.cpp b/src/00_Core/Map/MapBase.cpp
index 8d6d3c96..46f4e40b 100644
--- a/src/00_Core/Map/MapBase.cpp
+++ b/src/00_Core/Map/MapBase.cpp
@@ -69,10 +69,10 @@ unk8 MapBase::func_ov00_0207f948(unk32 param_2) {}
void MapBase::AddTrigger(TriggerParams *param_2) {}
void TriggerBase::vfunc_08() {}
s32 MapBase::GetTriggerBoundingBox(unk32 param_2, AABB *param_3) {}
-bool TriggerBase::GetBoundingBox() {}
+bool TriggerBase::GetBoundingBox(AABB *bbox) {}
unk8 MapBase::GetTriggerBoundingBoxes(unk32 param_2, AABB *param_3, unk32 param_4) {}
unk32 MapBase::GetOverlappingTrigger(Vec3p *param_2) {}
-bool TriggerBase::Overlaps() {}
+bool TriggerBase::Overlaps(Vec3p *point) {}
unk8 MapBase::FindTrigger(unk32 type) {}
unk8 MapBase::GetOverlappingTriggers(Vec3p *param_2, TriggerBase **triggers, unk32 capacity) {}
bool MapBase::IsTriggerTypeOverlapped(unk32 type, Vec3p *param_3) {}
diff --git a/src/00_Core/Map/MapData.cpp b/src/00_Core/Map/MapData.cpp
new file mode 100644
index 00000000..12e485e0
--- /dev/null
+++ b/src/00_Core/Map/MapData.cpp
@@ -0,0 +1,16 @@
+#include "Map/MapData.hpp"
+
+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() {}
+void MapData::SetFlag0(u32 index, bool value) {}
+bool MapData::GetFlag0(u32 index) {}
+void MapData::SetFlag1(u32 index, bool value) {}
+bool MapData::GetFlag1(u32 index) {}
+void MapData::SetFlag2(u32 index, bool value) {}
+bool MapData::GetFlag2(u32 index) {}
+void MapData::SetFlag3(u32 index, bool value) {}
+bool MapData::GetFlag3(u32 index) {}
+void MapData::SetFlag4(u32 index, bool value) {}
+bool MapData::GetFlag4(u32 index) {}
diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp
index 69be3117..9c23a95b 100644
--- a/src/00_Core/Map/MapManager.cpp
+++ b/src/00_Core/Map/MapManager.cpp
@@ -132,7 +132,7 @@ void MapManager::func_ov00_02083f44(Vec3p *param_2) {}
unk8 MapManager::MapData_vfunc_6c() {}
unk8 MapManager::MapData_vfunc_70() {}
unk8 MapManager::func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3) {}
-void MapManager::func_ov00_02084024(unk32 param_2, AABB *param_3) {}
+void MapManager::GetTileWorldBounds(Vec2b *tile, AABB *tileBounds) {}
unk8 MapManager::MapData_vfunc_54() {}
unk8 MapManager::func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4) {}
unk8 MapManager::MapData_vfunc_78() {}
diff --git a/src/00_Core/Map/Trigger.cpp b/src/00_Core/Map/Trigger.cpp
new file mode 100644
index 00000000..7e1bb785
--- /dev/null
+++ b/src/00_Core/Map/Trigger.cpp
@@ -0,0 +1,40 @@
+#include "Map/TriggerAABB.hpp"
+#include "Map/TriggerAABB_Unk1.hpp"
+#include "Map/TriggerAABB_Unk2.hpp"
+#include "Map/TriggerBase.hpp"
+#include "Map/TriggerSphere.hpp"
+
+TriggerBase::TriggerBase(TriggerParams *params) {}
+TriggerBase::TriggerBase(u8 id, u32 param2, u32 param3, u32 param4) {}
+TriggerBase::~TriggerBase() {}
+
+TriggerAABB::TriggerAABB(TriggerParams *params) :
+ TriggerBase(params) {}
+TriggerAABB::TriggerAABB(u8 id, u32 param2, u32 param3, u32 param4) :
+ TriggerBase(id, param2, param3, param4) {}
+TriggerAABB::~TriggerAABB() {}
+
+TriggerSphere::TriggerSphere(TriggerParams *params) :
+ TriggerBase(params) {}
+TriggerSphere::TriggerSphere(u8 id, u32 param2, u32 param3, u32 param4) :
+ TriggerBase(id, param2, param3, param4) {}
+TriggerSphere::~TriggerSphere() {}
+bool TriggerSphere::GetBoundingBox(AABB *bbox) {}
+
+TriggerAABB_Unk2::TriggerAABB_Unk2(TriggerParams *params) :
+ TriggerAABB(params) {}
+TriggerAABB_Unk2_Unk1::TriggerAABB_Unk2_Unk1() {}
+TriggerAABB_Unk2::~TriggerAABB_Unk2() {}
+void TriggerAABB_Unk2::vfunc_08() {}
+unk32 TriggerAABB_Unk2::vfunc_0c() {}
+unk32 TriggerAABB_Unk2::vfunc_10() {}
+
+TriggerAABB_Unk1::TriggerAABB_Unk1(TriggerParams *params) :
+ TriggerAABB(params) {}
+TriggerAABB_Unk1::~TriggerAABB_Unk1() {}
+void TriggerAABB_Unk1::vfunc_08() {}
+
+bool TriggerSphere::Overlaps(Vec3p *point) {}
+
+bool TriggerAABB::Overlaps(Vec3p *point) {}
+bool TriggerAABB::GetBoundingBox(AABB *bbox) {}
diff --git a/src/00_Core/Map/TriggerAABB_Unk2_Unk1_1.cpp b/src/00_Core/Map/TriggerAABB_Unk2_Unk1_1.cpp
new file mode 100644
index 00000000..6a44f466
--- /dev/null
+++ b/src/00_Core/Map/TriggerAABB_Unk2_Unk1_1.cpp
@@ -0,0 +1,6 @@
+#include "Map/TriggerAABB_Unk2.hpp"
+
+bool TriggerAABB_Unk2_Unk1::ContainsInXZ(Vec3p *pos) {}
+bool TriggerAABB_Unk2_Unk1::Contains(Vec3p *pos) {}
+bool TriggerAABB_Unk2_Unk1::IntersectsCube(Cube *cube) {}
+void TriggerAABB_Unk2_Unk1::vfunc_54(Cube *param1, Vec3p *param2, u32 *param3) {}
diff --git a/src/00_Core/Map/TriggerAABB_Unk2_Unk1_2.cpp b/src/00_Core/Map/TriggerAABB_Unk2_Unk1_2.cpp
new file mode 100644
index 00000000..0879387b
--- /dev/null
+++ b/src/00_Core/Map/TriggerAABB_Unk2_Unk1_2.cpp
@@ -0,0 +1,12 @@
+#include "Map/TriggerAABB_Unk2.hpp"
+
+unk32 TriggerAABB_Unk2_Unk1::vfunc_08() {}
+void TriggerAABB_Unk2_Unk1::SetBoundingBox(AABB *param1) {}
+void TriggerAABB_Unk2_Unk1::GetBoundingBox(AABB *bbox) {}
+void TriggerAABB_Unk2_Unk1::SetPosition(Vec3p *pos) {}
+void TriggerAABB_Unk2_Unk1::vfunc_34() {}
+void TriggerAABB_Unk2_Unk1::vfunc_38() {}
+void TriggerAABB_Unk2_Unk1::GetPosition(Vec3p *pos) {}
+q20 TriggerAABB_Unk2_Unk1::GetSizeXZ() {}
+q20 TriggerAABB_Unk2_Unk1::GetHeight() {}
+TriggerAABB_Unk2_Unk1::~TriggerAABB_Unk2_Unk1() {}
diff --git a/src/00_Core/Physics/AABB.cpp b/src/00_Core/Physics/AABB.cpp
new file mode 100644
index 00000000..c3d6b2e0
--- /dev/null
+++ b/src/00_Core/Physics/AABB.cpp
@@ -0,0 +1,15 @@
+#include "Physics/AABB.hpp"
+
+bool AABB::func_ov000_0208e680() {}
+void AABB::GetCenter(Vec3p *center) {}
+q20 AABB::GetSizeX() {}
+q20 AABB::GetSizeZ() {}
+q20 AABB::GetSizeY() {}
+bool AABB::Contains(Vec3p *vec) {}
+bool AABB::ContainsInXZ(Vec3p *vec) {}
+bool AABB::ContainsInXY(Vec3p *vec) {}
+bool AABB::IntersectsCube(Cube *cube) {}
+bool AABB::func_ov000_0208e87c(Cube *cube, Vec3p *vec, u32 *out) {}
+void AABB::GrowToPoint(Vec3p *point) {}
+void AABB::Grow(Vec3p *dimensions) {}
+void AABB::GrowScalar(q20 amount) {}
diff --git a/src/00_Core/Player/EquipItem.cpp b/src/00_Core/Player/EquipItem.cpp
new file mode 100644
index 00000000..9256b13a
--- /dev/null
+++ b/src/00_Core/Player/EquipItem.cpp
@@ -0,0 +1,19 @@
+#include "Player/EquipItem.hpp"
+
+void EquipItem::vfunc_00() {}
+void EquipItem::vfunc_1c() {}
+bool EquipItem::IsUsable(unk32 param1) const {}
+bool EquipItem::IsInUse() const {}
+bool EquipItem::UpdateInUse(unk32 param1) {}
+u32 EquipItem::vfunc_2c() {}
+void EquipItem::vfunc_34(unk16 *param1) {}
+unk32 EquipItem::vfunc_40() const {}
+unk32 EquipItem::vfunc_44(unk32 param1) const {}
+unk32 EquipItem::vfunc_48(unk32 param1) const {}
+s32 EquipItem::vfunc_4c() const {}
+Vec3p *EquipItem::GetPlayerPos() {}
+void EquipItem::func_ov000_020be99c(Vec3p *param1) {}
+void EquipItem::func_ov000_020be9e4(s32 param1, s32 param2, s32 param3, s16 param4) {}
+u16 EquipItem::GetAmmo() {}
+void EquipItem::GiveAmmo(u32 amount) {}
+bool EquipItem::GetHitbox(Cylinder *hitbox) const {}
diff --git a/src/00_Core/Player/EquipShield.cpp b/src/00_Core/Player/EquipShield.cpp
new file mode 100644
index 00000000..b7b30105
--- /dev/null
+++ b/src/00_Core/Player/EquipShield.cpp
@@ -0,0 +1,12 @@
+#include "Player/EquipShield.hpp"
+
+void EquipShield::vfunc_00() {}
+ItemFlag EquipShield::GetId() const {}
+bool EquipShield::IsUsable(unk32 param1) const {}
+void EquipShield::func_ov000_020c070c(u32 param1, Vec3p *param2, unk32 param3) {}
+void EquipShield::vfunc_10() {}
+void EquipShield::vfunc_18() {}
+void EquipShield::vfunc_1c() {}
+void EquipShield::vfunc_30() {}
+void EquipShield::vfunc_38(unk32 param1) {}
+bool EquipShield::GetHitbox(Cylinder *hitbox) const {}
diff --git a/src/00_Core/Player/EquipSword.cpp b/src/00_Core/Player/EquipSword.cpp
new file mode 100644
index 00000000..813f0e1c
--- /dev/null
+++ b/src/00_Core/Player/EquipSword.cpp
@@ -0,0 +1,26 @@
+#include "Player/EquipSword.hpp"
+
+void EquipSword::vfunc_00() {}
+ItemFlag EquipSword::GetId() const {}
+void EquipSword::func_ov000_020bf008(unk16 param1, unk16 param2) {}
+bool EquipSword::func_ov000_020bf028() {}
+void EquipSword::func_ov000_020bf088() {}
+void EquipSword::vfunc_10() {}
+bool EquipSword::UpdateInUse(unk32 param1) {}
+void EquipSword::vfunc_18() {}
+void EquipSword::vfunc_1c() {}
+void EquipSword::func_ov000_020bf330() {}
+bool EquipSword::func_ov000_020bf4f4() {}
+void EquipSword::vfunc_30() {}
+EquipRope *EquipSword::GetEquipRope() {}
+void *func_ov000_020bff80(void *param1) {}
+void EquipSword::vfunc_38(unk32 param1) {}
+bool EquipSword::GetHitbox(Cylinder *hitbox) const {}
+void EquipSword::func_ov000_020c024c(Vec3p *param1, s32 param2) {}
+void EquipSword::func_ov000_020c0318(Vec3p *param1, s32 param2) {}
+void EquipSword::func_ov000_020c0550(Vec3p *param1, s32 param2) {}
+void EquipSword::func_ov000_020c05ec(s32 param1) {}
+void EquipSword::func_ov000_020c0648() {}
+u32 EquipSword::vfunc_2c() {}
+void EquipSword::func_ov000_020c06b0(s32 param1) {}
+void *func_ov000_020c06b8() {}
diff --git a/src/00_Core/Player/LinkStateCutscene.cpp b/src/00_Core/Player/LinkStateCutscene.cpp
new file mode 100644
index 00000000..be25ba5b
--- /dev/null
+++ b/src/00_Core/Player/LinkStateCutscene.cpp
@@ -0,0 +1,37 @@
+#include "Player/LinkStateCutscene.hpp"
+
+void LinkStateCutscene::vfunc_00() {}
+void UnkStruct_ov004_0210abb8::vfunc_08(unk32 param1) {}
+bool LinkStateCutscene::func_ov000_020b1e98(s32 param1) {}
+bool LinkStateCutscene::func_ov000_020b1eb8() {}
+bool LinkStateCutscene::func_ov000_020b1eec() {}
+void LinkStateCutscene::CreateDebugHierarchy() {}
+void LinkStateCutscene::OnStateEnter() {}
+void LinkStateCutscene::OnStateLeave(s32 param1) {}
+LinkStateId LinkStateCutscene::GetId() {}
+void LinkStateCutscene::vfunc_1c() {}
+void LinkStateCutscene::StopVerticalVelocity() {}
+void LinkStateCutscene::func_ov000_020b2568() {}
+void LinkStateCutscene::func_ov000_020b2598() {}
+void LinkStateCutscene::func_ov000_020b2ba4() {}
+void LinkStateCutscene::func_ov000_020b2ce4(unk32 param1, s16 param2) {}
+void LinkStateCutscene::func_ov000_020b2cf0() {}
+void LinkStateCutscene::func_ov000_020b2d60() {}
+bool LinkStateCutscene::func_ov000_020b2d8c() {}
+void LinkStateCutscene::func_ov000_020b2e84() {}
+bool LinkStateCutscene::vfunc_24(s32 param1) {}
+bool LinkStateCutscene::vfunc_28() {}
+void LinkStateCutscene::func_ov000_020b2f48(unk32 param1, unk32 param2) {}
+void LinkStateCutscene::func_ov000_020b2f70(unk32 param1, void *param2, unk32 *param3) {}
+void LinkStateCutscene::ChangeToMoveState() {}
+bool LinkStateCutscene::func_ov000_020b2fac() {}
+void LinkStateCutscene::func_ov000_020b3024(Vec3p *param1, unk32 param2) {}
+void LinkStateCutscene::func_ov000_020b305c(Vec3p *param1, Vec3p *param2) {}
+void LinkStateCutscene::func_ov000_020b309c(Vec3p *param1) {}
+void LinkStateCutscene::func_ov000_020b30e4(u32 param1, unk32 param2, unk32 param3) {}
+void LinkStateCutscene::func_ov000_020b3278(s32 param1, s32 *param2) {}
+void LinkStateCutscene::func_ov000_020b35d8(s32 param1, s32 param2) {}
+void LinkStateCutscene::func_ov000_020b38dc(u32 param1, u32 param2) {}
+bool LinkStateCutscene::vfunc_40() {}
+bool LinkStateCutscene::vfunc_38() {}
+UnkStruct_ov004_0210abb8::~UnkStruct_ov004_0210abb8() {}
diff --git a/src/00_Core/Player/LinkStateItem.cpp b/src/00_Core/Player/LinkStateItem.cpp
index 5cbccd85..240b94c8 100644
--- a/src/00_Core/Player/LinkStateItem.cpp
+++ b/src/00_Core/Player/LinkStateItem.cpp
@@ -1,4 +1,5 @@
#include "Player/LinkStateItem.hpp"
+#include "DTCM/UnkStruct_027e103c.hpp"
#include "Item/ItemManager.hpp"
#include "Player/EquipBomb.hpp"
#include "Player/EquipHammer.hpp"
@@ -7,13 +8,11 @@
#include "Player/PlayerControl.hpp"
#include "Save/AdventureFlags.hpp"
-extern unk32 func_ov000_020cf01c(s32 *param1);
extern void func_ov000_020cf9dc(s32 param1, s32 param2, s32 param3);
extern void func_ov014_0213ec64(s32 param1);
extern void func_ov014_0211fd04(s32 *param1);
extern void func_ov000_020b7e6c(s32 *param1);
-extern s32 *data_027e103c;
extern s32 *data_027e1098;
THUMB void LinkStateItem::vfunc_00() {}
@@ -39,26 +38,26 @@ ARM void LinkStateItem::OnStateLeave(s32 param1) {
switch (this->mEquipId) {
case ItemFlag_BombchuBag:
- iVar3 = func_ov000_020cf01c(data_027e103c);
+ iVar3 = data_027e103c->func_ov000_020cf01c();
if (*(u8 *) (iVar3 + 0xe0) == '\0') {
- func_ov014_0213ec64((s32) GetEquipBombchu());
+ GetEquipBombchu()->func_ov014_0213ec64();
}
func_ov014_0211fd04(data_027e1098);
break;
case ItemFlag_OshusSword: break;
case ItemFlag_WoodenShield: break;
case ItemFlag_Boomerang: break;
- case ItemFlag_BombBag: EquipBomb::StopUsing(this, param1); break;
+ case ItemFlag_BombBag: this->StopUsingBomb(param1); break;
case ItemFlag_Bow: break;
- case ItemFlag_GrapplingHook: EquipRope::StopUsing(this); break;
- case ItemFlag_Hammer: EquipHammer::StopUsing(this); break;
+ case ItemFlag_GrapplingHook: this->StopUsingRope(); break;
+ case ItemFlag_Hammer: this->StopUsingHammer(); break;
case ItemFlag_PotionA:
case ItemFlag_PotionB:
- iVar3 = (int) (data_027e103c);
- *(unk8 *) ((s16 *) data_027e103c + 0x15) = 0;
- func_ov000_020cf9dc(iVar3, 0, 0);
+ UnkStruct_027e103c *pData_027e103c = data_027e103c;
+ pData_027e103c->mUnk_2a = 0;
+ pData_027e103c->func_ov000_020cf9dc(0, 0);
break;
- case ItemFlag_Shovel: EquipScoop::StopUsing(this); break;
+ case ItemFlag_Shovel: this->StopUsingScoop(); break;
}
if (this->mEquipId != ItemFlag_None) {
diff --git a/src/00_Core/Player/PlayerControlData.cpp b/src/00_Core/Player/PlayerControlData.cpp
new file mode 100644
index 00000000..50e6c853
--- /dev/null
+++ b/src/00_Core/Player/PlayerControlData.cpp
@@ -0,0 +1,37 @@
+#include "Player/PlayerControlData.hpp"
+
+void PlayerControlData::vfunc_00() {}
+void PlayerControlData::func_ov000_020b4440() {}
+void PlayerControlData::func_ov000_020b4460(s32 param1) {}
+void PlayerControlData::func_ov000_020b44d4(s32 param1, u32 param2) {}
+void PlayerControlData::func_ov000_020b4558(s32 param1, u32 param2) {}
+void PlayerControlData::func_ov000_020b45e0() {}
+void PlayerControlData::func_ov000_020b45f8(unk32 *param1, unk8 param2, unk8 param3) {}
+void PlayerControlData::func_ov000_020b464c(unk32 *param1, unk8 param2, unk8 param3) {}
+void PlayerControlData::vfunc_60(unk32 param1, unk32 param2, s32 param3) {}
+void PlayerControlData::vfunc_68(unk32 param1, unk32 param2) {}
+void PlayerControlData::vfunc_64(u32 param1) {}
+void PlayerControlData::vfunc_20() {}
+void PlayerControlData::vfunc_24() {}
+void PlayerControlData::vfunc_28() {}
+void PlayerControlData::vfunc_2c() {}
+void PlayerControlData::vfunc_30() {}
+void PlayerControlData::vfunc_34() {}
+unk32 PlayerControlData::vfunc_7c() {}
+unk32 PlayerControlData::vfunc_74() {}
+unk32 PlayerControlData::vfunc_78() {}
+void PlayerControlData::func_ov000_020b484c(s32 param1, s32 param2, s32 param3) {}
+void PlayerControlData::vfunc_6c(s32 param1, Vec3p *param2) {}
+void PlayerControlData::vfunc_5c() {}
+void PlayerControlData::vfunc_3c(s32 param1, s32 param2) {}
+void PlayerControlData::vfunc_40(u16 *param1, Vec3p *param2, unk32 param3, char param4) {}
+void PlayerControlData::vfunc_44(unk32 param1, unk32 *param2, unk32 param3, unk16 param4) {}
+void PlayerControlData::vfunc_48(unk32 param1, unk32 param2, unk32 param3, s16 param4) {}
+void PlayerControlData::vfunc_4c(unk32 param1, Vec3p *param2) {}
+void PlayerControlData::vfunc_70(s32 param1) {}
+void PlayerControlData::vfunc_50() {}
+void PlayerControlData::vfunc_54() {}
+void PlayerControlData::vfunc_58() {}
+void PlayerControlData::func_ov000_020b4944(unk32 param1, u32 param2, s32 param3) {}
+void PlayerControlData::func_ov000_020b4a00(s32 *param1, s32 *param2, s32 *param3, s32 param4) {}
+unk32 PlayerControlData::vfunc_0c() {}
diff --git a/src/00_Core/Player/PlayerControl_2.cpp b/src/00_Core/Player/PlayerControl_2.cpp
new file mode 100644
index 00000000..7535837a
--- /dev/null
+++ b/src/00_Core/Player/PlayerControl_2.cpp
@@ -0,0 +1,7 @@
+#include "Player/PlayerControl.hpp"
+
+void PlayerControl::ResetTouchWorld() {}
+void PlayerControl::InitTouchMovement() {}
+void PlayerControl::func_ov000_020b7924(s32 param1) {}
+void PlayerControl::ApplyTouchWorld(Vec3p *result, unk32 scale) {}
+bool PlayerControl::func_ov000_020b7d6c() {}
diff --git a/src/00_Core/Player/PlayerLinkBase.cpp b/src/00_Core/Player/PlayerLinkBase.cpp
new file mode 100644
index 00000000..897932c8
--- /dev/null
+++ b/src/00_Core/Player/PlayerLinkBase.cpp
@@ -0,0 +1,101 @@
+#include "Player/PlayerLinkBase.hpp"
+
+s32 PlayerLinkBase::GetMaxHealth() {}
+void PlayerLinkBase::vfunc_10(Cylinder *param1) {}
+void PlayerLinkBase::vfunc_14(Cylinder *param1) {}
+void PlayerLinkBase::UnequipPotion() {}
+void PlayerLinkBase::ChangeLinkState(s32 index) {}
+void PlayerLinkBase::SetLinkSubState(s32 index, unk32 substate) {}
+PlayerControlData *PlayerLinkBase::GetPlayerControlData(s32 index) {}
+void PlayerLinkBase::GetDistanceTo(Vec3p *vec, q20 *yDist, q20 *xzDist) {}
+bool PlayerLinkBase::func_ov000_020bb68c(Vec3p *target) {}
+bool PlayerLinkBase::func_ov000_020bb6d4() {}
+void PlayerLinkBase::func_ov000_020bb810(Vec3p *target, unk32 param2) {}
+void PlayerLinkBase::func_ov000_020bb8c4(Vec3p *param1) {}
+void PlayerLinkBase::TurnTo(Vec3p *target) {}
+void PlayerLinkBase::func_ov000_020bb9b0() {}
+void PlayerLinkBase::func_ov000_020bb9c8() {}
+void PlayerLinkBase::func_ov000_020bb9e4() {}
+bool PlayerLinkBase::func_ov000_020bba00() {}
+bool PlayerLinkBase::func_ov000_020bba14() {}
+bool PlayerLinkBase::func_ov000_020bba28() {}
+void PlayerLinkBase::func_ov000_020bba48() {}
+void PlayerLinkBase::vfunc_18(s32 param1) {}
+bool PlayerLinkBase::CanMove() {}
+bool PlayerLinkBase::vfunc_58() {}
+bool PlayerLinkBase::vfunc_5c() {}
+bool PlayerLinkBase::vfunc_60() {}
+void PlayerLinkBase::vfunc_64() {}
+bool PlayerLinkBase::func_ov000_020bbabc() {}
+bool PlayerLinkBase::func_ov000_020bbb18() {}
+bool PlayerLinkBase::func_ov000_020bbb64() {}
+bool PlayerLinkBase::func_ov000_020bbb78() {}
+void PlayerLinkBase::func_ov000_020bbbb8() {}
+bool PlayerLinkBase::func_ov000_020bbbd0(s32 param1, s32 param2) {}
+bool PlayerLinkBase::func_ov000_020bbc68(s32 param1) {}
+bool PlayerLinkBase::func_ov000_020bbd40() {}
+bool PlayerLinkBase::func_ov000_020bbd60() {}
+bool PlayerLinkBase::func_ov000_020bbd80(s32 param1) {}
+unk32 PlayerLinkBase::func_ov000_020bbe94() {}
+bool PlayerLinkBase::vfunc_30(s32 param1, Vec3p *param2, s32 param3) {}
+void PlayerLinkBase::func_ov000_020bc088() {}
+ItemManager *PlayerLinkBase::GetItemManager() {}
+void PlayerLinkBase::vfunc_70(s32 param1, Vec3p *param2, unk32 param3) {}
+void PlayerLinkBase::func_ov000_020bc1c8(unk32 param1, unk32 param2, unk32 param3) {}
+bool PlayerLinkBase::func_ov000_020bc210() {}
+void PlayerLinkBase::SetVelocity(Vec3p *velocity, bool setAngle) {}
+void PlayerLinkBase::vfunc_6c() {}
+void PlayerLinkBase::func_ov000_020bc280(unk16 param1) {}
+unk32 PlayerLinkBase::func_ov000_020bc2d4(unk32 param1) {}
+unk32 PlayerLinkBase::func_ov000_020bc320(unk32 param1, unk32 param2, unk32 param3) {}
+void PlayerLinkBase::func_ov000_020bc398(unk32 param1, s32 param2) {}
+PlayerCharacter PlayerLinkBase::GetCurrentCharacter() {}
+s32 PlayerLinkBase::GetHealth(PlayerCharacter character) {}
+void PlayerLinkBase::AddHealth(s16 amount, PlayerCharacter character) {}
+void PlayerLinkBase::func_ov000_020bc4ac() {}
+s32 PlayerLinkBase::GetStateId() {}
+s32 PlayerLinkBase::func_ov000_020bc520(Vec3p *param1) {}
+ItemFlag PlayerLinkBase::GetEquipId() {}
+unk32 PlayerLinkBase::Grab() {}
+void PlayerLinkBase::func_ov000_020bc7e0(unk32 param1) {}
+s32 PlayerLinkBase::GetGrabActorId() {}
+s32 PlayerLinkBase::func_ov000_020bc808() {}
+unk32 PlayerLinkBase::func_ov000_020bc84c() {}
+void PlayerLinkBase::func_ov000_020bc854(Vec3p *param1) {}
+void PlayerLinkBase::UpdateTilePos(Vec3p *param1, PlayerCharacter character) {}
+void PlayerLinkBase::func_ov000_020bc90c(unk32 *param1, s32 param2) {}
+bool PlayerLinkBase::func_ov000_020bc960(unk32 param1, unk32 param2, unk32 param3) {}
+bool PlayerLinkBase::TeleportToLastEntrance(bool param1) {}
+bool PlayerLinkBase::TeleportToEntrance(unk32 entranceId, bool param2) {}
+bool PlayerLinkBase::Teleport(Vec3p *pos, s16 angle, unk32 param3, bool param4, bool param5) {}
+void PlayerLinkBase::vfunc_74() {}
+bool PlayerLinkBase::GongoronCollidesWith(Cylinder *hitbox) {}
+unk32 PlayerLinkBase::vfunc_78() {}
+bool PlayerLinkBase::func_ov000_020bcc78() {}
+void PlayerLinkBase::func_ov000_020bccc8() {}
+void PlayerLinkBase::func_ov000_020bcdb8() {}
+void PlayerLinkBase::func_ov000_020bcdec(Vec3p *param1, unk16 param2) {}
+bool PlayerLinkBase::PlayItemCutscene(ItemId cutsceneItemId) {}
+bool PlayerLinkBase::func_ov000_020bcec8() {}
+bool PlayerLinkBase::func_ov000_020bcefc() {}
+bool PlayerLinkBase::func_ov000_020bcf2c() {}
+bool PlayerLinkBase::func_ov000_020bcf50(Vec3p *param1, unk32 param2) {}
+bool PlayerLinkBase::func_ov000_020bcf84(Vec3p *param1, Vec3p *param2) {}
+bool PlayerLinkBase::func_ov000_020bcfb8(s32 param1) {}
+bool PlayerLinkBase::func_ov000_020bd030(unk32 param1) {}
+bool PlayerLinkBase::func_ov000_020bd070(unk32 param1) {}
+bool PlayerLinkBase::func_ov000_020bd0a8() {}
+bool PlayerLinkBase::func_ov000_020bd0bc(Vec3p *param1, s32 param2) {}
+bool PlayerLinkBase::func_ov000_020bd268() {}
+bool PlayerLinkBase::func_ov000_020bd2bc() {}
+bool PlayerLinkBase::func_ov000_020bd304() {}
+bool PlayerLinkBase::func_ov000_020bd318() {}
+void PlayerLinkBase::vfunc_7c() {}
+void PlayerLinkBase::SetPlayerCharacter(PlayerCharacter character) {}
+bool PlayerLinkBase::func_ov000_020bd3b0(unk32 param1, unk32 param2, unk32 param3, unk16 param4) {}
+void PlayerLinkBase::SetPosition(Vec3p *position) {}
+void PlayerLinkBase::SetAngle(s16 *angle) {}
+bool PlayerLinkBase::func_ov000_020bd510(s32 param1, unk32 *param2) {}
+void PlayerLinkBase::vfunc_68() {}
+void PlayerLinkBase::SetUnk_5e() {}
+void PlayerLinkBase::ResetUnk_5e() {}
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/00_Core/Render/ModelRender.cpp b/src/00_Core/Render/ModelRender.cpp
new file mode 100644
index 00000000..03a66133
--- /dev/null
+++ b/src/00_Core/Render/ModelRender.cpp
@@ -0,0 +1,25 @@
+#include "Render/ModelRender.hpp"
+
+ModelRender::ModelRender() {}
+ModelRender::~ModelRender() {}
+void *ModelRender::GetLcdcAddress() {}
+void ModelRender::vfunc_0c(ItemModel *model) {}
+void *ModelRender::func_ov000_020a9624(s32 param1) {}
+void ModelRender::SetTransform(Vec3p *scale, Mat3p *rotation, Vec3p *translation) {}
+void ModelRender::SetRotationTranslation(Mat3p *rotation, Vec3p *translation) {}
+void ModelRender::SetTranslation(Vec3p *translation) {}
+void ModelRender::PushGeometryCommands() {}
+void ModelRender::vfunc_20() {}
+void ModelRender::vfunc_24(unk32 param1) {}
+void ModelRender::vfunc_28() {}
+void ModelRender::vfunc_2c() {}
+void ModelRender::vfunc_34() {}
+void ModelRender::vfunc_30() {}
+void ModelRender::func_ov000_020a98e8(unk32 param1) {}
+void ModelRender::func_ov000_020a990c(unk32 param1) {}
+void ModelRender::func_ov000_020a9938(unk32 param1) {}
+void ModelRender::func_ov000_020a9960(unk32 param1) {}
+void ModelRender::vfunc_38() {}
+void ModelRender::vfunc_3c() {}
+void ModelRender::func_ov000_020a9998(unk32 param1, unk32 param2) {}
+void ModelRender::func_ov000_020a99c0() {}
diff --git a/src/00_Core/Save/AdventureFlags.cpp b/src/00_Core/Save/AdventureFlags.cpp
index a6a944b5..7ba5f7c6 100644
--- a/src/00_Core/Save/AdventureFlags.cpp
+++ b/src/00_Core/Save/AdventureFlags.cpp
@@ -47,4 +47,3 @@ bool AdventureFlags::func_ov00_02098074(unk32 param1, unk16 param2, unk32 param3
bool AdventureFlags::func_ov00_0209809c() {}
bool AdventureFlags::func_ov00_020980ac() {}
void AdventureFlags::func_ov00_020980bc(s32 param1) {}
-void AdventureFlags::func_ov00_020980d0() {}
diff --git a/src/00_Core/Save/FlagsUnk.cpp b/src/00_Core/Save/FlagsUnk.cpp
new file mode 100644
index 00000000..11d43a92
--- /dev/null
+++ b/src/00_Core/Save/FlagsUnk.cpp
@@ -0,0 +1,5 @@
+#include "Save/AdventureFlags.hpp"
+
+FlagsUnk::~FlagsUnk() {}
+FlagsUnk2::~FlagsUnk2() {}
+void FlagsUnk::func_ov000_020980f8() {}
diff --git a/src/00_Core/Save/SaveItemManager.cpp b/src/00_Core/Save/SaveItemManager.cpp
new file mode 100644
index 00000000..8fdf2cef
--- /dev/null
+++ b/src/00_Core/Save/SaveItemManager.cpp
@@ -0,0 +1,3 @@
+#include "Save/SaveItemManager.hpp"
+
+SaveItemManager::SaveItemManager() {}
diff --git a/src/00_Core/Unknown/UnkStruct_ov000_020b1528.cpp b/src/00_Core/Unknown/UnkStruct_ov000_020b1528.cpp
new file mode 100644
index 00000000..ed9b3d16
--- /dev/null
+++ b/src/00_Core/Unknown/UnkStruct_ov000_020b1528.cpp
@@ -0,0 +1,9 @@
+#include "Unknown/UnkStruct_ov000_020b1528.hpp"
+
+UnkStruct_ov000_020b1528::UnkStruct_ov000_020b1528() {}
+UnkStruct_ov000_020b1528::~UnkStruct_ov000_020b1528() {}
+void UnkStruct_ov000_020b1528::Clear() {}
+bool UnkStruct_ov000_020b1528::vfunc_08() {}
+bool UnkStruct_ov000_020b1528::vfunc_0c() {}
+bool UnkStruct_ov000_020b1528::vfunc_10(s32 *param1) {}
+bool UnkStruct_ov000_020b1528::vfunc_14(u16 *index, unk32 param2) {}
diff --git a/src/00_Core/Unknown/UnkStruct_ov000_020beba8.cpp b/src/00_Core/Unknown/UnkStruct_ov000_020beba8.cpp
new file mode 100644
index 00000000..1d46c6b3
--- /dev/null
+++ b/src/00_Core/Unknown/UnkStruct_ov000_020beba8.cpp
@@ -0,0 +1,9 @@
+#include "Unknown/UnkStruct_ov000_020beba8.hpp"
+
+UnkStruct_ov000_020beba8::UnkStruct_ov000_020beba8(unk32 param1) {}
+void UnkStruct_ov000_020beba8::vfunc_08(unk16 *param1) {}
+void UnkStruct_ov000_020beba8::vfunc_0c(unk16 *param1) {}
+void UnkStruct_ov000_020beba8::vfunc_10(s32 *param1) {}
+void UnkStruct_ov000_020beba8::vfunc_18(s32 *param1) {}
+void UnkStruct_ov000_020beba8::vfunc_14(u16 *param1) {}
+UnkStruct_ov000_020beba8::~UnkStruct_ov000_020beba8() {}
diff --git a/src/00_Core/Unknown/UnkStruct_ov000_020e2f04.cpp b/src/00_Core/Unknown/UnkStruct_ov000_020e2f04.cpp
new file mode 100644
index 00000000..52e9cfd6
--- /dev/null
+++ b/src/00_Core/Unknown/UnkStruct_ov000_020e2f04.cpp
@@ -0,0 +1,13 @@
+#include "Unknown/UnkStruct_ov000_020e2f04.hpp"
+
+UnkStruct_ov000_020e2f04::~UnkStruct_ov000_020e2f04() {}
+void UnkStruct_ov000_020e2f04::vfunc_0c() {}
+void UnkStruct_ov000_020e2f04::vfunc_10() {}
+void UnkStruct_ov000_020e2f04::vfunc_14(AABB *param1, unk32 param2, unk32 param3, unk32 param4) {}
+void UnkStruct_ov000_020e2f04::vfunc_18() {}
+void UnkStruct_ov000_020e2f04::vfunc_1c() {}
+void UnkStruct_ov000_020e2f04::SetBoundingBox(AABB *param1) {}
+void UnkStruct_ov000_020e2f04::vfunc_24() {}
+void UnkStruct_ov000_020e2f04::vfunc_28() {}
+void UnkStruct_ov000_020e2f04::GetBoundingBox(AABB *bbox) {}
+void UnkStruct_ov000_020e2f04::vfunc_58(unk32 param1, unk32 param2, s32 param3) {}
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() {}
diff --git a/src/05/DTCM/UnkStruct_027e103c.cpp b/src/05/DTCM/UnkStruct_027e103c.cpp
new file mode 100644
index 00000000..5e84fbe5
--- /dev/null
+++ b/src/05/DTCM/UnkStruct_027e103c.cpp
@@ -0,0 +1,24 @@
+#include "DTCM/UnkStruct_027e103c.hpp"
+
+void UnkStruct_027e103c::func_ov005_02103f20() {}
+void UnkStruct_027e103c::func_ov005_02103f3c() {}
+bool UnkStruct_027e103c::func_ov005_02103f4c() {}
+void UnkStruct_027e103c::func_ov005_02103f70() {}
+void UnkStruct_027e103c::func_ov005_02103f80(unk8 param1) {}
+void UnkStruct_027e103c::func_ov005_02103f8c(char *param1) {}
+void UnkStruct_027e103c::func_ov005_02103fb4() {}
+void UnkStruct_027e103c::func_ov005_02103fc8(unk8 param1) {}
+void UnkStruct_027e103c::func_ov005_02103fd8() {}
+void UnkStruct_027e103c::func_ov005_02103ff0() {}
+void UnkStruct_027e103c::WalletFull() {}
+void UnkStruct_027e103c::func_ov005_02104104() {}
+void UnkStruct_027e103c::func_ov005_02104028(bool param1) {}
+void UnkStruct_027e103c::func_ov005_02104058() {}
+void UnkStruct_027e103c::func_ov005_02104070() {}
+void UnkStruct_027e103c::func_ov005_02104088(unk32 param1) {}
+void UnkStruct_027e103c::func_ov005_021040c8() {}
+bool UnkStruct_027e103c::func_ov005_021040ec() {}
+void UnkStruct_027e103c::func_ov005_02104114() {}
+void UnkStruct_027e103c::func_ov005_0210413c() {}
+void UnkStruct_027e103c::func_ov005_02104160() {}
+void UnkStruct_027e103c::func_Ov005_0210418c(char param1) {}
diff --git a/src/05/Map/MapBase.cpp b/src/05/Map/MapBase.cpp
new file mode 100644
index 00000000..c515e59a
--- /dev/null
+++ b/src/05/Map/MapBase.cpp
@@ -0,0 +1,6 @@
+#include "Map/MapBase.hpp"
+
+void MapBase::vfunc_1c(bool param_2) {}
+void MapBase::vfunc_20(s32 param_2) {}
+void MapBase::vfunc_24() {}
+void MapBase::vfunc_28(s32 param_2) {}
diff --git a/src/05/Player/LinkStateBase.cpp b/src/05/Player/LinkStateBase.cpp
new file mode 100644
index 00000000..1a898263
--- /dev/null
+++ b/src/05/Player/LinkStateBase.cpp
@@ -0,0 +1,30 @@
+#include "Player/LinkStateBase.hpp"
+
+void LinkStateBase::vfunc_1c() {}
+void LinkStateBase::vfunc_2c(u16 *param1) {}
+void LinkStateBase::vfunc_30(unk32 param1) {}
+bool LinkStateBase::vfunc_38() {}
+bool LinkStateBase::vfunc_3c() {}
+bool LinkStateBase::vfunc_40() {}
+void LinkStateBase::func_ov005_0210f768() {}
+void LinkStateBase::func_ov005_0210f7b8() {}
+u32 LinkStateBase::func_ov005_0210f808(u32 param1, Vec3p *param2, s32 param3) {}
+void func_ov005_02110220() {}
+void func_ov005_02110224() {}
+void LinkStateBase::func_ov005_02110228(s32 param1, s32 param2, s32 param3, char param4, char param5) {}
+bool LinkStateBase::func_ov005_0211058c(s32 param1) {}
+void LinkStateBase::func_ov005_021107fc() {}
+void LinkStateBase::func_ov005_0211086c(s32 param1) {}
+void LinkStateBase::func_ov005_0211097c(unk32 param1, unk8 param2, unk8 param3) {}
+unk32 LinkStateBase::func_ov005_021109c0() {}
+void LinkStateBase::func_ov005_02110b40(s32 param1) {}
+void LinkStateBase::func_ov005_02110bb4() {}
+void LinkStateBase::func_ov005_02110be8() {}
+void LinkStateBase::func_ov005_02110e0c(u16 param1, s32 param2) {}
+void LinkStateBase::func_ov005_02110e28(u16 param1, s32 param2, s32 param3, char param4) {}
+bool LinkStateBase::func_ov005_02110f50(s32 param1, s32 param2, s32 param3, u32 *param4) {}
+void LinkStateBase::func_ov005_021112ec() {}
+bool LinkStateBase::func_ov005_02111358() {}
+bool LinkStateBase::func_ov005_0211139c() {}
+bool LinkStateBase::func_ov005_021113b4() {}
+void LinkStateBase::func_ov005_021113c4(bool param1) {}
diff --git a/src/05/Player/LinkStateCutscene.cpp b/src/05/Player/LinkStateCutscene.cpp
new file mode 100644
index 00000000..7eaf872c
--- /dev/null
+++ b/src/05/Player/LinkStateCutscene.cpp
@@ -0,0 +1,28 @@
+#include "Player/LinkStateCutscene.hpp"
+
+unk32 UnkStruct_ov004_0210abb8::vfunc_2c(s32 param1) {}
+void UnkStruct_ov004_0210abb8::vfunc_24(unk32 param1) {}
+void LinkStateCutscene::func_ov005_021089c0() {}
+void LinkStateCutscene::func_ov005_021089f4() {}
+void LinkStateCutscene::func_ov005_02108d08() {}
+void LinkStateCutscene::func_ov005_02108e08() {}
+void LinkStateCutscene::func_ov005_02108e8c() {}
+void LinkStateCutscene::func_ov005_02108f38() {}
+void LinkStateCutscene::func_ov005_02108f98(unk32 param1, unk32 param2, unk32 param3) {}
+void LinkStateCutscene::func_ov005_021092bc() {}
+void LinkStateCutscene::func_ov005_0210952c() {}
+void LinkStateCutscene::func_ov005_02109588() {}
+void LinkStateCutscene::func_ov005_0210960c() {}
+void LinkStateCutscene::func_ov005_02109650() {}
+bool LinkStateCutscene::PlayItemCutscene(unk32 itemId) {}
+bool LinkStateCutscene::func_ov005_02109768() {}
+void LinkStateCutscene::func_ov005_021097b0(s32 param1) {}
+void LinkStateCutscene::func_ov005_021099dc() {}
+bool LinkStateCutscene::func_ov005_02109cd0(s32 *param1, s32 param2, unk32 param3) {}
+void LinkStateCutscene::func_ov005_02109e84() {}
+void LinkStateCutscene::func_ov005_02109f2c() {}
+void LinkStateCutscene::func_ov005_02109f88() {}
+void LinkStateCutscene::func_ov005_0210a018() {}
+void LinkStateCutscene::func_ov005_0210a06c() {}
+bool LinkStateCutscene::func_ov005_0210a0c0(unk16 param1) {}
+void LinkStateCutscene::vfunc_30(unk32 param1) {}
diff --git a/src/05/Player/LinkStateDamage.cpp b/src/05/Player/LinkStateDamage.cpp
new file mode 100644
index 00000000..10d4a3d7
--- /dev/null
+++ b/src/05/Player/LinkStateDamage.cpp
@@ -0,0 +1,4 @@
+#include "Player/LinkStateDamage.hpp"
+
+void LinkStateDamage::vfunc_1c() {}
+bool LinkStateDamage::vfunc_40() {}
diff --git a/src/05/Player/LinkStateFollow.cpp b/src/05/Player/LinkStateFollow.cpp
new file mode 100644
index 00000000..7b1dda53
--- /dev/null
+++ b/src/05/Player/LinkStateFollow.cpp
@@ -0,0 +1,17 @@
+#include "Player/LinkStateFollow.hpp"
+#include "Player/LinkStateCutscene.hpp"
+
+void LinkStateFollow::OnStateEnter() {}
+EquipRope *LinkStateFollow::GetEquipRope() {}
+void LinkStateFollow::vfunc_1c() {}
+void LinkStateFollow::func_ov005_0210b9c4() {}
+void LinkStateFollow::func_ov005_0210ba98() {}
+void LinkStateFollow::func_ov005_0210babc() {}
+void LinkStateFollow::func_ov005_0210bb50() {}
+void LinkStateFollow::func_ov005_0210bb98() {}
+void LinkStateFollow::func_ov005_0210bd70() {}
+void LinkStateFollow::func_ov005_0210bf50() {}
+bool LinkStateFollow::vfunc_20(s32 param1) {}
+LinkStateCutscene *GetLinkStateCutscene() {}
+void LinkStateFollow::vfunc_2c(u16 *param1) {}
+void LinkStateFollow::func_ov005_0210ca80(Vec3p *param1, s32 *param2) {}
diff --git a/src/05/Player/LinkStateInteract.cpp b/src/05/Player/LinkStateInteract.cpp
new file mode 100644
index 00000000..11a79dfa
--- /dev/null
+++ b/src/05/Player/LinkStateInteract.cpp
@@ -0,0 +1,15 @@
+#include "Player/LinkStateInteract.hpp"
+#include "Player/LinkStateFollow.hpp"
+
+void LinkStateInteract::vfunc_1c() {}
+void LinkStateInteract::func_ov005_0210a690() {}
+bool LinkStateInteract::func_ov005_0210a714() {}
+void LinkStateInteract::func_ov005_0210a774() {}
+void LinkStateInteract::func_ov005_0210a7d4() {}
+LinkStateFollow *GetLinkStateFollow() {}
+unk32 func_ov005_0210ab08(unk32 param1) {}
+void LinkStateInteract::func_ov005_0210ab1c() {}
+void LinkStateInteract::func_ov005_0210ad88() {}
+void LinkStateInteract::func_ov005_0210b2a4() {}
+void LinkStateInteract::vfunc_2c(u16 *param1) {}
+void LinkStateInteract::func_ov005_0210b4f4(Vec3p *vec, Actor *actor) {}
diff --git a/src/05/Player/LinkStateItem.cpp b/src/05/Player/LinkStateItem.cpp
new file mode 100644
index 00000000..bec80c3d
--- /dev/null
+++ b/src/05/Player/LinkStateItem.cpp
@@ -0,0 +1,22 @@
+#include "Player/LinkStateItem.hpp"
+#include "Player/LinkStateRoll.hpp"
+
+void LinkStateItem::OnStateEnter() {}
+EquipSword *GetEquipSword() {}
+void LinkStateItem::vfunc_1c() {}
+bool LinkStateItem::vfunc_20(s32 param1) {}
+EquipBombchu *GetEquipBombchu() {}
+bool LinkStateItem::vfunc_24(s32 param1) {}
+void LinkStateItem::func_ov005_02105850() {}
+void LinkStateItem::func_ov005_02105c28() {}
+EquipShield *GetEquipShield() {}
+void LinkStateItem::func_ov005_02105d94() {}
+void LinkStateItem::func_ov005_02105dac() {}
+LinkStateRoll *GetLinkStateRoll() {}
+void LinkStateItem::func_ov005_02106644() {}
+void LinkStateItem::func_ov005_02106700(Vec3p *param1, unk8 *param2) {}
+void LinkStateItem::func_ov005_02106740(s32 *param1, s32 param2) {}
+bool LinkStateItem::func_ov005_02106894(s32 param1, s32 param2) {}
+void LinkStateItem::func_ov005_02106980(unk32 param, s32 param2, s32 *param3) {}
+bool LinkStateItem::func_ov005_02106a50() {}
+bool LinkStateItem::func_ov005_02106bbc(Vec3p *param1, unk32 param2, u32 param3) {}
diff --git a/src/05/Player/LinkStateMove.cpp b/src/05/Player/LinkStateMove.cpp
new file mode 100644
index 00000000..367fd3f9
--- /dev/null
+++ b/src/05/Player/LinkStateMove.cpp
@@ -0,0 +1,5 @@
+#include "Player/LinkStateMove.hpp"
+
+void LinkStateMove::func_ov005_021113d0() {}
+void LinkStateMove::vfunc_1c() {}
+bool LinkStateMove::vfunc_3c() {}
diff --git a/src/05/Player/LinkStateRoll.cpp b/src/05/Player/LinkStateRoll.cpp
new file mode 100644
index 00000000..4c48f029
--- /dev/null
+++ b/src/05/Player/LinkStateRoll.cpp
@@ -0,0 +1,23 @@
+#include "Player/LinkStateRoll.hpp"
+#include "Player/LinkStateDamage.hpp"
+
+s32 LinkStateRoll::func_ov005_02106c80(u32 param1) {}
+void LinkStateRoll::vfunc_1c() {}
+void LinkStateRoll::func_ov005_02106cd0() {}
+LinkStateDamage *GetLinkStateDamage() {}
+void LinkStateRoll::func_ov005_02107208(u32 param1) {}
+void LinkStateRoll::func_ov005_02107214() {}
+void LinkStateRoll::func_ov005_021073b8() {}
+void LinkStateRoll::func_ov005_021075bc() {}
+LinkStateItem *GetLinkStateItem() {}
+void LinkStateRoll::func_ov005_02107880() {}
+void LinkStateRoll::func_ov005_02107954(unk32 param1, unk32 param2, unk32 param3) {}
+void LinkStateRoll::func_ov005_02107b74(unk32 *param1, unk16 param2, unk16 param3) {}
+bool LinkStateRoll::func_ov005_02107bd4() {}
+bool LinkStateRoll::func_ov005_02107c8c() {}
+bool LinkStateRoll::func_ov005_02107d74() {}
+unk32 LinkStateRoll::func_ov005_02107e80(u32 param1, unk32 *param2, unk16 param3, unk8 *param4) {}
+void LinkStateRoll::func_ov005_02107fc0() {}
+bool LinkStateRoll::func_ov005_02108094() {}
+void LinkStateRoll::func_ov005_02108188() {}
+void LinkStateRoll::func_ov005_021081a8() {}
diff --git a/src/05/Player/PlayerLinkBase.cpp b/src/05/Player/PlayerLinkBase.cpp
new file mode 100644
index 00000000..550e4d7a
--- /dev/null
+++ b/src/05/Player/PlayerLinkBase.cpp
@@ -0,0 +1,7 @@
+#include "Player/PlayerLinkBase.hpp"
+
+void PlayerLinkBase::vfunc_2c(s32 param1, unk8 param2) {}
+void func_ov005_0210e8a8(unk32 *param1, s32 param2) {}
+void PlayerLinkBase::UpdatePos(unk32 param1) {}
+void PlayerLinkBase::vfunc_28(s32 param1) {}
+bool PlayerLinkBase::func_ov005_0210eba4() {}
diff --git a/src/12_Battle/Player/Battle/PlayerBattleLinkControlData.cpp b/src/12_Battle/Player/Battle/PlayerBattleLinkControlData.cpp
new file mode 100644
index 00000000..59cfa4a6
--- /dev/null
+++ b/src/12_Battle/Player/Battle/PlayerBattleLinkControlData.cpp
@@ -0,0 +1,25 @@
+#include "Player/Battle/PlayerBattleLinkControlData.hpp"
+
+PlayerBattleLinkControlData::PlayerBattleLinkControlData() {}
+PlayerBattleLinkControlData::~PlayerBattleLinkControlData() {}
+void PlayerBattleLinkControlData::vfunc_18() {}
+void PlayerBattleLinkControlData::vfunc_14(s32 param1) {}
+void PlayerBattleLinkControlData::vfunc_60(unk32 param1, unk32 param2, s32 param3) {}
+void PlayerBattleLinkControlData::vfunc_68(unk32 param1, unk32 param2) {}
+void PlayerBattleLinkControlData::vfunc_64(u32 param1) {}
+void PlayerBattleLinkControlData::vfunc_6c(s32 param1, Vec3p *param2) {}
+void PlayerBattleLinkControlData::func_ov012_0211af70() {}
+void PlayerBattleLinkControlData::vfunc_20() {}
+void PlayerBattleLinkControlData::vfunc_80(s32 param1) {}
+void PlayerBattleLinkControlData::vfunc_2c() {}
+void func_ov012_0211b384(unk32 *param1, s32 param2) {}
+void PlayerBattleLinkControlData::vfunc_30() {}
+void PlayerBattleLinkControlData::vfunc_38(s32 param1, s32 param2) {}
+void PlayerBattleLinkControlData::vfunc_40(u16 *param1, Vec3p *param2, unk32 param3, char param4) {}
+void PlayerBattleLinkControlData::vfunc_3c(s32 param1, s32 param2) {}
+void PlayerBattleLinkControlData::vfunc_44(unk32 param1, unk32 *param2, unk32 param3, unk16 param4) {}
+void PlayerBattleLinkControlData::vfunc_70(s32 param1) {}
+bool PlayerBattleLinkControlData::func_ov012_0211b9c4(s32 param1, Vec3p *param2) {}
+void PlayerBattleLinkControlData::vfunc_4c(unk32 param1, Vec3p *param2) {}
+void PlayerBattleLinkControlData::func_ov012_0211bb08(s32 param1) {}
+unk32 PlayerBattleLinkControlData::GetCharacterId() {}
diff --git a/src/14_Land/Actor/ActorRupee.cpp b/src/14_Land/Actor/ActorRupee.cpp
index f45f2c7a..80857246 100644
--- a/src/14_Land/Actor/ActorRupee.cpp
+++ b/src/14_Land/Actor/ActorRupee.cpp
@@ -5,11 +5,11 @@
#include "System/Random.hpp"
extern "C" {
- void func_ov000_0207a1c8(bool *param_1, unk32 param_2, Vec3p *param_3);
- void func_0202bc38(unk32 param_1, Vec3p *param_2, u32 param_3, Actor_UnkStruct_012 *param_4, bool);
- void func_ov005_02102c2c(u32 *param_1, int param_2, Vec3p *param_3, int param_4, int param_5, u32 param_6, int param_7,
- char param_8, char param_9, char param_10);
- void func_ov000_020d7ad4(u32 *param1, u32 param2);
+void func_ov000_0207a1c8(bool *param_1, unk32 param_2, Vec3p *param_3);
+void func_0202bc38(unk32 param_1, Vec3p *param_2, u32 param_3, Actor_UnkStruct_012 *param_4, bool);
+void func_ov005_02102c2c(u32 *param_1, int param_2, Vec3p *param_3, int param_4, int param_5, u32 param_6, int param_7,
+ char param_8, char param_9, char param_10);
+void func_ov000_020d7ad4(u32 *param1, u32 param2);
}
u16 GetRupeeValue(RupeeId id);
@@ -177,7 +177,7 @@ void ActorRupee::Update(bool param1) {
cutsceneItemId = GetRupeeCutsceneItemId();
if (cutsceneItemId >= 0) {
- if (gPlayerLink->func_ov00_020bce48(cutsceneItemId)) {
+ if (gPlayerLink->PlayItemCutscene(cutsceneItemId)) {
Kill();
} else {
func_ov14_0213b204(3);
@@ -223,7 +223,7 @@ void ActorRupee::Update(bool param1) {
break;
case 3:
PlayerLinkBase *pLink = gPlayerLink;
- if (pLink->func_ov00_020bce48(GetRupeeCutsceneItemId())) {
+ if (pLink->PlayItemCutscene(GetRupeeCutsceneItemId())) {
Kill();
}
break;
diff --git a/src/14_Land/Actor/Player/ActorArrow.cpp b/src/14_Land/Actor/Player/ActorArrow.cpp
new file mode 100644
index 00000000..48d27797
--- /dev/null
+++ b/src/14_Land/Actor/Player/ActorArrow.cpp
@@ -0,0 +1,34 @@
+#include "Actor/Player/ActorArrow.hpp"
+#include "Player/EquipShield.hpp"
+#include "Unknown/UnkStruct_ov000_020beba8.hpp"
+
+ActorType ActorArrow::gType = ActorType(ActorTypeId_Arrow, (ActorCreateFunc) ActorArrow::Create, NULL);
+
+UnkStruct_ov000_020beba8 data_ov014_0215abec = UnkStruct_ov000_020beba8(0);
+
+ActorArrow *ActorArrow::Create() {}
+void ActorArrow::func_ov014_0211fd80(unk32 param1) {}
+void ActorArrow::func_ov014_0211fd90() {}
+ActorArrow::ActorArrow() {}
+ActorArrow::~ActorArrow() {}
+bool ActorArrow::vfunc_08() {}
+bool ActorArrow::CollidesWith(Actor *other) {}
+void ActorArrow::func_ov014_021200d4() {}
+void ActorArrow::func_ov014_02120118() {}
+bool ActorArrow::func_ov014_02120180() {}
+EquipRope *ActorArrow::GetEquipRope() {}
+void ActorArrow::vfunc_14(u32 param1) {}
+void func_ov014_02120774(u32 *param1, s32 param2) {}
+void ActorArrow::vfunc_18(u32 param1) {}
+void ActorArrow::vfunc_10(u32 param1) {}
+void ActorArrow::func_ov014_021207b8(ActorRef *ref, s32 param2, s32 param3) {}
+void ActorArrow::func_ov014_02120998(ActorRef *ref, q20 x, q20 y, q20 z, s16 param5) {}
+void func_ov014_02120a80(s32 param1, ActorArrow *arrow) {}
+void ActorArrow::func_ov014_02120ac4(unk32 param1, bool param2) {}
+void ActorArrow::func_ov014_02120c98(Vec3p *param1) {}
+void ActorArrow::func_ov014_02120d58() {}
+void ActorArrow::func_ov014_02120da8() {}
+bool ActorArrow::func_ov014_02120dec(unk32 param1) {}
+bool ActorArrow::vfunc_48(Knockback *param1) {}
+EquipShield *GetEquipShield() {}
+void ActorArrow::vfunc_20(bool param1) {} \ No newline at end of file
diff --git a/src/14_Land/Actor/Player/ActorBlast.cpp b/src/14_Land/Actor/Player/ActorBlast.cpp
new file mode 100644
index 00000000..0f892335
--- /dev/null
+++ b/src/14_Land/Actor/Player/ActorBlast.cpp
@@ -0,0 +1,12 @@
+#include "Actor/Player/ActorBlast.hpp"
+
+ActorType ActorBlast::gType = ActorType(ActorTypeId_Blast, (ActorCreateFunc) ActorBlast::Create, NULL);
+
+ActorBlast *ActorBlast::Create() {}
+void ActorBlast_Unk1::vfunc_10(s32 *param1) {}
+ActorBlast::ActorBlast() {}
+ActorBlast::~ActorBlast() {}
+bool ActorBlast::vfunc_08() {}
+void ActorBlast::vfunc_14(u32 param1) {}
+ActorBlast_Unk1::~ActorBlast_Unk1() {}
+void ActorBlast::vfunc_18(u32 param1) {}
diff --git a/src/14_Land/Actor/Player/ActorBomb.cpp b/src/14_Land/Actor/Player/ActorBomb.cpp
new file mode 100644
index 00000000..1ee7c1bc
--- /dev/null
+++ b/src/14_Land/Actor/Player/ActorBomb.cpp
@@ -0,0 +1,24 @@
+#include "Actor/Player/ActorBomb.hpp"
+
+ActorType ActorBomb::gType = ActorType(ActorTypeId_Bomb, (ActorCreateFunc) ActorBomb::Create, NULL);
+
+ActorBomb *ActorBomb::Create() {}
+void ActorBomb_Unk1::vfunc_0c(unk16 *param1) {}
+void ActorBomb_Unk1::vfunc_10(s32 *param1) {}
+ActorBomb::ActorBomb() {}
+ActorBomb_Unk2::~ActorBomb_Unk2() {}
+ActorBomb::~ActorBomb() {}
+ActorBomb_Unk2::ActorBomb_Unk2() {}
+bool ActorBomb::vfunc_08() {}
+void ActorBomb::vfunc_14(u32 param1) {}
+ActorBomb_Unk1::~ActorBomb_Unk1() {}
+void ActorBomb::vfunc_18(u32 param1) {}
+bool ActorBomb::func_ov014_02122bb8(s32 param1) {}
+void ActorBomb::vfunc_54() {}
+void ActorBomb::vfunc_20(bool param1) {}
+bool ActorBomb::SetVelocity(Vec3p *vel) {}
+bool ActorBomb::func_ov014_02122e48(unk32 *param1) {}
+bool ActorBomb::func_ov014_02122e7c() {}
+bool ActorBomb::func_ov014_02122e98() {}
+bool ActorBomb::func_ov014_02122eb8() {}
+bool ActorBomb::func_ov014_02122ed4() {}
diff --git a/src/14_Land/Actor/Player/ActorRope.cpp b/src/14_Land/Actor/Player/ActorRope.cpp
new file mode 100644
index 00000000..e94f258d
--- /dev/null
+++ b/src/14_Land/Actor/Player/ActorRope.cpp
@@ -0,0 +1,19 @@
+#include "Actor/Player/ActorRope.hpp"
+
+ActorType ActorRope::gType(ActorTypeId_GrapplingHook, (ActorCreateFunc) ActorRope::Create, NULL);
+
+ActorRope *ActorRope::Create() {}
+void ActorRope::func_ov014_0212382c(Vec4p *vec) {}
+q20 ActorRope::func_ov014_0212384c() {}
+ActorRope::~ActorRope() {}
+s32 ActorRope::func_ov014_021238f0() {}
+void ActorRope::func_ov014_02123904() {}
+bool ActorRope::func_ov014_02123960() {}
+void ActorRope::vfunc_14(u32 param1) {}
+void ActorRope::vfunc_18(u32 param1) {}
+void ActorRope::func_ov014_02123c54(s32 param1) {}
+bool ActorRope::func_ov014_02123cd0(Vec3p *param1, s32 param2) {}
+bool ActorRope::func_ov014_02123e1c() {}
+bool ActorRope::func_ov014_02123e48(unk32 param1) {}
+void ActorRope::vfunc_20(bool param1) {}
+void ActorRope::vfunc_10(u32 param1) {}
diff --git a/src/14_Land/Player/EquipBomb.cpp b/src/14_Land/Player/EquipBomb.cpp
new file mode 100644
index 00000000..12efed6b
--- /dev/null
+++ b/src/14_Land/Player/EquipBomb.cpp
@@ -0,0 +1,6 @@
+#include "Player/EquipBomb.hpp"
+
+EquipBomb::EquipBomb() {}
+ItemFlag EquipBomb::GetId() const {}
+EquipBomb::~EquipBomb() {}
+unk32 EquipBomb::vfunc_50() {}
diff --git a/src/14_Land/Player/EquipBombchu.cpp b/src/14_Land/Player/EquipBombchu.cpp
new file mode 100644
index 00000000..5ebfe5b8
--- /dev/null
+++ b/src/14_Land/Player/EquipBombchu.cpp
@@ -0,0 +1,13 @@
+#include "Player/EquipBombchu.hpp"
+
+EquipBombchu::EquipBombchu() {}
+EquipBombchu_Unk1::EquipBombchu_Unk1() {}
+EquipBombchu::~EquipBombchu() {}
+void EquipBombchu::func_ov014_0213eba4() {}
+void EquipBombchu::func_ov014_0213ec40() {}
+void EquipBombchu::func_ov014_0213ec64() {}
+ItemFlag EquipBombchu::GetId() const {}
+void EquipBombchu::vfunc_34(unk16 *param1) {}
+Actor *EquipBombchu::func_ov014_0213ed74() {}
+void *EquipBombchu::func_ov014_0213ed94(s32 param1) {}
+void EquipBombchu::func_ov014_0213eda0() {}
diff --git a/src/14_Land/Player/EquipBoomerang.cpp b/src/14_Land/Player/EquipBoomerang.cpp
new file mode 100644
index 00000000..004379f4
--- /dev/null
+++ b/src/14_Land/Player/EquipBoomerang.cpp
@@ -0,0 +1,12 @@
+#include "Player/EquipBoomerang.hpp"
+
+EquipBoomerang::EquipBoomerang() {}
+EquipBoomerang::~EquipBoomerang() {}
+bool EquipBoomerang::UpdateInUse(unk32 param1) {}
+void EquipBoomerang::vfunc_10() {}
+void EquipBoomerang::func_ov014_0213d098() {}
+void EquipBoomerang::func_ov014_0213d0bc(Vec3p *param1) {}
+Actor *EquipBoomerang::GetActor() {}
+ItemFlag EquipBoomerang::GetId() const {}
+void EquipBoomerang::func_ov014_0213d184() {}
+void EquipBoomerang::func_ov014_0213d1b0() {}
diff --git a/src/14_Land/Player/EquipBow.cpp b/src/14_Land/Player/EquipBow.cpp
new file mode 100644
index 00000000..609985b6
--- /dev/null
+++ b/src/14_Land/Player/EquipBow.cpp
@@ -0,0 +1,5 @@
+#include "Player/EquipBow.hpp"
+
+EquipBow::EquipBow() {}
+EquipBow::~EquipBow() {}
+ItemFlag EquipBow::GetId() const {}
diff --git a/src/14_Land/Player/EquipHammer.cpp b/src/14_Land/Player/EquipHammer.cpp
new file mode 100644
index 00000000..6a59f82a
--- /dev/null
+++ b/src/14_Land/Player/EquipHammer.cpp
@@ -0,0 +1,8 @@
+#include "Player/EquipHammer.hpp"
+
+EquipHammer::EquipHammer() {}
+EquipHammer::~EquipHammer() {}
+void EquipHammer::vfunc_10() {}
+ItemFlag EquipHammer::GetId() const {}
+bool EquipHammer::GetHitbox(Cylinder *hitbox) const {}
+s32 EquipHammer::vfunc_4c() const {}
diff --git a/src/14_Land/Player/EquipPotion.cpp b/src/14_Land/Player/EquipPotion.cpp
new file mode 100644
index 00000000..7cf51cf7
--- /dev/null
+++ b/src/14_Land/Player/EquipPotion.cpp
@@ -0,0 +1,11 @@
+#include "Player/EquipPotion.hpp"
+
+EquipPotion::EquipPotion() {}
+EquipPotion::~EquipPotion() {}
+EquipPotionA::EquipPotionA() {}
+EquipPotionA::~EquipPotionA() {}
+ItemFlag EquipPotionA::GetId() const {}
+EquipPotionB::EquipPotionB() {}
+EquipPotionB::~EquipPotionB() {}
+ItemFlag EquipPotionB::GetId() const {}
+bool EquipPotion::IsUsable(unk32 param1) const {}
diff --git a/src/14_Land/Player/EquipRope.cpp b/src/14_Land/Player/EquipRope.cpp
new file mode 100644
index 00000000..abc2ddc0
--- /dev/null
+++ b/src/14_Land/Player/EquipRope.cpp
@@ -0,0 +1,40 @@
+#include "Player/EquipRope.hpp"
+
+void func_ov014_0213d230(unk32 param1, s32 param2) {}
+bool func_ov013_0213d248(s32 param1) {}
+EquipRope::EquipRope() {}
+void func_ov014_0213d2e8() {}
+void func_ov014_0213d2ec(s32 param1) {}
+EquipRope::~EquipRope() {}
+void EquipRope::vfunc_10() {}
+ItemFlag EquipRope::GetId() const {}
+bool EquipRope::func_ov014_0213d3d4(Vec3p *vec) {}
+void EquipRope::func_ov014_0213d404(unk32 *param1) {}
+ActorRope *EquipRope::GetRopeActor() {}
+s32 EquipRope::func_ov14_0213d440(s32 actorId) {}
+s32 EquipRope::func_ov14_0213d480(s32 actorId) {}
+bool EquipRope::func_ov014_0213d4c8() {}
+bool EquipRope::func_ov014_0213d4ec(unk32 *param1, s32 param2) {}
+s32 EquipRope::func_ov014_0213d594(s32 param1) {}
+bool EquipRope::func_ov014_0213d5d0(unk32 *param1, s32 param2) {}
+s32 EquipRope::func_ov014_0213d63c(s32 param1) {}
+bool EquipRope::func_ov014_0213d684() {}
+bool EquipRope::func_ov014_0213d6e0() {}
+bool EquipRope::func_ov014_0213d71c(s32 param1, ActorRef *param2) {}
+bool EquipRope::func_ov014_0213d788(s32 param1) {}
+bool EquipRope::func_ov14_0213d81c(s32 index, Vec3p *vec) {}
+void EquipRope::func_ov14_0213d91c(s32 index) {}
+bool EquipRope::func_ov014_0213d9ac() {}
+bool EquipRope::func_ov14_0213dadc(s32 index, Cylinder *cylinder) {}
+void EquipRope::func_ov014_0213db34() {}
+void EquipRope::func_ov014_0213db60() {}
+void EquipRope::func_ov014_0213dba4(Vec3p *param1) {}
+s32 EquipRope::func_ov014_0213dda0() {}
+s32 EquipRope::func_ov14_0213ddd4(Actor *actor) {}
+bool EquipRope::func_ov14_0213defc(Actor *actor) {}
+bool EquipRope::func_ov014_0213dfbc(Cylinder *cylinder, s32 param2, Vec3p *vec) {}
+void EquipRope::func_ov014_0213e144(Vec3p *param1, Vec3p *param2, s32 param3) {}
+bool EquipRope::func_ov014_0213e20c(s32 param1, Vec3p *param2) {}
+bool EquipRope::func_ov014_0213e328() {}
+void func_ov014_0213e544(s32 param1, unk32 param2) {}
+void func_ov014_0213e55c(unk32 *param1) {}
diff --git a/src/14_Land/Player/EquipScoop.cpp b/src/14_Land/Player/EquipScoop.cpp
new file mode 100644
index 00000000..12cf112e
--- /dev/null
+++ b/src/14_Land/Player/EquipScoop.cpp
@@ -0,0 +1,5 @@
+#include "Player/EquipScoop.hpp"
+
+EquipScoop::EquipScoop() {}
+EquipScoop::~EquipScoop() {}
+ItemFlag EquipScoop::GetId() const {}
diff --git a/src/14_Land/Player/PlayerLink.cpp b/src/14_Land/Player/PlayerLink.cpp
new file mode 100644
index 00000000..3de34d13
--- /dev/null
+++ b/src/14_Land/Player/PlayerLink.cpp
@@ -0,0 +1,24 @@
+#include "Player/PlayerLink.hpp"
+
+PlayerLink *PlayerLink::Create() {}
+PlayerLink *PlayerLink::GetInstance() {}
+void PlayerLink::func_ov014_0213eef0(s32 param1) {}
+LinkStateCutscene *PlayerLink::GetLinkStateCutscene() {}
+PlayerLink::PlayerLink() {}
+PlayerLink::~PlayerLink() {}
+void PlayerLink::Init() {}
+bool PlayerLink::vfunc_04() {}
+unk32 PlayerLink::vfunc_78() {}
+void PlayerLink::ResetUnk_5e() {}
+void PlayerLink::vfunc_2c(s32 param1, unk8 param2) {}
+void PlayerLink::UpdatePos() {}
+void PlayerLink::func_ov014_0213f37c() {}
+void PlayerLink::vfunc_74() {}
+void PlayerLink::OnDeath(bool param1) {}
+void PlayerLink::vfunc_7c() {}
+void PlayerLink::AddHealth(s16 amount) {}
+void PlayerLink::vfunc_68() {}
+LinkStateItem *PlayerLink::GetLinkStateItem() {}
+void PlayerLink::func_ov014_0213f734(unk32 *param1, UnkStruct_027e0fd4 *param2) {}
+void PlayerLink::func_ov014_0213f740() {}
+void PlayerLink::func_ov014_0213f97c() {}
diff --git a/src/23/Player/PlayerLink.cpp b/src/23/Player/PlayerLink.cpp
new file mode 100644
index 00000000..6911221f
--- /dev/null
+++ b/src/23/Player/PlayerLink.cpp
@@ -0,0 +1,13 @@
+#include "Player/PlayerLink.hpp"
+
+unk32 PlayerLink::func_ov023_02177e7c() {}
+unk32 PlayerLink::func_ov023_02177e84() {}
+void PlayerLink::func_ov023_02177e90() {}
+bool PlayerLink::func_ov023_02178058() {}
+LinkStateFollow *PlayerLink::GetLinkStateFollow() {}
+void PlayerLink::func_ov023_02178174() {}
+EquipBombchu *PlayerLink::GetEquipBombchu() {}
+EquipShield *PlayerLink::GetEquipShield() {}
+void PlayerLink::GiveControlToLink() {}
+void PlayerLink::vfunc_6c() {}
+void PlayerLink::func_ov023_02178630() {}
diff --git a/src/40/Player/PlayerLink.cpp b/src/40/Player/PlayerLink.cpp
new file mode 100644
index 00000000..f968e7a2
--- /dev/null
+++ b/src/40/Player/PlayerLink.cpp
@@ -0,0 +1,6 @@
+#include "Player/PlayerLink.hpp"
+
+void PlayerLink::vfunc_44() {}
+LinkStateCutscene *GetLinkStateCutscene() {}
+void PlayerLink::vfunc_48() {}
+void PlayerLink::vfunc_4c() {}
diff --git a/src/53_Boomerang/Player/EquipBoomerang.cpp b/src/53_Boomerang/Player/EquipBoomerang.cpp
new file mode 100644
index 00000000..4d6db100
--- /dev/null
+++ b/src/53_Boomerang/Player/EquipBoomerang.cpp
@@ -0,0 +1,17 @@
+#include "Player/EquipBoomerang.hpp"
+
+void EquipBoomerang::func_ov053_02199014() {}
+void EquipBoomerang::func_ov053_02199020() {}
+s32 EquipBoomerang::func_ov053_0219902c(s32 param1) {}
+void EquipBoomerang::func_ov053_02199038() {}
+void EquipBoomerang::vfunc_18() {}
+void EquipBoomerang::vfunc_1c() {}
+void EquipBoomerang::func_ov053_021990f0(unk16 param1) {}
+bool EquipBoomerang::func_ov053_02199128(s32 *param1) {}
+void EquipBoomerang::vfunc_30() {}
+void EquipBoomerang::func_ov053_02199168() {}
+void EquipBoomerang::func_ov053_021991ec() {}
+void EquipBoomerang::vfunc_38(unk32 param1) {}
+bool EquipBoomerang::IsUsable(unk32 param1) const {}
+bool EquipBoomerang::func_ov053_02199410(s32 param1) {}
+bool EquipBoomerang::func_ov053_021994cc(Vec3p *param1) {} \ No newline at end of file
diff --git a/src/54_Scoop/Player/EquipScoop.cpp b/src/54_Scoop/Player/EquipScoop.cpp
new file mode 100644
index 00000000..ba34e890
--- /dev/null
+++ b/src/54_Scoop/Player/EquipScoop.cpp
@@ -0,0 +1,22 @@
+#include "Player/EquipScoop.hpp"
+#include "Player/LinkStateItem.hpp"
+
+ModelRender EquipScoop::gModelRender;
+
+void EquipScoop::vfunc_00() {}
+void EquipScoop::vfunc_18() {}
+unk32 EquipScoop::vfunc_40() const {}
+unk32 EquipScoop::vfunc_44(unk32 param1) const {}
+unk32 EquipScoop::vfunc_48(unk32 param1) const {}
+bool EquipScoop::IsUsable(unk32 param1) const {}
+void EquipScoop::vfunc_30() {}
+s32 EquipScoop::func_ov054_02198e08(Vec3p *param1) {}
+bool EquipScoop::func_ov054_021980e24(Vec3p *param1) {}
+void EquipScoop::vfunc_38(unk32 param1) {}
+void func_ov054_02198ee0(s32 param1, unk32 *param2) {}
+void LinkStateItem::func_ov054_02198eec() {}
+bool LinkStateItem::func_ov054_02198efc(s32 param1, unk32 param2, u32 param3) {}
+bool LinkStateItem::func_ov054_021992c8(unk32 param1, unk32 param2, u32 param3) {}
+EquipScoop *GetEquipScoop() {}
+void LinkStateItem::StopUsingScoop() {}
+bool func_ov054_021998d4(s32 param1, s32 param2, unk32 param3, u32 param4) {}
diff --git a/src/55_Bomb/Player/EquipBomb.cpp b/src/55_Bomb/Player/EquipBomb.cpp
new file mode 100644
index 00000000..fcfb30c6
--- /dev/null
+++ b/src/55_Bomb/Player/EquipBomb.cpp
@@ -0,0 +1,15 @@
+#include "Player/EquipBomb.hpp"
+#include "Player/LinkStateItem.hpp"
+
+ModelRender EquipBomb::gModelRender;
+
+void EquipBomb::vfunc_00() {}
+bool EquipBomb::IsUsable(unk32 param1) const {}
+void EquipBomb::vfunc_18() {}
+void EquipBomb::vfunc_30() {}
+void EquipBomb::vfunc_38(unk32 param1) {}
+Actor *EquipBomb::func_ov055_02198e60() {}
+void LinkStateItem::func_ov055_02198f78() {}
+void LinkStateItem::StopUsingBomb(s32 param1) {}
+EquipBomb *GetEquipBomb() {}
+void LinkStateItem::func_ov055_02199020() {}
diff --git a/src/55_Bomb/Player/EquipPotion.cpp b/src/55_Bomb/Player/EquipPotion.cpp
new file mode 100644
index 00000000..47fefea9
--- /dev/null
+++ b/src/55_Bomb/Player/EquipPotion.cpp
@@ -0,0 +1,10 @@
+#include "Player/EquipPotion.hpp"
+#include "Player/LinkStateItem.hpp"
+
+void EquipPotion::vfunc_00() {}
+void EquipPotion::vfunc_18() {}
+void EquipPotion::vfunc_1c() {}
+void EquipPotion::vfunc_30() {}
+void EquipPotion::vfunc_38(unk32 param1) {}
+void LinkStateItem::func_ov055_021993b8() {}
+void LinkStateItem::func_ov055_02199654() {}
diff --git a/src/56_Bow/Player/EquipBow.cpp b/src/56_Bow/Player/EquipBow.cpp
new file mode 100644
index 00000000..8cb51602
--- /dev/null
+++ b/src/56_Bow/Player/EquipBow.cpp
@@ -0,0 +1,18 @@
+#include "Player/EquipBow.hpp"
+#include "Player/LinkStateItem.hpp"
+
+ModelRender EquipBow::gModelRenderBow;
+ModelRender EquipBow::gModelRenderArrow;
+
+void EquipBow::vfunc_00() {}
+bool EquipBow::IsUsable(unk32 param1) const {}
+void EquipBow::vfunc_18() {}
+void EquipBow::vfunc_30() {}
+void EquipBow::vfunc_38(unk32 param1) {}
+LinkStateItem *GetLinkStateItem() {}
+bool EquipBow::func_ov056_02198ee8() {}
+void EquipBow::func_ov056_02198f48(u16 param1) {}
+void LinkStateItem::func_ov056_021990c0() {}
+void LinkStateItem::func_ov056_0219911c() {}
+EquipBow *GetEquipBow() {}
+bool LinkStateItem::func_ov056_021992f8() {} \ No newline at end of file
diff --git a/src/57_Rope/Actor/Player/ActorRope.cpp b/src/57_Rope/Actor/Player/ActorRope.cpp
new file mode 100644
index 00000000..023f134b
--- /dev/null
+++ b/src/57_Rope/Actor/Player/ActorRope.cpp
@@ -0,0 +1,12 @@
+#include "Actor/Player/ActorRope.hpp"
+
+ActorRope_Unk_0219a3b0 gUnk_0219a3b0;
+
+void ActorRope_Unk_0219a3b0::vfunc_08(unk16 *param1) {}
+void ActorRope_Unk_0219a3b0::vfunc_10(s32 *param1) {}
+ActorRope::ActorRope() {}
+bool ActorRope::vfunc_08() {}
+q20 ActorRope::func_ov057_0219a5ac() {}
+void ActorRope::func_ov057_0219a6b8() {}
+void ActorRope::func_ov057_0219a850() {}
+ActorRope_Unk_0219a3b0::~ActorRope_Unk_0219a3b0() {}
diff --git a/src/57_Rope/Player/EquipRope.cpp b/src/57_Rope/Player/EquipRope.cpp
new file mode 100644
index 00000000..42acf1d9
--- /dev/null
+++ b/src/57_Rope/Player/EquipRope.cpp
@@ -0,0 +1,39 @@
+#include "Player/EquipRope.hpp"
+#include "Player/LinkStateItem.hpp"
+
+EquipRope_Unk_02198dd0 sUnk_02198dd0;
+
+bool func_ov057_02198d00(Vec3p *vec, Vec3p *dest, q20 step) {}
+unk32 EquipRope_Unk_02198dd0::vfunc_08() {}
+unk32 EquipRope_Unk_02198dd0::vfunc_0c() {}
+unk32 EquipRope_Unk_02198dd0::vfunc_14() {}
+EquipRope_Unk_02198dd0::EquipRope_Unk_02198dd0() {}
+unk32 EquipRope_Unk_02198dd0::vfunc_10(s32 *param1) {}
+bool EquipRope_Unk_18::func_ov057_02198e80() {}
+void EquipRope_Unk_18::func_ov057_02198fc0(u32 param1) {}
+void EquipRope_Unk_18::func_ov057_02199028(s32 param1) {}
+bool EquipRope::IsUsable(unk32 param1) const {}
+void EquipRope::func_ov057_021990ec() {}
+void EquipRope::func_ov057_021990f8() {}
+bool EquipRope_Unk_18::func_ov057_02199104(EquipRope_Unk_18 *other) {}
+bool EquipRope::func_ov057_0219922c(u32 param1) {}
+void EquipRope::func_ov057_021992b4(s32 param1) {}
+void EquipRope::vfunc_18() {}
+void EquipRope::vfunc_1c() {}
+bool EquipRope::func_ov057_0219939c(s32 *param1, s32 param2) {}
+bool EquipRope::func_ov057_02199454(s32 param1) {}
+bool EquipRope::func_ov057_021994c0(unk32 *param1) {}
+s32 EquipRope::func_ov057_021996b0(Vec3p *param1) {}
+void EquipRope::vfunc_30() {}
+void EquipRope::vfunc_38(unk32 param1) {}
+void EquipRope::func_ov057_02199ad8() {}
+void EquipRope::func_ov057_02199c78() {}
+void EquipRope::func_ov057_02199d54() {}
+void EquipRope::func_ov057_02199e24() {}
+EquipRope_Unk_02198dd0::~EquipRope_Unk_02198dd0() {}
+void LinkStateItem::func_ov057_02199e64() {}
+EquipRope *GetEquipRope();
+void LinkStateItem::func_ov057_02199edc() {}
+void LinkStateItem::func_ov057_0219a208() {}
+void LinkStateItem::StopUsingRope() {}
+bool LinkStateItem::func_ov057_0219a364() {} \ No newline at end of file
diff --git a/src/58_Bombchu/Player/EquipBombchu.cpp b/src/58_Bombchu/Player/EquipBombchu.cpp
new file mode 100644
index 00000000..7e6c0742
--- /dev/null
+++ b/src/58_Bombchu/Player/EquipBombchu.cpp
@@ -0,0 +1,33 @@
+#include "Player/EquipBombchu.hpp"
+#include "Player/LinkStateItem.hpp"
+
+ModelRender EquipBombchu::gModelRenderBombchu;
+ModelRender EquipBombchu::gModelRenderBombchuPt;
+EquipBombchu_Unk_02198d00 sUnk_02198d00;
+
+void EquipBombchu_Unk_02198d00::vfunc_08(unk16 *param1) {}
+void func_ov058_02198ef4() {}
+void func_ov058_02198ef8() {}
+void EquipBombchu_Unk_02198d00::vfunc_14(u16 *param1) {}
+void EquipBombchu_Unk_02198d00::vfunc_10(s32 *param1) {}
+void EquipBombchu::vfunc_00() {}
+void EquipBombchu::vfunc_18() {}
+void EquipBombchu::vfunc_1c() {}
+void EquipBombchu::vfunc_30() {}
+void EquipBombchu::vfunc_38(unk32 param1) {}
+void EquipBombchu::func_ov058_02199220() {}
+void EquipBombchu::func_ov058_02199228() {}
+void EquipBombchu::func_ov058_02199264() {}
+void EquipBombchu::func_ov058_0219926c() {}
+bool EquipBombchu::IsUsable(unk32 param1) const {}
+bool EquipBombchu::CheckUsable(unk32 param1) const {}
+Actor *EquipBombchu::func_ov058_02199400() {}
+bool EquipBombchu::func_ov058_02199498(Vec3p *vec) {}
+void EquipBombchu::func_ov058_02199ef0(unk16 param1) {}
+void EquipBombchu::func_ov058_02199fd8(u32 param1) {}
+unk32 EquipBombchu::func_ov058_0219a084(unk16 param1) {}
+bool EquipBombchu::func_ov058_0219a3b4(unk16 param1) {}
+EquipBombchu_Unk_02198d00::~EquipBombchu_Unk_02198d00() {}
+void LinkStateItem::func_ov058_0219a454() {}
+void LinkStateItem::func_ov058_0219a47c() {}
+EquipBombchu *GetEquipBombchu() {}
diff --git a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp
new file mode 100644
index 00000000..109a14b4
--- /dev/null
+++ b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp
@@ -0,0 +1,9 @@
+#include "Actor/Navi/ActorNaviBase.hpp"
+
+bool ActorNaviBase::func_ov059_0219933c(u32 param1) {}
+void ActorNaviBase::func_ov059_0219a0ac() {}
+void ActorNaviBase::func_ov059_0219aa08() {}
+void ActorNaviBase::func_ov059_0219aba8(u32 param1) {}
+bool ActorNaviBase::func_ov059_0219af14() {}
+bool ActorNaviBase::func_ov059_0219afc4() {}
+void ActorNaviBase::func_ov059_0219b020() {}
diff --git a/src/59_Hammer/Player/EquipHammer.cpp b/src/59_Hammer/Player/EquipHammer.cpp
new file mode 100644
index 00000000..00fbd208
--- /dev/null
+++ b/src/59_Hammer/Player/EquipHammer.cpp
@@ -0,0 +1,21 @@
+#include "Player/EquipHammer.hpp"
+#include "Player/LinkStateItem.hpp"
+
+bool EquipHammer::IsUsable(unk32 param1) const {}
+LinkStateItem *GetLinkStateItem() {}
+void EquipHammer::vfunc_18() {}
+void EquipHammer::vfunc_1c() {}
+void EquipHammer::vfunc_30() {}
+void EquipHammer::func_ov059_02198e90() {}
+bool EquipHammer::func_ov059_02198ebc() {}
+bool EquipHammer::func_ov059_02198ed4() {}
+void EquipHammer::func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3) {}
+void EquipHammer::func_ov059_02198fa8(unk32 param1) {}
+void EquipHammer::vfunc_38(unk32 param1) {}
+u32 EquipHammer::vfunc_2c() {}
+bool EquipHammer::func_ov059_02198fe0() {}
+void LinkStateItem::func_ov059_02198ffc() {}
+void LinkStateItem::func_ov059_0219907c() {}
+void LinkStateItem::func_ov059_021990a4() {}
+EquipHammer *GetEquipHammer() {}
+void LinkStateItem::StopUsingHammer() {}
diff --git a/src/ITCM/Map/MapManager.cpp b/src/ITCM/Map/MapManager.cpp
new file mode 100644
index 00000000..1ed5d73e
--- /dev/null
+++ b/src/ITCM/Map/MapManager.cpp
@@ -0,0 +1,6 @@
+#include "Map/MapManager.hpp"
+
+bool MapManager::func_01ffbe78(Vec3p *param1, Vec3p *param2, Vec3p *param3, Vec4p *param4) {}
+bool MapManager::func_01ffbf5c(s32 param1, Vec3p *param2, Vec3p *param3, s32 length) {}
+bool MapManager::func_01ffc118(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7) {}
+bool MapManager::func_01ffd1e0(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7) {}
diff --git a/src/Main/DTCM/UnkStruct_027e05f8_1.cpp b/src/Main/DTCM/UnkStruct_027e05f8_1.cpp
new file mode 100644
index 00000000..f7247d9b
--- /dev/null
+++ b/src/Main/DTCM/UnkStruct_027e05f8_1.cpp
@@ -0,0 +1,4 @@
+#include "DTCM/UnkStruct_027e05f8.hpp"
+
+void UnkStruct_027e05f8::func_0202adf4(unk32 param1, s32 param2) {}
+UnkStruct_027e05f8::~UnkStruct_027e05f8() {}
diff --git a/src/Main/DTCM/UnkStruct_027e05f8_2.cpp b/src/Main/DTCM/UnkStruct_027e05f8_2.cpp
new file mode 100644
index 00000000..7a4c76da
--- /dev/null
+++ b/src/Main/DTCM/UnkStruct_027e05f8_2.cpp
@@ -0,0 +1,6 @@
+#include "DTCM/UnkStruct_027e05f8.hpp"
+
+UnkStruct_027e05f8::UnkStruct_027e05f8() {}
+void UnkStruct_027e05f8::func_02037458(u16 param1) {}
+void UnkStruct_027e05f8::func_02037480() {}
+unk32 UnkStruct_027e05f8::func_02037490(unk32 param1) {}
diff --git a/src/Main/DTCM/UnkStruct_027e077c.cpp b/src/Main/DTCM/UnkStruct_027e077c.cpp
new file mode 100644
index 00000000..77784316
--- /dev/null
+++ b/src/Main/DTCM/UnkStruct_027e077c.cpp
@@ -0,0 +1,4 @@
+#include "DTCM/UnkStruct_027e077c.hpp"
+
+UnkStruct_027e077c::UnkStruct_027e077c(unk32 param1) {}
+bool UnkStruct_027e077c::func_0202e740(unk32 param1) {}
diff --git a/src/Main/DTCM/UnkStruct_027e0fe0.cpp b/src/Main/DTCM/UnkStruct_027e0fe0.cpp
new file mode 100644
index 00000000..ec9d5237
--- /dev/null
+++ b/src/Main/DTCM/UnkStruct_027e0fe0.cpp
@@ -0,0 +1,6 @@
+#include "DTCM/UnkStruct_027e0fe0.hpp"
+
+void UnkStruct_027e0fe0::Init() {}
+void UnkStruct_027e0fe0::Dispose() {}
+void UnkStruct_027e0fe0::func_0202ea50(unk32 param1, unk32 param2, unk32 param3) {}
+void UnkStruct_027e0fe0::func_0202ea98() {}
diff --git a/src/Main/Debug/DebugHierarchyBase.cpp b/src/Main/Debug/DebugHierarchyBase.cpp
new file mode 100644
index 00000000..75b2f444
--- /dev/null
+++ b/src/Main/Debug/DebugHierarchyBase.cpp
@@ -0,0 +1,19 @@
+#include "Debug/DebugHierarchyBase.hpp"
+
+DebugHierarchyBase::DebugHierarchyBase() {}
+DebugHierarchyBase::~DebugHierarchyBase() {}
+DebugHierarchyNode *DebugHierarchyBase::FindNode(u32 id) {}
+bool DebugHierarchyBase::GetChildNode(unk32 param1, const char *description, u32 parent, s32 *param4) {}
+void DebugHierarchyBase::vfunc_08() {}
+void DebugHierarchyBase::vfunc_0c() {}
+void DebugHierarchyBase::vfunc_10() {}
+void DebugHierarchyBase::vfunc_14() {}
+void DebugHierarchyBase::vfunc_18() {}
+void DebugHierarchyBase::vfunc_1c() {}
+void DebugHierarchyBase::vfunc_20() {}
+void DebugHierarchyBase::vfunc_24() {}
+void DebugHierarchyBase::vfunc_28() {}
+void DebugHierarchyBase::vfunc_2c() {}
+void DebugHierarchyBase::vfunc_30() {}
+void DebugHierarchyBase::vfunc_38() {}
+void DebugHierarchyBase::vfunc_3c() {}
diff --git a/src/Main/Player/TouchControl.cpp b/src/Main/Player/TouchControl.cpp
new file mode 100644
index 00000000..0212f591
--- /dev/null
+++ b/src/Main/Player/TouchControl.cpp
@@ -0,0 +1,4 @@
+#include "Player/TouchControl.hpp"
+
+bool TouchControl::func_0202b864(Vec3p *param1, s32 size, unk8 param3) {}
+bool TouchControl::func_0202b894(Vec3p *param1, s32 size, unk8 param3) {}
diff --git a/src/Main/Render/FadeControl.cpp b/src/Main/Render/FadeControl.cpp
new file mode 100644
index 00000000..5413595b
--- /dev/null
+++ b/src/Main/Render/FadeControl.cpp
@@ -0,0 +1,10 @@
+#include "Render/FadeControl.hpp"
+
+void FadeControl::Register() {}
+void FadeControl::Unregister() {}
+FadeControl::FadeControl() {}
+void FadeControl::func_0202aba8(s32 fadeLength, unk32 param2, unk32 newState) {}
+bool FadeControl::func_0202abdc(s32 fadeLength, unk32 param2) {}
+bool FadeControl::func_0202abf4(s32 fadeLength, unk32 param2) {}
+bool FadeControl::func_0202ac0c(s32 currentFadeLength, u16 param2, s32 fadeLength, unk32 param4) {}
+void FadeControl::UpdateFade(s32 speed) {}
diff --git a/src/Main/Render/FadeController.cpp b/src/Main/Render/FadeController.cpp
new file mode 100644
index 00000000..593e22ed
--- /dev/null
+++ b/src/Main/Render/FadeController.cpp
@@ -0,0 +1,12 @@
+#include "Render/FadeController.hpp"
+
+bool FadeController::Has(FadeControl *control) {}
+bool FadeController::Contains(FadeControlEntry *needle, s32 length, FadeControl **haystack) {}
+bool FadeController::AddIfAbsent(FadeControl *control, unk32 param2, unk32 param3) {}
+bool FadeController::Add(FadeControlEntry *entry, s32 maxLength, s32 *length, FadeControl **list, bool allowDuplicates) {}
+void FadeController::RemoveFadeControl(FadeControl *control) {}
+bool FadeController::Remove(FadeControlEntry *entry, s32 *length, FadeControl **list) {}
+bool FadeController::func_0202d77c(FadeControl *control) {}
+bool FadeController::func_0202d7ac() {}
+void FadeController::ProcessFade(s32 param1) {}
+void FadeController::SetScreenBrightness(s32 param1) {}
diff --git a/src/Main/System/OverlayManager.cpp b/src/Main/System/OverlayManager.cpp
new file mode 100644
index 00000000..9c50ebb6
--- /dev/null
+++ b/src/Main/System/OverlayManager.cpp
@@ -0,0 +1,7 @@
+#include "System/OverlayManager.hpp"
+
+void OverlayManager::Load(OverlayIndex index, OverlayId id) {}
+void OverlayManager::LoadIfNotLoaded(OverlayIndex index, OverlayId id) {}
+void OverlayManager::Unload(OverlayIndex index) {}
+void OverlayManager::LoadOverlaySetup(s32 index) {}
+void OverlayManager::UnloadOverlaySetup() {}
diff --git a/src/Main/System/SysNew.cpp b/src/Main/System/SysNew.cpp
new file mode 100644
index 00000000..6fc0d1c4
--- /dev/null
+++ b/src/Main/System/SysNew.cpp
@@ -0,0 +1,11 @@
+#include "System/SysNew.hpp"
+
+void *SysNew(UnkStruct_0202e894 *param1, s32 length, s32 param3) {}
+void SysDelete(void *ptr) {}
+void *func_0202e99c(s32 length) {}
+void *func_0202e9bc(s32 length) {}
+
+void *SysObject::operator new(unsigned long length, u32 *id, u32 idLength) {}
+void *SysObject::operator new[](unsigned long length, u32 *id, u32 idLength) {}
+void SysObject::operator delete(void *ptr) {}
+void SysObject::operator delete[](void *ptr) {}
diff --git a/src/Main/Unknown/UnkStruct_0202e1a0.cpp b/src/Main/Unknown/UnkStruct_0202e1a0.cpp
new file mode 100644
index 00000000..1221933d
--- /dev/null
+++ b/src/Main/Unknown/UnkStruct_0202e1a0.cpp
@@ -0,0 +1,10 @@
+#include "Unknown/UnkStruct_0202e1a0.hpp"
+
+UnkStruct_0202e1a0::UnkStruct_0202e1a0() {}
+void UnkStruct_0202e1a0::func_0202e1c4() {}
+void UnkStruct_0202e1a0::func_0202e1e8() {}
+bool UnkStruct_0202e1a0::func_0202e310(s32 param1) {}
+unk32 UnkStruct_0202e1a0::func_0202e544() {}
+unk32 UnkStruct_0202e1a0::func_0202e58c() {}
+void UnkStruct_0202e1a0::func_0202e5cc() {}
+void UnkStruct_0202e1a0::func_0202e670() {}
diff --git a/src/Main/Unknown/UnkStruct_02032f0c.cpp b/src/Main/Unknown/UnkStruct_02032f0c.cpp
new file mode 100644
index 00000000..6a03a93a
--- /dev/null
+++ b/src/Main/Unknown/UnkStruct_02032f0c.cpp
@@ -0,0 +1,34 @@
+#include "Unknown/UnkStruct_02032f0c.hpp"
+
+UnkStruct_02032e7c::UnkStruct_02032e7c() {}
+UnkStruct_02032f0c::UnkStruct_02032f0c() {}
+UnkStruct_02032f0c::~UnkStruct_02032f0c() {}
+void UnkStruct_02032f0c::func_02032f94() {}
+u16 **UnkStruct_02032f0c::SetUnk_0c(u16 *value) {}
+u8 UnkStruct_02032f0c::func_02032fa4() {}
+s32 UnkStruct_02032f0c::func_02032fb4() {}
+bool UnkStruct_02032f0c::vfunc_14(s32 param1, s32 param2) {}
+void UnkStruct_02032f0c::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) {}
+void UnkStruct_02032f0c::vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4) {}
+void UnkStruct_02032f0c::vfunc_10(u32 param1, unk32 param2) {}
+void UnkStruct_02032f0c::func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, unk32 param5) {}
+unk32 UnkStruct_02032f0c::vfunc_18(s32 param1) {}
+unk32 UnkStruct_02032f0c::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {}
+unk32 UnkStruct_02032f0c::vfunc_20(s32 param1, s32 *param2) {}
+void UnkStruct_02032f0c::func_020334b4(u32 param1, s32 param2, s32 param3, s32 param4) {}
+void UnkStruct_02032f0c::func_02033628(unk32 param1, u16 *param2) {}
+u32 UnkStruct_02032f0c::func_0203369c(u16 *param1, s32 param2) {}
+void UnkStruct_02032f0c::func_02033780(s32 param1) {}
+s32 UnkStruct_02032f0c::func_020337d8(s32 param1) {}
+s32 UnkStruct_02032f0c::func_020337fc(s16 *param1, s32 param2) {}
+void UnkStruct_02032f0c::func_020338a8(s32 param1, unk32 param2) {}
+void UnkStruct_02032f0c::func_020338d0(unk32 *param1, unk32 param2) {}
+s32 UnkStruct_02032f0c::func_02033904(unk32 param1, unk32 param2) {}
+s32 UnkStruct_02032f0c::func_02033938(unk32 param1) {}
+s32 UnkStruct_02032f0c::func_0203396c(u16 *param1) {}
+bool UnkStruct_02032f0c::vfunc_24(s16 **param1) {}
+u16 *UnkStruct_02032f0c::func_02033b0c(s32 param1) {}
+bool UnkStruct_02032f0c::func_02033c6c() {}
+unk32 UnkStruct_02032f0c::func_02033c88(u32 param1) {}
+s32 UnkStruct_02032f0c::func_02033cbc(s16 *param1) {}
+UnkStruct_02032e7c::~UnkStruct_02032e7c() {}
diff --git a/src/Main/Unknown/UnkStruct_02035064.cpp b/src/Main/Unknown/UnkStruct_02035064.cpp
new file mode 100644
index 00000000..4c3562ab
--- /dev/null
+++ b/src/Main/Unknown/UnkStruct_02035064.cpp
@@ -0,0 +1,11 @@
+#include "Unknown/UnkStruct_02035064.hpp"
+
+UnkStruct_02035064::UnkStruct_02035064() {}
+UnkStruct_02035064::~UnkStruct_02035064() {}
+void UnkStruct_02035064::func_020350b0() {}
+void UnkStruct_02035064::func_020350b4(s32 param1, unk32 param2, unk8 param3, unk16 param4, unk16 param5) {}
+void UnkStruct_02035064::func_0203516c() {}
+s32 UnkStruct_02035064::vfunc_0() {}
+s32 UnkStruct_02035064::vfunc_4() {}
+void UnkStruct_02035064::func_020351b8(bool param1, bool param2, bool param3, bool param4) {}
+void UnkStruct_02035064::func_020352d8() {}
diff --git a/src/Main/Unknown/UnkStruct_02037750.cpp b/src/Main/Unknown/UnkStruct_02037750.cpp
new file mode 100644
index 00000000..cefbb0cc
--- /dev/null
+++ b/src/Main/Unknown/UnkStruct_02037750.cpp
@@ -0,0 +1,25 @@
+#include "Unknown/UnkStruct_02037750.hpp"
+
+UnkStruct_02037750::UnkStruct_02037750(unk32 param1, unk32 param2) {}
+UnkStruct_02037750::~UnkStruct_02037750() {}
+void UnkStruct_02037750::vfunc_08(unk32 param1) {}
+void UnkStruct_02037750::vfunc_0c(s32 param1) {}
+void UnkStruct_02037750::vfunc_10() {}
+void UnkStruct_02037750::vfunc_24(unk32 param1) {}
+void UnkStruct_02037750::vfunc_28(s32 param1) {}
+unk32 UnkStruct_02037750::vfunc_2c(s32 param1) {}
+LinkStateInteract *UnkStruct_02037750::GetLinkStateInteract() {}
+unk32 UnkStruct_02037750::vfunc_30() {}
+void UnkStruct_02037750::func_020385d0(s32 param1, unk32 *param2) {}
+void UnkStruct_02037750::vfunc_14() {}
+void UnkStruct_02037750::vfunc_18() {}
+unk32 UnkStruct_02037750::vfunc_1c() {}
+void UnkStruct_02037750::vfunc_20() {}
+
+UnkStruct_020386d8::UnkStruct_020386d8() :
+ UnkStruct_02037750(0x1000000, 0) {}
+void UnkStruct_020386d8::vfunc_08(unk32 param1) {}
+void UnkStruct_020386d8::vfunc_24(unk32 param1) {}
+void UnkStruct_020386d8::vfunc_28() {}
+unk32 UnkStruct_020386d8::vfunc_30() {}
+UnkStruct_020386d8::~UnkStruct_020386d8() {}
diff --git a/src/Main/Unknown/UnkStruct_02038aa0.cpp b/src/Main/Unknown/UnkStruct_02038aa0.cpp
new file mode 100644
index 00000000..371c886a
--- /dev/null
+++ b/src/Main/Unknown/UnkStruct_02038aa0.cpp
@@ -0,0 +1,43 @@
+#include "Unknown/UnkStruct_02038aa0.hpp"
+
+UnkStruct_0203881c::UnkStruct_0203881c() {}
+void UnkStruct_0203881c::func_02038858(unk32 param1) {}
+void UnkStruct_0203881c::func_02038888() {}
+void UnkStruct_0203881c::func_02038950(UnkStruct_02038aa0 *param1, s32 param2) {}
+void UnkStruct_0203881c::func_02038a80(s32 param1) {}
+UnkStruct_0203881c::~UnkStruct_0203881c() {}
+
+UnkStruct_02038aa0::UnkStruct_02038aa0(u8 param1, u8 param2) :
+ UnkStruct_0203dae0(param1) {}
+UnkStruct_02038aa0::~UnkStruct_02038aa0() {}
+void UnkStruct_02038aa0::func_02038b34(u32 param1, unk32 param2) {}
+void UnkStruct_02038aa0::vfunc_4c() {}
+void UnkStruct_02038aa0::vfunc_10(unk32 param1) {}
+void UnkStruct_02038aa0::func_02038b40() {}
+void UnkStruct_02038aa0::vfunc_48() {}
+bool UnkStruct_02038aa0::func_02038b78() {}
+unk32 UnkStruct_02038aa0::vfunc_34(s32 param1) {}
+s32 UnkStruct_02038aa0::func_02038cb8(s32 param1) {}
+s32 UnkStruct_02038aa0::func_02038cf4() {}
+s32 UnkStruct_02038aa0::func_02038d10() {}
+void UnkStruct_02038aa0::vfunc_2c() {}
+void UnkStruct_02038aa0::vfunc_30() {}
+bool UnkStruct_02038aa0::func_02038ef4(s32 param1, s32 param2) {}
+void UnkStruct_02038aa0::vfunc_44() {}
+void UnkStruct_02038aa0::vfunc_50(unk32 param1, unk32 param2, s32 param3, unk32 param4) {}
+void UnkStruct_02038aa0::vfunc_5c() {}
+unk32 UnkStruct_02038aa0::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {}
+unk32 UnkStruct_02038aa0::vfunc_20(s32 param1, s32 *param2) {}
+void UnkStruct_02038aa0::func_02039208(unk16 param1) {}
+void UnkStruct_02038aa0::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) {}
+unk32 UnkStruct_02038aa0::func_02039250() {}
+void UnkStruct_02038aa0::vfunc_54() {}
+void UnkStruct_02038aa0::vfunc_58() {}
+void UnkStruct_02038aa0::vfunc_60() {}
+void UnkStruct_02038aa0::vfunc_64() {}
+s32 UnkStruct_02038aa0::vfunc_68(unk32 param1) {}
+void UnkStruct_02038aa0::func_02039440(unk32 param1, unk32 param2) {}
+void UnkStruct_02038aa0::vfunc_6c(s32 *param1, s32 *param2) {}
+void UnkStruct_02038aa0::vfunc_70(s32 *param1, s32 *param2) {}
+bool UnkStruct_02038aa0::func_0203951c() {}
+unk32 UnkStruct_02038aa0::vfunc_38() {}
diff --git a/src/Main/Unknown/UnkStruct_020397f8.cpp b/src/Main/Unknown/UnkStruct_020397f8.cpp
new file mode 100644
index 00000000..3bd676db
--- /dev/null
+++ b/src/Main/Unknown/UnkStruct_020397f8.cpp
@@ -0,0 +1,39 @@
+#include "Unknown/UnkStruct_020397f8.hpp"
+
+UnkStruct_020397f8::UnkStruct_020397f8() :
+ UnkStruct_02038aa0(0, 0) {}
+void UnkStruct_020397f8::vfunc_4c() {}
+void UnkStruct_020397f8::vfunc_2c() {}
+void UnkStruct_020397f8::func_02039ca8() {}
+void UnkStruct_020397f8::vfunc_3c() {}
+void UnkStruct_020397f8::vfunc_40(s32 param1, s32 param2) {}
+void UnkStruct_020397f8::func_0203a188(s32 param1, s32 param2) {}
+bool UnkStruct_020397f8::func_0203a2c0() {}
+unk32 UnkStruct_020397f8::func_0203a30c() {}
+void UnkStruct_020397f8::vfunc_48() {}
+void UnkStruct_020397f8::func_0203a35c() {}
+bool UnkStruct_020397f8::func_0203a3e0() {}
+void UnkStruct_020397f8::vfunc_44(s32 param1, s32 param2) {}
+bool UnkStruct_020397f8::func_0203a6d0(unk32 param1) {}
+void UnkStruct_020397f8::vfunc_50(unk32 param1, unk32 param2, s32 param3, unk32 param4) {}
+void UnkStruct_020397f8::vfunc_54() {}
+void UnkStruct_020397f8::vfunc_5c() {}
+void UnkStruct_020397f8::vfunc_58() {}
+bool UnkStruct_020397f8::func_0203b0bc() {}
+s32 UnkStruct_020397f8::func_0203b0ec(u32 param1) {}
+unk32 UnkStruct_020397f8::vfunc_18(s32 param1) {}
+unk32 UnkStruct_020397f8::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {}
+void UnkStruct_020397f8::vfunc_60(s32 param1) {}
+void UnkStruct_020397f8::vfunc_64(unk32 param1) {}
+void UnkStruct_020397f8::func_0203b764() {}
+unk32 UnkStruct_020397f8::vfunc_20(s32 param1, s32 *param2) {}
+void UnkStruct_020397f8::func_0203bd8c(s32 param1) {}
+void UnkStruct_020397f8::vfunc_6c(s32 *param1, s32 *param2) {}
+void UnkStruct_020397f8::func_0203be08() {}
+void UnkStruct_020397f8::func_0203be64() {}
+bool UnkStruct_020397f8::func_0203c084() {}
+bool UnkStruct_020397f8::func_0203c13c() {}
+bool UnkStruct_020397f8::func_0203c1a0() {}
+bool UnkStruct_020397f8::func_0203c25c() {}
+UnkStruct_020397f8::~UnkStruct_020397f8() {}
+unk32 UnkStruct_020397f8::vfunc_38() {}
diff --git a/src/Main/Unknown/UnkStruct_0203dae0.cpp b/src/Main/Unknown/UnkStruct_0203dae0.cpp
new file mode 100644
index 00000000..5d19b0b3
--- /dev/null
+++ b/src/Main/Unknown/UnkStruct_0203dae0.cpp
@@ -0,0 +1,25 @@
+#include "Unknown/UnkStruct_0203dae0.hpp"
+
+UnkStruct_0203dae0::UnkStruct_0203dae0(u8 param1) {}
+UnkStruct_0203dae0::~UnkStruct_0203dae0() {}
+void UnkStruct_0203dae0::func_0203dc10(s32 param1) {}
+bool UnkStruct_0203dae0::func_0203dc74(s32 param1, s32 param2) {}
+bool UnkStruct_0203dae0::vfunc_14(s32 param1, s32 param2) {}
+void UnkStruct_0203dae0::func_0203dcfc(u8 param1, unk32 param2, unk32 param3, s32 param4) {}
+void UnkStruct_0203dae0::func_0203ddec() {}
+void UnkStruct_0203dae0::func_0203ddfc() {}
+void UnkStruct_0203dae0::func_0203de14() {}
+s32 UnkStruct_0203dae0::func_0203de24() {}
+bool UnkStruct_0203dae0::func_0203de58(s32 param1) {}
+void UnkStruct_0203dae0::vfunc_10(u32 param1, unk32 param2) {}
+void UnkStruct_0203dae0::vfunc_30() {}
+bool UnkStruct_0203dae0::vfunc_28() {}
+bool UnkStruct_0203dae0::func_0203e0f8(unk32 param1, s32 param2) {}
+void UnkStruct_0203dae0::vfunc_2c() {}
+bool UnkStruct_0203dae0::func_0203e1b0(unk32 param1, unk32 param2, s32 param3) {}
+unk32 UnkStruct_0203dae0::vfunc_18(s32 param1) {}
+void UnkStruct_0203dae0::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) {}
+void UnkStruct_0203dae0::func_0203e2e8(s32 param1, s32 param2, unk32 param3, u32 param4) {}
+void UnkStruct_0203dae0::func_0203e510(s32 *param1, s32 param2, s32 param3) {}
+void UnkStruct_0203dae0::func_0203e62c(s32 *param1, s32 param2) {}
+bool UnkStruct_0203dae0::func_0203e6e4(u32 param1, u32 param2, s32 param3) {}