Decompile MapManager::func_ov00_020824cc (28%)

Decompile MapManager::func_ov00_02082504

Decompile MapManager::func_ov00_02082538 (43%)

Decompile MapManager::func_ov00_02082614

Decompile MapManager::MapData_vfunc_b0

Decompile MapManager::func_ov00_02082650

Decompile MapManager::func_ov00_02082660

Decompile MapManager::func_ov00_02082670

Decompile MapManager::func_ov00_02082680

Decompile MapManager::

Decompile MapManager::func_ov00_020826a0 (100% but needs verifying)

Decompile MapManager::CreateMap (3%)

Decompile MapManager::DestroyMap (8%)

Decompile MapManager::MapData_vfunc_44

Decompile MapManager::MapData_vfunc_7c (25%)

Decompile MapManager::MapData_vfunc_84

Decompile MapManager::func_ov00_020828f8

Decompile MapManager::GetNumMaps

Decompile MapManager::func_ov00_02082914 (21%)

Decompile MapManager::func_ov00_02082acc

Decompile MapManager::func_ov00_02082af4 (55%)
This commit is contained in:
SammygoodTunes
2025-01-14 15:27:50 +01:00
parent 3cca73e1c1
commit b7be672733
8 changed files with 304 additions and 65 deletions
+7 -7
View File
@@ -362,7 +362,7 @@ _ZN7MapBase8vfunc_78Ev kind:function(arm,size=0x8) addr:0x207f34c
_ZN7MapBase8vfunc_7cEv kind:function(arm,size=0x8) addr:0x207f354
_ZN7MapBase8vfunc_80Ev kind:function(arm,size=0x8) addr:0x207f35c
_ZN7MapBase8vfunc_84Ei kind:function(arm,size=0x28) addr:0x207f364
_ZN7MapBase18func_ov00_0207f38cEi kind:function(arm,size=0x38) addr:0x207f38c
_ZN7MapBase18func_ov00_0207f38cEPi kind:function(arm,size=0x38) addr:0x207f38c
_ZN7MapBase8vfunc_90Eiii kind:function(arm,size=0xdc) addr:0x207f3c4
_ZN7MapBase8vfunc_94Ev kind:function(arm,size=0x4) addr:0x207f4a0
_ZN7MapBase18func_ov00_0207f4a4EP5Vec2si kind:function(arm,size=0x98) addr:0x207f4a4
@@ -509,9 +509,9 @@ _ZN10MapManager18func_ov00_02082538Ev kind:function(arm,size=0x5c) addr:0x208253
_ZN10MapManager18func_ov00_02082594Ev kind:function(arm,size=0x18) addr:0x2082594
_ZN10MapManager18func_ov00_020825acEv kind:function(arm,size=0x18) addr:0x20825ac
_ZN10MapManager17GetCourseFilePathEPcS0_ kind:function(arm,size=0x20) addr:0x20825c4
_ZN10MapManager18func_ov00_020825e4Eii kind:function(arm,size=0x30) addr:0x20825e4
_ZN10MapManager18func_ov00_02082614Eii kind:function(arm,size=0x24) addr:0x2082614
_ZN10MapManager16MapData_vfunc_b0Ev kind:function(arm,size=0x18) addr:0x2082638
_ZN10MapManager18func_ov00_020825e4EiPc kind:function(arm,size=0x30) addr:0x20825e4
_ZN10MapManager18func_ov00_02082614EPci kind:function(arm,size=0x24) addr:0x2082614
_ZN10MapManager16MapData_vfunc_b0Eii kind:function(arm,size=0x18) addr:0x2082638
_ZN10MapManager18func_ov00_02082650Eiii kind:function(arm,size=0x10) addr:0x2082650
_ZN10MapManager18func_ov00_02082660Eii kind:function(arm,size=0x10) addr:0x2082660
_ZN10MapManager18func_ov00_02082670Eii kind:function(arm,size=0x10) addr:0x2082670
@@ -520,11 +520,11 @@ _ZN10MapManager18func_ov00_020826a0Eiii kind:function(arm,size=0x20) addr:0x2082
_ZN10MapManager9CreateMapEiii kind:function(arm,size=0x100) addr:0x20826c0
_ZN10MapManager10DestroyMapEv kind:function(arm,size=0x30) addr:0x20827c0
_ZN10MapManager16MapData_vfunc_44Ev kind:function(arm,size=0x18) addr:0x20827f0
_ZN10MapManager18func_ov00_02082808Ev kind:function(arm,size=0xb8) addr:0x2082808
_ZN10MapManager18func_ov00_02082808Eiii kind:function(arm,size=0xb8) addr:0x2082808
_ZN10MapManager16MapData_vfunc_7cEv kind:function(arm,size=0x20) addr:0x20828c0
_ZN10MapManager16MapData_vfunc_84Ev kind:function(arm,size=0x18) addr:0x20828e0
_ZN10MapManager16MapData_vfunc_84Ei kind:function(arm,size=0x18) addr:0x20828e0
_ZN10MapManager18func_ov00_020828f8EPi kind:function(arm,size=0x10) addr:0x20828f8
_ZN10MapManager20GetCourseData_Unk_b0Ev kind:function(arm,size=0xc) addr:0x2082908
_ZN10MapManager10GetNumMapsEv kind:function(arm,size=0xc) addr:0x2082908
_ZN10MapManager18func_ov00_02082914Ei kind:function(arm,size=0x1b8) addr:0x2082914
_ZN10MapManager18func_ov00_02082accEv kind:function(arm,size=0x10) addr:0x2082acc
_ZN10MapManager18func_ov00_02082adcEv kind:function(arm,size=0x18) addr:0x2082adc
+7 -7
View File
@@ -362,7 +362,7 @@ _ZN7MapBase8vfunc_78Ev kind:function(arm,size=0x8) addr:0x207f2ec
_ZN7MapBase8vfunc_7cEv kind:function(arm,size=0x8) addr:0x207f2f4
_ZN7MapBase8vfunc_80Ev kind:function(arm,size=0x8) addr:0x207f2fc
_ZN7MapBase8vfunc_84Ei kind:function(arm,size=0x28) addr:0x207f304
_ZN7MapBase18func_ov00_0207f38cEi kind:function(arm,size=0x38) addr:0x207f32c
_ZN7MapBase18func_ov00_0207f38cEPi kind:function(arm,size=0x38) addr:0x207f32c
_ZN7MapBase8vfunc_90Eiii kind:function(arm,size=0xdc) addr:0x207f364
_ZN7MapBase8vfunc_94Ev kind:function(arm,size=0x4) addr:0x207f440
_ZN7MapBase18func_ov00_0207f4a4EP5Vec2si kind:function(arm,size=0x98) addr:0x207f444
@@ -509,9 +509,9 @@ _ZN10MapManager18func_ov00_02082538Ev kind:function(arm,size=0x5c) addr:0x20824d
_ZN10MapManager18func_ov00_02082594Ev kind:function(arm,size=0x18) addr:0x2082534
_ZN10MapManager18func_ov00_020825acEv kind:function(arm,size=0x18) addr:0x208254c
_ZN10MapManager17GetCourseFilePathEPcS0_ kind:function(arm,size=0x20) addr:0x2082564
_ZN10MapManager18func_ov00_020825e4Eii kind:function(arm,size=0x30) addr:0x2082584
_ZN10MapManager18func_ov00_02082614Eii kind:function(arm,size=0x24) addr:0x20825b4
_ZN10MapManager16MapData_vfunc_b0Ev kind:function(arm,size=0x18) addr:0x20825d8
_ZN10MapManager18func_ov00_020825e4EiPc kind:function(arm,size=0x30) addr:0x2082584
_ZN10MapManager18func_ov00_02082614EPci kind:function(arm,size=0x24) addr:0x20825b4
_ZN10MapManager16MapData_vfunc_b0Eii kind:function(arm,size=0x18) addr:0x20825d8
_ZN10MapManager18func_ov00_02082650Eiii kind:function(arm,size=0x10) addr:0x20825f0
_ZN10MapManager18func_ov00_02082660Eii kind:function(arm,size=0x10) addr:0x2082600
_ZN10MapManager18func_ov00_02082670Eii kind:function(arm,size=0x10) addr:0x2082610
@@ -520,11 +520,11 @@ _ZN10MapManager18func_ov00_020826a0Eiii kind:function(arm,size=0x20) addr:0x2082
_ZN10MapManager9CreateMapEiii kind:function(arm,size=0x100) addr:0x2082660
_ZN10MapManager10DestroyMapEv kind:function(arm,size=0x30) addr:0x2082760
_ZN10MapManager16MapData_vfunc_44Ev kind:function(arm,size=0x18) addr:0x2082790
_ZN10MapManager18func_ov00_02082808Ev kind:function(arm,size=0xb8) addr:0x20827a8
_ZN10MapManager18func_ov00_02082808Eiii kind:function(arm,size=0xb8) addr:0x20827a8
_ZN10MapManager16MapData_vfunc_7cEv kind:function(arm,size=0x20) addr:0x2082860
_ZN10MapManager16MapData_vfunc_84Ev kind:function(arm,size=0x18) addr:0x2082880
_ZN10MapManager16MapData_vfunc_84Ei kind:function(arm,size=0x18) addr:0x2082880
_ZN10MapManager18func_ov00_020828f8EPi kind:function(arm,size=0x10) addr:0x2082898
_ZN10MapManager20GetCourseData_Unk_b0Ev kind:function(arm,size=0xc) addr:0x20828a8
_ZN10MapManager10GetNumMapsEv kind:function(arm,size=0xc) addr:0x20828a8
_ZN10MapManager18func_ov00_02082914Ei kind:function(arm,size=0x1b8) addr:0x20828b4
_ZN10MapManager18func_ov00_02082accEv kind:function(arm,size=0x10) addr:0x2082a6c
_ZN10MapManager18func_ov00_02082adcEv kind:function(arm,size=0x18) addr:0x2082a7c
+1 -1
View File
@@ -43,7 +43,7 @@ public:
/* 090 */ unk32 mUnk_090;
/* 094 */ unk32 mUnk_094;
/* 098 */ AABB mBounds;
/* 0b0 */ s8 mNumMaps;
/* 0b0 */ u8 mNumMaps;
/* 0b1 */ unk8 mUnk_0b1;
/* 0b2 */ unk8 mUnk_0b2;
/* 0b3 */ unk8 mUnk_0b3;
+2 -1
View File
@@ -8,9 +8,10 @@
#include "System/SysNew.hpp"
class Entrance : public SysObject {
public:
/* 00 */ Vec3p mPos;
/* 0c */ unk16 mAngle;
/* 0e */ s8 mUnk_0e;
/* 0e */ s8 mId;
/* 0f */ unk8 mUnk_0f;
/* 10 */ s32 mUnk_10;
/* 14 */
+4 -4
View File
@@ -145,20 +145,20 @@ public:
/* 70 */ virtual unk32 vfunc_70(Vec3p *param_2);
/* 74 */ virtual s32 *vfunc_74(Vec3p *param_2);
/* 78 */ virtual unk32 vfunc_78();
/* 7c */ virtual unk32 vfunc_7c();
/* 7c */ virtual void vfunc_7c();
/* 80 */ virtual unk32 vfunc_80();
/* 84 */ virtual void vfunc_84(unk32 param_2);
/* 88 */ virtual unk32 vfunc_88();
/* 8c */ virtual unk32 vfunc_8c();
/* 90 */ virtual unk8 vfunc_90(unk32 param_2, unk32 param_3, unk32 param_4);
/* 94 */ virtual void vfunc_94();
/* 98 */ virtual void vfunc_98();
/* 98 */ virtual void vfunc_98(unk32 param_2, unk32 param_3, unk32 param_4);
/* 9c */ virtual void vfunc_9c();
/* a0 */ virtual void vfunc_a0();
/* a4 */ virtual unk32 vfunc_a4();
/* a8 */ virtual void vfunc_a8();
/* ac */ virtual void vfunc_ac();
/* b0 */ virtual unk8 vfunc_b0(unk32 param_2, unk32 param_3);
/* b0 */ virtual void vfunc_b0(unk32 param_2, unk32 param_3);
/* b4 */ virtual void vfunc_b4();
/* b8 */ virtual unk32 vfunc_b8();
/* bc */ virtual void vfunc_bc();
@@ -180,7 +180,7 @@ public:
static unk8 func_ov00_0207f100();
bool func_ov00_0207f104(unk32 param_2, unk32 param_3);
unk32 func_ov00_0207f1f4(Vec3p *param_2, unk32 *param_3);
unk8 func_ov00_0207f38c(unk32 param_2);
bool func_ov00_0207f38c(s32 *param_2);
void func_ov00_0207f4a4(Vec2s *param_2, unk32 param_3);
static void func_ov00_0207f53c(Vec2s *param_1, MapBase *param_2, Vec3p *param_3);
static void func_ov00_0207f588(Vec2s *param_1, MapBase *param_2, Vec2b *param_3, unk32 param_4);
+15 -15
View File
@@ -55,32 +55,32 @@ public:
s32 func_ov00_02082424();
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();
bool func_ov00_020824cc(s32 param_2);
s32 func_ov00_02082504();
unk8 *func_ov00_02082538();
void func_ov00_02082594();
void func_ov00_020825ac();
s32 GetCourseFilePath(char *courseName, char *buf);
unk8 func_ov00_020825e4(unk32 param_2, unk32 param_3);
unk8 func_ov00_02082614(unk32 param_2, unk32 param_3);
unk8 MapData_vfunc_b0();
void func_ov00_020825e4(unk32 param_2, char *buf);
void func_ov00_02082614(char *param_2, unk32 param_3);
void MapData_vfunc_b0(unk32 param_2, unk32 param_3);
void func_ov00_02082650(s32 param_2, s32 param_3, unk32 param_4);
void func_ov00_02082660(s32 param_2, s32 param_3);
void func_ov00_02082670(unk32 param_2, s32 param_3);
void func_ov00_02082680(unk32 param_2, unk32 param_3);
unk8 func_ov00_020826a0(unk32 param_2, unk32 param_3, unk32 param_4);
unk8 CreateMap(unk32 mapType, unk32 param_3, unk32 param_4);
unk8 DestroyMap();
unk8 MapData_vfunc_44();
static unk8 func_ov00_02082808();
unk8 MapData_vfunc_7c();
unk8 MapData_vfunc_84();
void func_ov00_020826a0(unk32 param_2, unk32 param_3, unk32 param_4);
void CreateMap(unk32 mapType, unk32 param_3, unk32 param_4);
void DestroyMap();
void MapData_vfunc_44();
void func_ov00_02082808(s32 param_2, unk32 param_3, unk32 param_4);
void MapData_vfunc_7c();
void MapData_vfunc_84(unk32 param_2);
bool func_ov00_020828f8(s32 *param_2);
unk8 GetCourseData_Unk_b0();
u8 GetNumMaps();
s32 func_ov00_02082914(unk32 param_2);
unk8 func_ov00_02082acc();
void func_ov00_02082acc();
unk32 *func_ov00_02082adc();
unk8 func_ov00_02082af4();
void func_ov00_02082af4();
bool func_ov00_02082b3c(s32 param_2);
u8 func_ov00_02082d08();
unk8 GetCourseData_Unk_1c();
+4 -4
View File
@@ -11,7 +11,7 @@ void MapBase::func_ov00_0207ddf8(bool param_2) {}
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) {}
void MapBase::vfunc_b0(unk32 param_2, unk32 param_3) {}
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) {}
@@ -41,10 +41,10 @@ unk32 MapBase::vfunc_a4() {}
void MapBase::vfunc_a8() {}
void MapBase::vfunc_ac() {}
unk32 MapBase::vfunc_78() {}
unk32 MapBase::vfunc_7c() {}
void MapBase::vfunc_7c() {}
unk32 MapBase::vfunc_80() {}
void MapBase::vfunc_84(unk32 param_2) {}
unk8 MapBase::func_ov00_0207f38c(unk32 param_2) {}
bool MapBase::func_ov00_0207f38c(s32 *param_2) {}
unk8 MapBase::vfunc_90(unk32 param_2, unk32 param_3, unk32 param_4) {}
void MapBase::vfunc_94() {}
void MapBase::func_ov00_0207f4a4(Vec2s *param_2, unk32 param_3) {}
@@ -103,7 +103,7 @@ void MapBase_Unk2::func_ov00_02080ad0(TriggerBase **param_2, TriggerBase **param
unk8 MapBase::func_ov00_02080b24(Vec2b *param_2) {}
void MapBase::func_ov00_02080d08(unk32 param_2) {}
void MapBase::vfunc_bc() {}
void MapBase::vfunc_98() {}
void MapBase::vfunc_98(unk32 param_2, unk32 param_3, unk32 param_4) {}
void MapBase::vfunc_c0() {}
bool MapBase::TriggerOfType_vfunc_10(unk32 type) {}
unk32 TriggerBase::vfunc_10() {}
+264 -26
View File
@@ -85,32 +85,270 @@ ARM bool MapManager::func_ov00_02082494(s32 param_2) {
return false;
}
unk8 MapManager::func_ov00_020824cc(unk32 param_2) {}
unk8 MapManager::func_ov00_02082504() {}
unk8 *MapManager::func_ov00_02082538() {}
void MapManager::func_ov00_02082594() {}
void MapManager::func_ov00_020825ac() {}
s32 MapManager::GetCourseFilePath(char *courseName, char *buf) {}
unk8 MapManager::func_ov00_020825e4(unk32 param_2, unk32 param_3) {}
unk8 MapManager::func_ov00_02082614(unk32 param_2, unk32 param_3) {}
unk8 MapManager::MapData_vfunc_b0() {}
void MapManager::func_ov00_02082650(s32 param_2, s32 param_3, unk32 param_4) {}
void MapManager::func_ov00_02082660(s32 param_2, s32 param_3) {}
void MapManager::func_ov00_02082670(unk32 param_2, s32 param_3) {}
void MapManager::func_ov00_02082680(unk32 param_2, unk32 param_3) {}
unk8 MapManager::func_ov00_020826a0(unk32 param_2, unk32 param_3, unk32 param_4) {}
unk8 MapManager::CreateMap(unk32 mapType, unk32 param_3, unk32 param_4) {}
unk8 MapManager::DestroyMap() {}
unk8 MapManager::MapData_vfunc_44() {}
unk8 MapManager::func_ov00_02082808() {}
unk8 MapManager::MapData_vfunc_7c() {}
unk8 MapManager::MapData_vfunc_84() {}
bool MapManager::func_ov00_020828f8(s32 *param_2) {}
unk8 MapManager::GetCourseData_Unk_b0() {}
s32 MapManager::func_ov00_02082914(unk32 param_2) {}
unk8 MapManager::func_ov00_02082acc() {}
unk32 *MapManager::func_ov00_02082adc() {}
unk8 MapManager::func_ov00_02082af4() {}
ARM bool MapManager::func_ov00_020824cc(s32 param_2) {
s32 var = this->mMap->vfunc_4c();
if (var == 2) {
bool state;// = this->mMap->func_ov015_02129c44(param_2); // Does not exist.
return state;
}
return false;
}
ARM s32 MapManager::func_ov00_02082504() {
s32 var = this->mMap->vfunc_4c();
if (var == 2) {
return (s32) this->mMap->mUnk_1ac;
}
return 0;
}
ARM unk8 *MapManager::func_ov00_02082538() {
unk8 var0[12];
s32 var1 = this->mMap->vfunc_4c();
if (var1 != 2) {
return var0;
}
return this->mMap->mUnk_1a0;
// Reference to gPlayerPos in Ghidra, but not used. (See overlay_d_0::0x2082538)
}
ARM void MapManager::func_ov00_02082594() {
// func_ov000_0208d620(DWORD_027e0f68) does not exist.
return;
}
ARM void MapManager::func_ov00_020825ac() {
// func_ov000_0208d680(DWORD_027e0f68) does not exist.
return;
}
ARM s32 MapManager::GetCourseFilePath(char *courseName, char *buf) {
// s32 var = sprintf(buf, "Map/%s/course.bin", courseName); // Should we manually define sprintf?
// return var;
}
ARM void MapManager::func_ov00_020825e4(unk32 param_2, char *buf) {
// param2 unused.
// return value of GetCourseFilePath unused.
char *courseName; // = (char *) func_ov000_0209d71c(*(unk32 *) DWORD_027e0f7c) does not exist.
this->GetCourseFilePath(courseName, buf);
}
ARM void MapManager::func_ov00_02082614(char *param_2, unk32 param_3) {
this->mCourse->func_ov00_0207ce20(param_3, 0, param_2, 4);
}
ARM void MapManager::MapData_vfunc_b0(unk32 param_2, unk32 param_3) {
this->mMap->vfunc_b0(param_2, param_3);
}
ARM void MapManager::func_ov00_02082650(s32 param_2, s32 param_3, unk32 param_4) {
this->mMap->func_ov00_0208005c(param_2, param_3, param_4);
}
ARM void MapManager::func_ov00_02082660(s32 param_2, s32 param_3) {
this->mMap->func_ov00_0208007c(param_2, param_3);
}
ARM void MapManager::func_ov00_02082670(unk32 param_2, s32 param_3) {
this->mMap->func_ov00_0208006c(param_2, param_3);
}
ARM void MapManager::func_ov00_02082680(unk32 param_2, unk32 param_3) {
this->mMap->vfunc_98(param_2, 5, param_3);
}
ARM void MapManager::func_ov00_020826a0(unk32 param_2, unk32 param_3, unk32 param_4) {
this->mMap->vfunc_98(param_2, 7, param_3 /*, param_4*/);
// vfunc_98 takes either three params or four ??? This doesn't make sense
// objdiff says 100%
}
ARM void MapManager::CreateMap(unk32 mapType, unk32 param_3, unk32 param_4) {
MapBase *mapBase;
if (this->mMap == NULL) {
switch (mapType) {
case 0:
// mapBase = (MapBase *) SysObject::operator_new(0x1dc, (astruct_19 **)(DWORD_027e0ce0 + 4), 4);
// What is astruct_19 ** ? What is DWORD_027e0ce0 ?
if (mapBase != NULL) {
// mapBase = (MapBase *)func_ov018_0215b4a0(mapBase, param_3, param_4); // Does not exist.
}
this->mMap = mapBase;
return;
case 1: break;
case 2:
// mapBase = (MapBase *) SysObject::operator_new(0x1b0, (astruct_19 **)(DWORD_027e0ce0 + 4), 4);
if (mapBase != NULL) {
// mapBase = (MapBase *)func_ov015_02128dd8(mapBase, param_3, param_4); // Does not exist.
}
this->mMap = mapBase;
return;
case 3: break;
case 4:
// mapBase = (MapBase *) SysObject::operator_new(0x790, (astruct_19 **)(DWORD_027e0ce0 + 4), 4);
if (mapBase != NULL) {
// mapBase = (MapBase *)func_ov012_0212b358(mapBase, param_3, param_4); // Does not exist.
}
this->mMap = mapBase;
return;
}
// mapBase = (MapBase *) SysObject::operator_new(0x790, (astruct_19 **)(DWORD_027e0ce0 + 4), 4);
if (mapBase != NULL) {
// mapBase = (MapBase *)func_ov017_0215b4e8(mapBase, param_3, param_4); // Does not exist.
}
this->mMap = mapBase;
}
return;
}
ARM void MapManager::DestroyMap() {
if (this->mMap == NULL) {
return;
} else {
// this->mMap->vfunc_04(); Doesn't exist.
}
}
ARM void MapManager::MapData_vfunc_44() {
this->mMap->vfunc_44();
}
ARM void MapManager::func_ov00_02082808(s32 param_2, unk32 param_3, unk32 param_4) {
// How to define PTR_027e0d38 ?
// if (*(int*)(*(int*)PTR_027e0d38 + 0x14) == 1) {
// return;
// }
s32 var1; // = func_ov00_02084740()
s32 var2;
if (param_2 == 0) {
// var2 = thunk_FUN_0201f91c(DWORD_overlay_d_0_bss__020eec68); // What are these?
if (var1 == var2) {
return;
}
// func_ov00_020d70a4(DWORD_overlay_d_0_bss__020eec68, var1, 0, 0x7f, param_4); // And these?
} else {
// var2 = func_ov00_020a5e9c(*(s32 *) PTR_027e0d38 + 0xc);
if (var2 == 0) {
// func_ov015_021849a4(DWORD_overlay_d_15_bss__02190458);
}
// func_ov00_020a5e9c(DWORD_overlay_d_0_bss__020eec68, var1, 0, 0x7f, param_4);
}
// var1 = func_ov00_020a5e9c(*(s32 *) PTR_027e0d38 + 0xc);
if (var1 == 0) {
return;
}
// func_ov00_020d72b8(DWORD_overlay_d_0_bss__020eec68);
}
ARM void MapManager::MapData_vfunc_7c() {
this->mMap->vfunc_7c();
}
ARM void MapManager::MapData_vfunc_84(unk32 param_2) {
this->mMap->vfunc_84(param_2);
}
ARM bool MapManager::func_ov00_020828f8(s32 *param_2) {
return this->mMap->func_ov00_0207f38c(param_2);
}
ARM u8 MapManager::GetNumMaps() {
return this->mCourse->mNumMaps;
}
ARM s32 MapManager::func_ov00_02082914(unk32 param_2) {
int iVar1;
int iVar2;
int iVar3;
int iVar4;
int local_50;
int local_48;
Entrance local_44;
Entrance local_30;
switch (param_2) {
case 0xfa:
// iVar1 = *(int *)(*(int *) PTR_027e0d38 + 0x28); // define PTR_027e0d38
local_30.mPos.x = *(int *) (iVar1 + 0x5c);
local_30.mPos.y = *(int *) (iVar1 + 0x60);
local_30.mPos.z = *(int *) (iVar1 + 100);
local_30.mAngle = *(unk16 *) (iVar1 + 0x68);
local_30.mId = *(u8 *) (iVar1 + 0x6a);
local_30.mUnk_10 = *(int *) (iVar1 + 0x6c);
iVar1 = this->mMap->AddEntrance(&local_30);
return iVar1;
case 0xfb: break;
case 0xfc: break;
case 0xfd: break;
case 0xfe: break;
default: goto switchD_overlay_d_0;
}
local_44.mId = 0xff;
local_44.mUnk_10 = 0;
// iVar1 = *(int *) (*(int *) PTR_027e0d38 + 0x28); // define PTR_027e0d38
local_50 = *(int *) (iVar1 + 0x38);
iVar2 = *(int *) (iVar1 + 0x3c);
local_48 = *(int *) (iVar1 + 0x40);
iVar1 = 0x2000;
iVar3 = 0x2000;
iVar4 = 0xfd;
if (this->mCourse->mType == 2) {
iVar1 = this->mMap->vfunc_88();
iVar1 = iVar1 + 0xa000;
iVar3 = this->mMap->vfunc_8c();
iVar3 = iVar3 + 0xa000;
iVar4 = 0xfe;
}
local_44.mAngle = 0;
switch (param_2) {
case 0xfb:
local_48 = this->GetMapMaxZ();
local_48 = local_48 - iVar3;
local_44.mAngle = 0x8000;
break;
case 0xfc:
local_48 = this->GetMapMinZ();
local_48 = iVar3 + local_48;
local_44.mAngle = 0;
break;
case 0xfd:
local_50 = this->GetMapMaxX();
local_50 = local_50 - iVar1;
local_44.mAngle = 0xc000;
break;
case 0xfe:
local_50 = this->GetMapMinX();
local_50 = iVar1 + local_50;
local_44.mAngle = 0x4000;
}
local_44.mId = (u8) param_2;
local_44.mPos.x = local_50;
local_44.mPos.z = local_48;
local_44.mPos.y = iVar2;
local_44.mUnk_10 = iVar4;
// this = (MapManager *) this->mMap->AddEntrance(&local_44); // huh ????
switchD_overlay_d_0:
return (int) this; // what ???????
}
ARM void MapManager::func_ov00_02082acc() {
this->mCourse->func_ov00_0207d7bc();
}
ARM unk32 *MapManager::func_ov00_02082adc() {
// func_ov000_02096418(DWORD_027e0f70); // Does not exist.
}
ARM void MapManager::func_ov00_02082af4() {
// func_ov00_02082af4(DWORD_027e0f68) // Does not exist.
this->mMap->vfunc_48();
// this->func_ov00_02082808(0, ?, ?) // Only 1/3 params specified.
this->mUnk_0a = 1;
this->mUnk_0b = 0;
}
bool MapManager::func_ov00_02082b3c(s32 param_2) {}
ARM u8 MapManager::func_ov00_02082d08() {