summaryrefslogtreecommitdiff
path: root/src/00_Core
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2025-02-04 21:30:00 +0100
committerAetias <aetias@outlook.com>2025-02-04 21:30:00 +0100
commitc380ac51a48d17348b1cdcbb615ce22be22f409e (patch)
tree6713ed5a1cd172f665e52ea0f995fc905ca3db2d /src/00_Core
parent8cda3ca2d7f5fe424cc1a649baec2ff992368e62 (diff)
parent3f7197110627adbbe7ff1f69db1f5a15f9b6c598 (diff)
Merge remote-tracking branch 'zeldaret/main' into decomp-PlayerControl
Diffstat (limited to 'src/00_Core')
-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.cpp25
-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.cpp14
-rw-r--r--src/00_Core/Player/PlayerControl.cpp2
-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
35 files changed, 669 insertions, 30 deletions
diff --git a/src/00_Core/Actor/Actor.cpp b/src/00_Core/Actor/Actor.cpp
index 2508b381..e12b246d 100644
--- a/src/00_Core/Actor/Actor.cpp
+++ b/src/00_Core/Actor/Actor.cpp
@@ -252,7 +252,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;
}
@@ -266,7 +266,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;
}
@@ -545,12 +545,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;
@@ -753,7 +753,7 @@ ARM EquipBoomerang *Actor::GetEquipBoomerang() {
ARM bool Actor::func_ov00_020c2d54() {
const ActorTypeId types[] = {
- ActorTypeId_ROPE,
+ ActorTypeId_GrapplingHook,
ActorTypeId_Null,
};
if (mHitbox.size >= 0) {
@@ -774,7 +774,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)) {
@@ -813,8 +813,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 601dc299..8101a888 100644
--- a/src/00_Core/Item/ItemManager.cpp
+++ b/src/00_Core/Item/ItemManager.cpp
@@ -1,6 +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"};
@@ -22,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];
@@ -30,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];
}
@@ -72,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;
@@ -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);
}
@@ -247,7 +252,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;
}
@@ -294,7 +299,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;
@@ -683,7 +688,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 56b6bc37..9e42961f 100644
--- a/src/00_Core/Player/LinkStateItem.cpp
+++ b/src/00_Core/Player/LinkStateItem.cpp
@@ -43,17 +43,17 @@ ARM void LinkStateItem::OnStateLeave(s32 param1) {
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:
- UnkStruct_027e103c *unk = data_027e103c;
- unk->mUnk_2a = 0;
- unk->func_ov000_020cf9dc(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/PlayerControl.cpp b/src/00_Core/Player/PlayerControl.cpp
index 58441736..d8b677f9 100644
--- a/src/00_Core/Player/PlayerControl.cpp
+++ b/src/00_Core/Player/PlayerControl.cpp
@@ -1,6 +1,6 @@
#include "Player/PlayerControl.hpp"
#include "Actor/ActorManager.hpp"
-#include "Actor/ActorNaviBase.hpp"
+#include "Actor/Navi/ActorNaviBase.hpp"
#include "DTCM/UnkStruct_027e05f8.hpp"
#include "DTCM/UnkStruct_027e077c.hpp"
#include "DTCM/UnkStruct_027e0c68.hpp"
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) {}