summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSammygoodTunes <sygamerz@gmail.com>2025-01-11 22:08:00 +0100
committerSammygoodTunes <sygamerz@gmail.com>2025-01-11 22:08:00 +0100
commitd11cc4a573b12d17206de6632178cd7e3b5ae857 (patch)
treec90ece2d5497868720ecba50a54f593964438559
parent420d3e42681c3960c395b6e6ebf46721d6c9f905 (diff)
Decompile MapManager::GetMapWidth
Decompile MapManager::GetMapHeight Decompile MapManager::func_ov00_02083374 Decompile MapManager::func_ov00_02083384 Decompile MapManager::func_ov00_020834bc
-rw-r--r--config/eur/arm9/overlays/ov000/symbols.txt4
-rw-r--r--config/usa/arm9/overlays/ov000/symbols.txt4
-rw-r--r--include/Map/Course.hpp5
-rw-r--r--include/Map/MapBase.hpp4
-rw-r--r--include/Map/MapManager.hpp12
-rw-r--r--src/00_Core/Map/MapManager.cpp46
6 files changed, 50 insertions, 25 deletions
diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt
index a577522c..765e31ff 100644
--- a/config/eur/arm9/overlays/ov000/symbols.txt
+++ b/config/eur/arm9/overlays/ov000/symbols.txt
@@ -546,8 +546,8 @@ _ZN10MapManager18func_ov00_02083318Ei kind:function(arm,size=0x10) addr:0x208331
_ZN10MapManager18func_ov00_02083328Ev kind:function(arm,size=0x1c) addr:0x2083328
_ZN10MapManager20GetCourseData_Unk_86Ev kind:function(arm,size=0xc) addr:0x2083344
_ZN10MapManager20GetCourseData_Unk_87Ev kind:function(arm,size=0xc) addr:0x2083350
-_ZN10MapManager17Get_MapData_Unk28Ev kind:function(arm,size=0xc) addr:0x208335c
-_ZN10MapManager17Get_MapData_Unk2aEv kind:function(arm,size=0xc) addr:0x2083368
+_ZN10MapManager11GetMapWidthEv kind:function(arm,size=0xc) addr:0x208335c
+_ZN10MapManager12GetMapHeightEv kind:function(arm,size=0xc) addr:0x2083368
_ZN10MapManager18func_ov00_02083374Ev kind:function(arm,size=0x10) addr:0x2083374
_ZN10MapManager18func_ov00_02083384Ev kind:function(arm,size=0x10) addr:0x2083384
_ZN10MapManager13GetCourseMinXEv kind:function(arm,size=0xc) addr:0x2083394
diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt
index 82b5aefa..cded5ddf 100644
--- a/config/usa/arm9/overlays/ov000/symbols.txt
+++ b/config/usa/arm9/overlays/ov000/symbols.txt
@@ -546,8 +546,8 @@ _ZN10MapManager18func_ov00_02083318Ei kind:function(arm,size=0x10) addr:0x20832b
_ZN10MapManager18func_ov00_02083328Ev kind:function(arm,size=0x1c) addr:0x20832c8
_ZN10MapManager20GetCourseData_Unk_86Ev kind:function(arm,size=0xc) addr:0x20832e4
_ZN10MapManager20GetCourseData_Unk_87Ev kind:function(arm,size=0xc) addr:0x20832f0
-_ZN10MapManager17Get_MapData_Unk28Ev kind:function(arm,size=0xc) addr:0x20832fc
-_ZN10MapManager17Get_MapData_Unk2aEv kind:function(arm,size=0xc) addr:0x2083308
+_ZN10MapManager11GetMapWidthEv kind:function(arm,size=0xc) addr:0x20832fc
+_ZN10MapManager12GetMapHeightEv kind:function(arm,size=0xc) addr:0x2083308
_ZN10MapManager18func_ov00_02083374Ev kind:function(arm,size=0x10) addr:0x2083314
_ZN10MapManager18func_ov00_02083384Ev kind:function(arm,size=0x10) addr:0x2083324
_ZN10MapManager13GetCourseMinXEv kind:function(arm,size=0xc) addr:0x2083334
diff --git a/include/Map/Course.hpp b/include/Map/Course.hpp
index 4cc3835f..8366fb99 100644
--- a/include/Map/Course.hpp
+++ b/include/Map/Course.hpp
@@ -27,6 +27,7 @@ struct CourseProgress {
};
class Course : public SysObject {
+public:
/* 000 */ unk32 mIndex;
/* 004 */ CourseType mType;
/* 008 */ unk32 mUnk_008;
@@ -41,11 +42,7 @@ class Course : public SysObject {
/* 08c */ s32 mScreenMapOffsetY;
/* 090 */ unk32 mUnk_090;
/* 094 */ unk32 mUnk_094;
-
-public:
/* 098 */ AABB mBounds;
-
-private:
/* 0b0 */ s8 mNumMaps;
/* 0b1 */ unk8 mUnk_0b1;
/* 0b2 */ unk8 mUnk_0b2;
diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp
index 037b7749..18161780 100644
--- a/include/Map/MapBase.hpp
+++ b/include/Map/MapBase.hpp
@@ -75,8 +75,8 @@ public:
/* 01f */ unk8 mUnk_01f;
/* 020 */ unk32 mUnk_020;
/* 024 */ unk32 mUnk_024;
- /* 028 */ s16 mUnk_028;
- /* 02a */ s16 mUnk_02a;
+ /* 028 */ s16 mWidth;
+ /* 02a */ s16 mHeight;
/* 02c */ unk16 mUnk_02c;
/* 02e */ unk16 mUnk_02e;
/* 030 */ s16 mUnk_030;
diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp
index 74f18a51..fca6cef7 100644
--- a/include/Map/MapManager.hpp
+++ b/include/Map/MapManager.hpp
@@ -98,10 +98,10 @@ public:
static unk8 func_ov00_02083328();
unk8 GetCourseData_Unk_86();
unk8 GetCourseData_Unk_87();
- unk8 Get_MapData_Unk28();
- unk8 Get_MapData_Unk2a();
- static unk8 func_ov00_02083374();
- static unk8 func_ov00_02083384();
+ u16 GetMapWidth();
+ u16 GetMapHeight();
+ s32 func_ov00_02083374();
+ s32 func_ov00_02083384();
q20 GetCourseMinX();
q20 GetCourseMinZ();
q20 GetCourseMaxX();
@@ -115,8 +115,8 @@ public:
void GetMapMinBounds(Vec3p *param_2);
void GetMapMaxBounds(Vec3p *param_2);
void GetMapCenter(Vec3p *param_2);
- unk8 func_ov00_0208346c(AABB *param_2);
- unk8 func_ov00_020834bc(Vec3p *param_2, unk32 param_3, unk32 param_4);
+ void func_ov00_0208346c(AABB *param_2);
+ void func_ov00_020834bc(Vec3p *param_2, unk32 param_3, unk32 param_4);
unk8 func_ov00_02083524(Vec3p *param_2, unk32 param_3, unk32 param_4);
static void func_ov00_02083560(unk32 param_1, MapManager *param_2, u32 param_3);
unk8 func_ov00_02083570(unk32 param_2, unk32 param_3);
diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp
index 3945e8c8..7e0e4f4b 100644
--- a/src/00_Core/Map/MapManager.cpp
+++ b/src/00_Core/Map/MapManager.cpp
@@ -58,10 +58,22 @@ bool MapManager::func_ov00_02083318(unk32 param_2) {}
unk8 MapManager::func_ov00_02083328() {}
unk8 MapManager::GetCourseData_Unk_86() {}
unk8 MapManager::GetCourseData_Unk_87() {}
-unk8 MapManager::Get_MapData_Unk28() {}
-unk8 MapManager::Get_MapData_Unk2a() {}
-unk8 MapManager::func_ov00_02083374() {}
-unk8 MapManager::func_ov00_02083384() {}
+
+ARM u16 MapManager::GetMapWidth() {
+ return this->mMap->mWidth;
+}
+
+ARM u16 MapManager::GetMapHeight() {
+ return this->mMap->mHeight;
+}
+
+ARM s32 MapManager::func_ov00_02083374() {
+ return this->GetMapWidth() << 0xc;
+}
+
+ARM s32 MapManager::func_ov00_02083384() {
+ return this->GetMapHeight() << 0xc;
+}
ARM q20 MapManager::GetCourseMinX() {
return (this->mCourse->mBounds).min.x;
@@ -108,7 +120,6 @@ ARM void MapManager::GetMapMinBounds(Vec3p *param_2) {
param_2->x = (mapBase->mBounds).min.x;
param_2->y = (mapBase->mBounds).min.y;
param_2->z = (mapBase->mBounds).min.z;
- return;
}
ARM void MapManager::GetMapMaxBounds(Vec3p *param_2) {
@@ -116,7 +127,6 @@ ARM void MapManager::GetMapMaxBounds(Vec3p *param_2) {
param_2->x = (mapBase->mBounds).max.x;
param_2->y = (mapBase->mBounds).max.y;
param_2->z = (mapBase->mBounds).max.z;
- return;
}
ARM void MapManager::GetMapCenter(Vec3p *param_2) {
@@ -124,11 +134,29 @@ ARM void MapManager::GetMapCenter(Vec3p *param_2) {
param_2->x = (mapBase->mCenter).x;
param_2->y = (mapBase->mCenter).y;
param_2->z = (mapBase->mCenter).z;
- return;
}
-unk8 MapManager::func_ov00_0208346c(AABB *param_2) {}
-unk8 MapManager::func_ov00_020834bc(Vec3p *param_2, unk32 param_3, unk32 param_4) {}
+ARM void MapManager::func_ov00_0208346c(AABB *param_2) {
+ (param_2->min).x = this->GetMapMinX();
+ (param_2->min).z = this->GetMapMinZ();
+ (param_2->max).x = this->GetMapMaxX();
+ (param_2->max).z = this->GetMapMaxZ();
+ (param_2->max).y = 0x1333;
+ (param_2->min).y = 0;
+}
+
+ARM void MapManager::func_ov00_020834bc(Vec3p *param_2, unk32 param_3, unk32 param_4) {
+ Vec3p *mapCenter = this->mCourse->FindMapCenter((u32) (u8) this->mCourse->mMapGrid[param_3][param_4]);
+ s32 iVar2;
+ param_2->x = mapCenter->x;
+ param_2->y = mapCenter->y;
+ param_2->z = mapCenter->z;
+ iVar2 = this->func_ov00_02083374();
+ param_2->x = param_2->x - (iVar2 >> 1);
+ iVar2 = this->func_ov00_02083384();
+ param_2->z = param_2->z - (iVar2 >> 1);
+}
+
unk8 MapManager::func_ov00_02083524(Vec3p *param_2, unk32 param_3, unk32 param_4) {}
void MapManager::func_ov00_02083560(unk32 param_1, MapManager *param_2, u32 param_3) {}
unk8 MapManager::func_ov00_02083570(unk32 param_2, unk32 param_3) {}