summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSammygoodTunes <sygamerz@gmail.com>2025-01-13 22:13:47 +0100
committerSammygoodTunes <sygamerz@gmail.com>2025-01-13 22:13:47 +0100
commit3cca73e1c1c0c0beba6f4864126220c478643ffc (patch)
tree2b849ded834fe2f24befbd9b03f371fa4ad86bea
parenta4a9bb5dfdc9d1b3c4e024f631ced1d5d22097d1 (diff)
Decompile MapManager::IsMapInMainGrid
Decompile MapManager::GetCourseDungeonProgress Decompile MapManager::func_ov00_020820fc Decompile MapManager::func_ov00_0208230c (93%) Decompile MapManager::func_ov00_020823a4 Decompile MapManager::func_ov00_020823b4 Decompile MapManager::func_ov00_020823c4 Decompile MapManager::func_ov00_020823d4 Decompile MapManager::func_ov00_020823e4 Decompile MapManager::MapData_vfunc_b4 Decompile MapManager::MapData_vfunc_9c Decompile MapManager::func_ov00_02082424 (41%) Decompile MapManager::func_ov00_02082454 (25%) Decompile MapManager::func_ov00_02082494 (28%)
-rw-r--r--config/eur/arm9/overlays/ov000/symbols.txt10
-rw-r--r--config/usa/arm9/overlays/ov000/symbols.txt10
-rw-r--r--include/Map/Course.hpp2
-rw-r--r--include/Map/MapBase.hpp8
-rw-r--r--include/Map/MapManager.hpp22
-rw-r--r--src/00_Core/Map/MapBase.cpp6
-rw-r--r--src/00_Core/Map/MapManager.cpp103
7 files changed, 115 insertions, 46 deletions
diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt
index c3b0b05f..976a411b 100644
--- a/config/eur/arm9/overlays/ov000/symbols.txt
+++ b/config/eur/arm9/overlays/ov000/symbols.txt
@@ -330,7 +330,7 @@ _ZN7MapBase18func_ov00_0207de68Ei kind:function(arm,size=0x20) addr:0x207de68
_ZN7MapBase18func_ov00_0207de88Ev kind:function(arm,size=0x18) addr:0x207de88
_ZN7MapBase18func_ov00_0207dea0Eb kind:function(arm,size=0x1c0) addr:0x207dea0
_ZN7MapBase8vfunc_b0Eii kind:function(arm,size=0x2c) addr:0x207e060
-_ZN7MapBase18func_ov00_0207e08cEii kind:function(arm,size=0x64) addr:0x207e08c
+_ZN7MapBase18func_ov00_0207e08cEPii kind:function(arm,size=0x64) addr:0x207e08c
_ZN7MapBase18func_ov00_0207e0f0Ei kind:function(arm,size=0x19c) addr:0x207e0f0
_ZN7MapBase18func_ov00_0207e28cEi kind:function(arm,size=0x1b8) addr:0x207e28c
_ZN7MapBase8vfunc_b4Ev kind:function(arm,size=0x28) addr:0x207e444
@@ -488,10 +488,10 @@ func_ov000_0208208c kind:function(arm,size=0x14) addr:0x208208c
func_ov000_020820a0 kind:function(arm,size=0x1c) addr:0x20820a0
func_ov000_020820bc kind:function(arm,size=0x14) addr:0x20820bc
func_ov000_020820d0 kind:function(arm,size=0x1c) addr:0x20820d0
-_ZN10MapManager18func_ov00_020820ecEPi kind:function(arm,size=0x10) addr:0x20820ec
+_ZN10MapManager24GetCourseDungeonProgressEP14CourseProgress kind:function(arm,size=0x10) addr:0x20820ec
_ZN10MapManager18func_ov00_020820fcEiii kind:function(arm,size=0x10) addr:0x20820fc
_ZN10MapManager18func_ov00_0208210cEii kind:function(arm,size=0x200) addr:0x208210c
-_ZN10MapManager18func_ov00_0208230cEi kind:function(arm,size=0x3c) addr:0x208230c
+_ZN10MapManager18func_ov00_0208230cEPi kind:function(arm,size=0x3c) addr:0x208230c
_ZN10MapManager18func_ov00_02082348Ei kind:function(arm,size=0x5c) addr:0x2082348
_ZN10MapManager18func_ov00_020823a4Ei kind:function(arm,size=0x10) addr:0x20823a4
_ZN10MapManager18func_ov00_020823b4Ev kind:function(arm,size=0x10) addr:0x20823b4
@@ -501,7 +501,7 @@ _ZN10MapManager18func_ov00_020823e4Ei kind:function(arm,size=0x10) addr:0x20823e
_ZN10MapManager16MapData_vfunc_b4Ev kind:function(arm,size=0x18) addr:0x20823f4
_ZN10MapManager16MapData_vfunc_9cEv kind:function(arm,size=0x18) addr:0x208240c
_ZN10MapManager18func_ov00_02082424Ev kind:function(arm,size=0x30) addr:0x2082424
-_ZN10MapManager18func_ov00_02082454Eii kind:function(arm,size=0x40) addr:0x2082454
+_ZN10MapManager18func_ov00_02082454EP5Vec3pS1_ kind:function(arm,size=0x40) addr:0x2082454
_ZN10MapManager18func_ov00_02082494Ei kind:function(arm,size=0x38) addr:0x2082494
_ZN10MapManager18func_ov00_020824ccEi kind:function(arm,size=0x38) addr:0x20824cc
_ZN10MapManager18func_ov00_02082504Ev kind:function(arm,size=0x34) addr:0x2082504
@@ -542,7 +542,7 @@ _ZN10MapManager18func_ov00_0208315cEPiS0_ kind:function(arm,size=0xe8) addr:0x20
_ZN10MapManager18func_ov00_02083244EjPiS0_S0_ kind:function(arm,size=0x54) addr:0x2083244
_ZN10MapManager18func_ov00_02083298EjPiS0_S0_ kind:function(arm,size=0x74) addr:0x2083298
_ZN10MapManager21GetCourseData_Unk_25cEv kind:function(arm,size=0xc) addr:0x208330c
-_ZN10MapManager18func_ov00_02083318Ei kind:function(arm,size=0x10) addr:0x2083318
+_ZN10MapManager15IsMapInMainGridEj kind:function(arm,size=0x10) addr:0x2083318
_ZN10MapManager18func_ov00_02083328Ev kind:function(arm,size=0x1c) addr:0x2083328
_ZN10MapManager22GetCourseMainGridSizeXEv kind:function(arm,size=0xc) addr:0x2083344
_ZN10MapManager22GetCourseMainGridSizeYEv kind:function(arm,size=0xc) addr:0x2083350
diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt
index de8a07cf..aaa34807 100644
--- a/config/usa/arm9/overlays/ov000/symbols.txt
+++ b/config/usa/arm9/overlays/ov000/symbols.txt
@@ -330,7 +330,7 @@ _ZN7MapBase18func_ov00_0207de68Ei kind:function(arm,size=0x20) addr:0x207de08
_ZN7MapBase18func_ov00_0207de88Ev kind:function(arm,size=0x18) addr:0x207de28
_ZN7MapBase18func_ov00_0207dea0Eb kind:function(arm,size=0x1c0) addr:0x207de40
_ZN7MapBase8vfunc_b0Eii kind:function(arm,size=0x2c) addr:0x207e000
-_ZN7MapBase18func_ov00_0207e08cEii kind:function(arm,size=0x64) addr:0x207e02c
+_ZN7MapBase18func_ov00_0207e08cEPii kind:function(arm,size=0x64) addr:0x207e02c
_ZN7MapBase18func_ov00_0207e0f0Ei kind:function(arm,size=0x19c) addr:0x207e090
_ZN7MapBase18func_ov00_0207e28cEi kind:function(arm,size=0x1b8) addr:0x207e22c
_ZN7MapBase8vfunc_b4Ev kind:function(arm,size=0x28) addr:0x207e3e4
@@ -488,10 +488,10 @@ func_ov000_0208208c kind:function(arm,size=0x14) addr:0x208202c
func_ov000_020820a0 kind:function(arm,size=0x1c) addr:0x2082040
func_ov000_020820bc kind:function(arm,size=0x14) addr:0x208205c
func_ov000_020820d0 kind:function(arm,size=0x1c) addr:0x2082070
-_ZN10MapManager18func_ov00_020820ecEPi kind:function(arm,size=0x10) addr:0x208208c
+_ZN10MapManager24GetCourseDungeonProgressEP14CourseProgress kind:function(arm,size=0x10) addr:0x208208c
_ZN10MapManager18func_ov00_020820fcEiii kind:function(arm,size=0x10) addr:0x208209c
_ZN10MapManager18func_ov00_0208210cEii kind:function(arm,size=0x200) addr:0x20820ac
-_ZN10MapManager18func_ov00_0208230cEi kind:function(arm,size=0x3c) addr:0x20822ac
+_ZN10MapManager18func_ov00_0208230cEPi kind:function(arm,size=0x3c) addr:0x20822ac
_ZN10MapManager18func_ov00_02082348Ei kind:function(arm,size=0x5c) addr:0x20822e8
_ZN10MapManager18func_ov00_020823a4Ei kind:function(arm,size=0x10) addr:0x2082344
_ZN10MapManager18func_ov00_020823b4Ev kind:function(arm,size=0x10) addr:0x2082354
@@ -501,7 +501,7 @@ _ZN10MapManager18func_ov00_020823e4Ei kind:function(arm,size=0x10) addr:0x208238
_ZN10MapManager16MapData_vfunc_b4Ev kind:function(arm,size=0x18) addr:0x2082394
_ZN10MapManager16MapData_vfunc_9cEv kind:function(arm,size=0x18) addr:0x20823ac
_ZN10MapManager18func_ov00_02082424Ev kind:function(arm,size=0x30) addr:0x20823c4
-_ZN10MapManager18func_ov00_02082454Eii kind:function(arm,size=0x40) addr:0x20823f4
+_ZN10MapManager18func_ov00_02082454EP5Vec3pS1_ kind:function(arm,size=0x40) addr:0x20823f4
_ZN10MapManager18func_ov00_02082494Ei kind:function(arm,size=0x38) addr:0x2082434
_ZN10MapManager18func_ov00_020824ccEi kind:function(arm,size=0x38) addr:0x208246c
_ZN10MapManager18func_ov00_02082504Ev kind:function(arm,size=0x34) addr:0x20824a4
@@ -542,7 +542,7 @@ _ZN10MapManager18func_ov00_0208315cEPiS0_ kind:function(arm,size=0xe8) addr:0x20
_ZN10MapManager18func_ov00_02083244EjPiS0_S0_ kind:function(arm,size=0x54) addr:0x20831e4
_ZN10MapManager18func_ov00_02083298EjPiS0_S0_ kind:function(arm,size=0x74) addr:0x2083238
_ZN10MapManager21GetCourseData_Unk_25cEv kind:function(arm,size=0xc) addr:0x20832ac
-_ZN10MapManager18func_ov00_02083318Ei kind:function(arm,size=0x10) addr:0x20832b8
+_ZN10MapManager15IsMapInMainGridEj kind:function(arm,size=0x10) addr:0x20832b8
_ZN10MapManager18func_ov00_02083328Ev kind:function(arm,size=0x1c) addr:0x20832c8
_ZN10MapManager22GetCourseMainGridSizeXEv kind:function(arm,size=0xc) addr:0x20832e4
_ZN10MapManager22GetCourseMainGridSizeYEv kind:function(arm,size=0xc) addr:0x20832f0
diff --git a/include/Map/Course.hpp b/include/Map/Course.hpp
index 8366fb99..5d2017f8 100644
--- a/include/Map/Course.hpp
+++ b/include/Map/Course.hpp
@@ -28,7 +28,7 @@ struct CourseProgress {
class Course : public SysObject {
public:
- /* 000 */ unk32 mIndex;
+ /* 000 */ s32 mIndex;
/* 004 */ CourseType mType;
/* 008 */ unk32 mUnk_008;
/* 00c */ char mName[0x10];
diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp
index 1ed55f8f..c94081d9 100644
--- a/include/Map/MapBase.hpp
+++ b/include/Map/MapBase.hpp
@@ -133,7 +133,7 @@ public:
/* 40 */ virtual void vfunc_40();
/* 44 */ virtual void vfunc_44();
/* 48 */ virtual void vfunc_48();
- /* 4c */ virtual void vfunc_4c() = 0;
+ /* 4c */ virtual s32 vfunc_4c() = 0;
/* 50 */ virtual unk32 vfunc_50();
/* 54 */ virtual unk32 vfunc_54();
/* 58 */ virtual unk32 vfunc_58();
@@ -171,9 +171,9 @@ public:
void func_ov00_0207de68(unk32 param_2);
void func_ov00_0207de88();
void func_ov00_0207dea0(bool param_2);
- bool func_ov00_0207e08c(unk32 param_2, unk32 param_3);
- s32 func_ov00_0207e0f0(unk32 param_2);
- s32 func_ov00_0207e28c(unk32 param_2);
+ bool func_ov00_0207e08c(s32 *param_2, s32 param_3);
+ s32 func_ov00_0207e0f0(s32 param_2);
+ s32 func_ov00_0207e28c(s32 param_2);
static unk8 func_ov00_0207e940(unk8 *param_1);
static unk8 func_ov00_0207e968();
static unk8 func_ov00_0207e96c();
diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp
index d95417c1..dc286644 100644
--- a/include/Map/MapManager.hpp
+++ b/include/Map/MapManager.hpp
@@ -34,27 +34,27 @@ public:
/* 09 */ unk8 mUnk_09;
/* 0a */ unk8 mUnk_0a;
/* 0b */ unk8 mUnk_0b;
- /* 0c */ unk8 mUnk_0c;
+ /* 0c */ u8 mUnk_0c;
/* 0d */ unk8 mUnk_0d;
/* 0e */ unk8 mUnk_0e;
/* 0f */ unk8 mUnk_0f;
/* 10 */
- void func_ov00_020820ec(unk32 *param_2);
+ void GetCourseDungeonProgress(CourseProgress *param_2);
void func_ov00_020820fc(s32 param_2, unk32 param_3, unk32 param_4);
unk8 func_ov00_0208210c(unk32 param_2, unk32 param_3);
- unk8 func_ov00_0208230c(unk32 param_2);
- unk8 func_ov00_02082348(unk32 param_2);
+ void func_ov00_0208230c(s32 *param_2);
+ void func_ov00_02082348(unk32 param_2);
void func_ov00_020823a4(unk32 param_2);
- unk8 func_ov00_020823b4();
+ void func_ov00_020823b4();
bool func_ov00_020823c4(unk32 *param_2, s32 param_3);
s32 func_ov00_020823d4(s32 param_2);
s32 func_ov00_020823e4(s32 param_2);
- unk8 MapData_vfunc_b4();
- unk8 MapData_vfunc_9c();
+ void MapData_vfunc_b4();
+ void MapData_vfunc_9c();
s32 func_ov00_02082424();
- unk8 func_ov00_02082454(unk32 param_2, unk32 param_3);
- unk8 func_ov00_02082494(unk32 param_2);
+ bool func_ov00_02082454(Vec3p *param_2, Vec3p *param_3);
+ bool func_ov00_02082494(s32 param_2);
unk8 func_ov00_020824cc(unk32 param_2);
unk8 func_ov00_02082504();
unk8 *func_ov00_02082538();
@@ -87,14 +87,14 @@ public:
unk8 GetCourseData_Unk_1d();
unk8 func_ov00_02082d40();
u32 func_ov00_02082d74(unk32 param_2);
- static unk8 func_ov00_02082d84();
+ void func_ov00_02082d84();
bool func_ov00_02082e1c(s32 *param_2, s32 *param_3);
static unk8 func_ov00_0208306c();
void func_ov00_0208315c(s32 *param_2, s32 *param_3);
void func_ov00_02083244(u32 param_2, s32 *param_3, s32 *param_4, s32 *param_5);
void func_ov00_02083298(u32 param_2, s32 *param_3, s32 *param_4, s32 *param_5);
bool GetCourseData_Unk_25c();
- bool func_ov00_02083318(unk32 param_2);
+ bool IsMapInMainGrid(u32 map);
bool func_ov00_02083328();
u8 GetCourseMainGridSizeX();
u8 GetCourseMainGridSizeY();
diff --git a/src/00_Core/Map/MapBase.cpp b/src/00_Core/Map/MapBase.cpp
index 99fdb7c6..e4de4c74 100644
--- a/src/00_Core/Map/MapBase.cpp
+++ b/src/00_Core/Map/MapBase.cpp
@@ -12,9 +12,9 @@ void MapBase::func_ov00_0207de68(unk32 param_2) {}
void MapBase::func_ov00_0207de88() {}
void MapBase::func_ov00_0207dea0(bool param_2) {}
unk8 MapBase::vfunc_b0(unk32 param_2, unk32 param_3) {}
-bool MapBase::func_ov00_0207e08c(unk32 param_2, unk32 param_3) {}
-s32 MapBase::func_ov00_0207e0f0(unk32 param_2) {}
-s32 MapBase::func_ov00_0207e28c(unk32 param_2) {}
+bool MapBase::func_ov00_0207e08c(s32 *param_2, s32 param_3) {}
+s32 MapBase::func_ov00_0207e0f0(s32 param_2) {}
+s32 MapBase::func_ov00_0207e28c(s32 param_2) {}
void MapBase::vfunc_b4() {}
void MapBase::vfunc_48() {}
unk32 MapBase::vfunc_50() {}
diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp
index 656be1c8..efc01b3e 100644
--- a/src/00_Core/Map/MapManager.cpp
+++ b/src/00_Core/Map/MapManager.cpp
@@ -3,21 +3,88 @@
#include "Actor/ActorManager.hpp"
#include "Player/PlayerBase.hpp"
-void MapManager::func_ov00_020820ec(unk32 *param_2) {}
-void MapManager::func_ov00_020820fc(s32 param_2, unk32 param_3, unk32 param_4) {}
+ARM void MapManager::GetCourseDungeonProgress(CourseProgress *param_2) {
+ this->mCourse->GetDungeonProgress(param_2);
+}
+
+ARM void MapManager::func_ov00_020820fc(s32 param_2, unk32 param_3, unk32 param_4) {
+ this->mCourse->func_ov00_0207ca28(param_2, param_3, param_4);
+}
+
unk8 MapManager::func_ov00_0208210c(unk32 param_2, unk32 param_3) {}
-unk8 MapManager::func_ov00_0208230c(unk32 param_2) {}
-unk8 MapManager::func_ov00_02082348(unk32 param_2) {}
-void MapManager::func_ov00_020823a4(unk32 param_2) {}
-unk8 MapManager::func_ov00_020823b4() {}
-bool MapManager::func_ov00_020823c4(unk32 *param_2, s32 param_3) {}
-s32 MapManager::func_ov00_020823d4(s32 param_2) {}
-s32 MapManager::func_ov00_020823e4(s32 param_2) {}
-unk8 MapManager::MapData_vfunc_b4() {}
-unk8 MapManager::MapData_vfunc_9c() {}
-s32 MapManager::func_ov00_02082424() {}
-unk8 MapManager::func_ov00_02082454(unk32 param_2, unk32 param_3) {}
-unk8 MapManager::func_ov00_02082494(unk32 param_2) {}
+
+ARM void MapManager::func_ov00_0208230c(s32 *param_2) {
+ *param_2 = this->mCourse->mIndex;
+ Course *course = this->mCourse;
+ *(unk8 *) ((u32) param_2 + 0x12) = course->mMapGrid[(u8) course->mCurrMapPos.x][(u8) course->mCurrMapPos.y];
+ *(unk8 *) ((u32) param_2 + 0x13) = this->mUnk_0c;
+}
+
+ARM void MapManager::func_ov00_02082348(unk32 param_2) {
+ // s32 var[4];
+ // var[0] = 0x47;
+ // var[1] = 0;
+ // var[2] = 0;
+ // var[3] = 0xfffffffe;
+ // this->func_ov00_0208230c(var);
+ // func_ov00_02078bf0(var, param2) ???
+}
+
+ARM void MapManager::func_ov00_020823a4(unk32 param_2) {
+ this->mMap->func_ov00_0207de68(param_2);
+}
+
+ARM void MapManager::func_ov00_020823b4() {
+ this->mMap->func_ov00_0207de88();
+}
+
+ARM bool MapManager::func_ov00_020823c4(s32 *param_2, s32 param_3) {
+ return this->mMap->func_ov00_0207e08c(param_2, param_3);
+}
+
+ARM s32 MapManager::func_ov00_020823d4(s32 param_2) {
+ return this->mMap->func_ov00_0207e0f0(param_2);
+}
+
+ARM s32 MapManager::func_ov00_020823e4(s32 param_2) {
+ return this->mMap->func_ov00_0207e28c(param_2);
+}
+
+ARM void MapManager::MapData_vfunc_b4() {
+ this->mMap->vfunc_b4();
+}
+
+ARM void MapManager::MapData_vfunc_9c() {
+ this->mMap->vfunc_9c();
+}
+
+ARM s32 MapManager::func_ov00_02082424() {
+ s32 var = this->mMap->vfunc_4c();
+ if (var == 2) {
+ // var = this->mMap->func_ov015_02129c14(); // Does not exist.
+ return var;
+ }
+ return 0;
+}
+
+ARM bool MapManager::func_ov00_02082454(Vec3p *param_2, Vec3p *param_3) {
+ s32 var = this->mMap->vfunc_4c();
+ if (var == 2) {
+ bool state;// = this->mMap->func_ov015_02129c24(param_2, param_3); // Does not exist.
+ return state;
+ }
+ return false;
+}
+
+ARM bool MapManager::func_ov00_02082494(s32 param_2) {
+ s32 var = this->mMap->vfunc_4c();
+ if (var == 2) {
+ bool state;// = this->mMap->func_ov015_02129c34(param_2); // Does not exist.
+ return state;
+ }
+ return false;
+}
+
unk8 MapManager::func_ov00_020824cc(unk32 param_2) {}
unk8 MapManager::func_ov00_02082504() {}
unk8 *MapManager::func_ov00_02082538() {}
@@ -55,7 +122,7 @@ unk8 MapManager::GetCourseData_Unk_1c() {}
unk8 MapManager::GetCourseData_Unk_1d() {}
unk8 MapManager::func_ov00_02082d40() {}
u32 MapManager::func_ov00_02082d74(unk32 param_2) {}
-unk8 MapManager::func_ov00_02082d84() {}
+ARM void MapManager::func_ov00_02082d84() {}
bool MapManager::func_ov00_02082e1c(s32 *param_2, s32 *param_3) {}
unk8 MapManager::func_ov00_0208306c() {}
void MapManager::func_ov00_0208315c(s32 *param_2, s32 *param_3) {}
@@ -66,7 +133,9 @@ ARM bool MapManager::GetCourseData_Unk_25c() {
return this->mCourse->mUnk_25c;
}
-ARM bool MapManager::func_ov00_02083318(unk32 param_2) {}
+ARM bool MapManager::IsMapInMainGrid(u32 map) {
+ return this->mCourse->IsMapInMainGrid(map);
+}
ARM bool MapManager::func_ov00_02083328() {
u32 map = (u32) this->func_ov00_02082d08();
@@ -186,7 +255,7 @@ ARM void MapManager::func_ov00_02083524(Vec3p *param_2, unk32 param_3, unk32 par
param_2->z = mapCenter->z;
}
-void MapManager::func_ov00_02083560(Vec2b *param_1, MapManager *param_2, u32 param_3) {
+ARM void MapManager::func_ov00_02083560(Vec2b *param_1, MapManager *param_2, u32 param_3) {
param_2->mCourse->FindMapGridPos(param_1, param_2->mCourse, param_3);
}