diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 5954466c..f2f7de0e 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -615,17 +615,17 @@ _ZN10MapManager18func_ov00_02083e34Ecci kind:function(arm,size=0x24) addr:0x2083 _ZN10MapManager16MapData_vfunc_60Ev kind:function(arm,size=0x18) addr:0x2083e58 _ZN10MapManager18func_ov00_02083e70Ev kind:function(arm,size=0x70) addr:0x2083e70 _ZN10MapManager16MapData_vfunc_68Ev kind:function(arm,size=0x18) addr:0x2083ee0 -_ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_i kind:function(arm,size=0x4c) addr:0x2083ef8 +_ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_ kind:function(arm,size=0x4c) addr:0x2083ef8 _ZN10MapManager18func_ov00_02083f44EP5Vec3p kind:function(arm,size=0x3c) addr:0x2083f44 -_ZN10MapManager16MapData_vfunc_6cEv kind:function(arm,size=0x18) addr:0x2083f80 -_ZN10MapManager16MapData_vfunc_70Ev kind:function(arm,size=0x18) addr:0x2083f98 +_ZN10MapManager16MapData_vfunc_6cEiii kind:function(arm,size=0x18) addr:0x2083f80 +_ZN10MapManager16MapData_vfunc_70EP5Vec3p kind:function(arm,size=0x18) addr:0x2083f98 _ZN10MapManager18func_ov00_02083fb0EPjPS_P5Vec3p kind:function(arm,size=0x74) addr:0x2083fb0 -_ZN10MapManager18func_ov00_02084024EiP4AABB kind:function(arm,size=0x64) addr:0x2084024 +_ZN10MapManager18func_ov00_02084024EP5Vec2bP4AABB kind:function(arm,size=0x64) addr:0x2084024 _ZN10MapManager16MapData_vfunc_54Ev kind:function(arm,size=0x18) addr:0x2084088 _ZN10MapManager18func_ov00_020840a0Ecci kind:function(arm,size=0x24) addr:0x20840a0 _ZN10MapManager16MapData_vfunc_78Ev kind:function(arm,size=0x18) addr:0x20840c4 _ZN10MapManager18func_ov00_020840dcEv kind:function(arm,size=0x24) addr:0x20840dc -_ZN10MapManager18func_ov00_02084100EiPS_ kind:function(arm,size=0x14) addr:0x2084100 +_ZN10MapManager18func_ov00_02084100EPiPS_ kind:function(arm,size=0x14) addr:0x2084100 _ZN10MapManager17GetMapData_Unk_48Ev kind:function(arm,size=0xc) addr:0x2084114 _ZN10MapManager17GetMapData_Unk_4cEv kind:function(arm,size=0xc) addr:0x2084120 _ZN10MapManager18func_ov00_0208412cEv kind:function(arm,size=0x10) addr:0x208412c @@ -635,19 +635,19 @@ _ZN10MapManager18func_ov00_02084164Ev kind:function(arm,size=0x1a8) addr:0x20841 _ZN10MapManager17GetMapData_Unk_0aEv kind:function(arm,size=0xc) addr:0x208430c _ZN10MapManager17GetMapData_Unk_0bEv kind:function(arm,size=0xc) addr:0x2084318 _ZN10MapManager16MapData_vfunc_a4Ev kind:function(arm,size=0x18) addr:0x2084324 -_ZN10MapManager18func_ov00_0208433cEP5Vec3pi kind:function(arm,size=0x60) addr:0x208433c -_ZN10MapManager18func_ov00_0208439cEv kind:function(arm,size=0x50) addr:0x208439c +_ZN10MapManager18func_ov00_0208433cEP5Vec3pS1_ kind:function(arm,size=0x60) addr:0x208433c +_ZN10MapManager18func_ov00_0208439cEP5Vec2sP5Vec3p kind:function(arm,size=0x50) addr:0x208439c _ZN10MapManager18func_ov00_020843ecEPi kind:function(arm,size=0x2ac) addr:0x20843ec _ZN10MapManager17GetMapData_Unk_38Ev kind:function(arm,size=0xc) addr:0x2084698 _ZN10MapManager18func_ov00_020846a4Ev kind:function(arm,size=0x5c) addr:0x20846a4 -_ZN10MapManager18func_ov00_02084700Ev kind:function(arm,size=0x40) addr:0x2084700 +_ZN10MapManager18func_ov00_02084700EPi kind:function(arm,size=0x40) addr:0x2084700 _ZN10MapManager18func_ov00_02084740Ev kind:function(arm,size=0xa0) addr:0x2084740 _ZN10MapManager18func_ov00_020847e0Ev kind:function(arm,size=0x10) addr:0x20847e0 _ZN10MapManager18func_ov00_020847f0Ev kind:function(arm,size=0x48) addr:0x20847f0 _ZN10MapManager18func_ov00_02084838Ev kind:function(arm,size=0x80) addr:0x2084838 _ZN10MapManager18func_ov00_020848b8Ev kind:function(arm,size=0x6c) addr:0x20848b8 _ZN10MapManager18func_ov00_02084924Ej kind:function(arm,size=0x10) addr:0x2084924 -_ZN10MapManager18func_ov00_02084934Ev kind:function(arm,size=0x50) addr:0x2084934 +_ZN10MapManager18func_ov00_02084934EPi kind:function(arm,size=0x50) addr:0x2084934 _ZN10MapManager17GetMapData_Unk_06Ev kind:function(arm,size=0xc) addr:0x2084984 _ZN10MapManager17GetMapData_Unk_07Ev kind:function(arm,size=0xc) addr:0x2084990 _ZN10MapManager18func_ov00_0208499cEv kind:function(arm,size=0x24) addr:0x208499c diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 5aa4da4f..68f84fbf 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -615,17 +615,17 @@ _ZN10MapManager18func_ov00_02083e34Ecci kind:function(arm,size=0x24) addr:0x2083 _ZN10MapManager16MapData_vfunc_60Ev kind:function(arm,size=0x18) addr:0x2083df8 _ZN10MapManager18func_ov00_02083e70Ev kind:function(arm,size=0x70) addr:0x2083e10 _ZN10MapManager16MapData_vfunc_68Ev kind:function(arm,size=0x18) addr:0x2083e80 -_ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_i kind:function(arm,size=0x4c) addr:0x2083e98 +_ZN10MapManager18func_ov00_02083ef8EP5Vec3pS1_ kind:function(arm,size=0x4c) addr:0x2083e98 _ZN10MapManager18func_ov00_02083f44EP5Vec3p kind:function(arm,size=0x3c) addr:0x2083ee4 -_ZN10MapManager16MapData_vfunc_6cEv kind:function(arm,size=0x18) addr:0x2083f20 -_ZN10MapManager16MapData_vfunc_70Ev kind:function(arm,size=0x18) addr:0x2083f38 +_ZN10MapManager16MapData_vfunc_6cEiii kind:function(arm,size=0x18) addr:0x2083f20 +_ZN10MapManager16MapData_vfunc_70EP5Vec3p kind:function(arm,size=0x18) addr:0x2083f38 _ZN10MapManager18func_ov00_02083fb0EPjPS_P5Vec3p kind:function(arm,size=0x74) addr:0x2083f50 -_ZN10MapManager18func_ov00_02084024EiP4AABB kind:function(arm,size=0x64) addr:0x2083fc4 +_ZN10MapManager18func_ov00_02084024EP5Vec2bP4AABB kind:function(arm,size=0x64) addr:0x2083fc4 _ZN10MapManager16MapData_vfunc_54Ev kind:function(arm,size=0x18) addr:0x2084028 _ZN10MapManager18func_ov00_020840a0Ecci kind:function(arm,size=0x24) addr:0x2084040 _ZN10MapManager16MapData_vfunc_78Ev kind:function(arm,size=0x18) addr:0x2084064 _ZN10MapManager18func_ov00_020840dcEv kind:function(arm,size=0x24) addr:0x208407c -_ZN10MapManager18func_ov00_02084100EiPS_ kind:function(arm,size=0x14) addr:0x20840a0 +_ZN10MapManager18func_ov00_02084100EPiPS_ kind:function(arm,size=0x14) addr:0x20840a0 _ZN10MapManager17GetMapData_Unk_48Ev kind:function(arm,size=0xc) addr:0x20840b4 _ZN10MapManager17GetMapData_Unk_4cEv kind:function(arm,size=0xc) addr:0x20840c0 _ZN10MapManager18func_ov00_0208412cEv kind:function(arm,size=0x10) addr:0x20840cc @@ -635,19 +635,19 @@ _ZN10MapManager18func_ov00_02084164Ev kind:function(arm,size=0x1a8) addr:0x20841 _ZN10MapManager17GetMapData_Unk_0aEv kind:function(arm,size=0xc) addr:0x20842ac _ZN10MapManager17GetMapData_Unk_0bEv kind:function(arm,size=0xc) addr:0x20842b8 _ZN10MapManager16MapData_vfunc_a4Ev kind:function(arm,size=0x18) addr:0x20842c4 -_ZN10MapManager18func_ov00_0208433cEP5Vec3pi kind:function(arm,size=0x60) addr:0x20842dc -_ZN10MapManager18func_ov00_0208439cEv kind:function(arm,size=0x50) addr:0x208433c +_ZN10MapManager18func_ov00_0208433cEP5Vec3pS1_ kind:function(arm,size=0x60) addr:0x20842dc +_ZN10MapManager18func_ov00_0208439cEP5Vec2sP5Vec3p kind:function(arm,size=0x50) addr:0x208433c _ZN10MapManager18func_ov00_020843ecEPi kind:function(arm,size=0x2ac) addr:0x208438c _ZN10MapManager17GetMapData_Unk_38Ev kind:function(arm,size=0xc) addr:0x2084638 _ZN10MapManager18func_ov00_020846a4Ev kind:function(arm,size=0x5c) addr:0x2084644 -_ZN10MapManager18func_ov00_02084700Ev kind:function(arm,size=0x40) addr:0x20846a0 +_ZN10MapManager18func_ov00_02084700EPi kind:function(arm,size=0x40) addr:0x20846a0 _ZN10MapManager18func_ov00_02084740Ev kind:function(arm,size=0xa0) addr:0x20846e0 _ZN10MapManager18func_ov00_020847e0Ev kind:function(arm,size=0x10) addr:0x2084780 _ZN10MapManager18func_ov00_020847f0Ev kind:function(arm,size=0x48) addr:0x2084790 _ZN10MapManager18func_ov00_02084838Ev kind:function(arm,size=0x80) addr:0x20847d8 _ZN10MapManager18func_ov00_020848b8Ev kind:function(arm,size=0x6c) addr:0x2084858 _ZN10MapManager18func_ov00_02084924Ej kind:function(arm,size=0x10) addr:0x20848c4 -_ZN10MapManager18func_ov00_02084934Ev kind:function(arm,size=0x50) addr:0x20848d4 +_ZN10MapManager18func_ov00_02084934EPi kind:function(arm,size=0x50) addr:0x20848d4 _ZN10MapManager17GetMapData_Unk_06Ev kind:function(arm,size=0xc) addr:0x2084924 _ZN10MapManager17GetMapData_Unk_07Ev kind:function(arm,size=0xc) addr:0x2084930 _ZN10MapManager18func_ov00_0208499cEv kind:function(arm,size=0x24) addr:0x208493c diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp index 2d62a670..b71f2b06 100644 --- a/include/Map/MapBase.hpp +++ b/include/Map/MapBase.hpp @@ -140,10 +140,10 @@ public: /* 5c */ virtual unk32 vfunc_5c(); /* 60 */ virtual unk32 vfunc_60(); /* 64 */ virtual unk32 vfunc_64(); - /* 68 */ virtual unk8 vfunc_68(unk32 param_2, unk32 param_3); + /* 68 */ virtual unk8 vfunc_68(); /* 6c */ virtual unk8 vfunc_6c(unk32 param_2, unk32 param_3, unk32 param_4); /* 70 */ virtual unk32 vfunc_70(Vec3p *param_2); - /* 74 */ virtual s32 *vfunc_74(Vec3p *param_2); + /* 74 */ virtual s32 vfunc_74(Vec3p *param_2); /* 78 */ virtual unk32 vfunc_78(); /* 7c */ virtual void vfunc_7c(); /* 80 */ virtual unk32 vfunc_80(); diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index 7c3bd859..b9c7ae10 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -163,45 +163,45 @@ public: s32 func_ov00_02083c50(unk32 z); void func_ov00_02083c7c(Vec3p *param_2, u32 param_3); static void func_ov00_02083ce8(MapManager *param_1, s32 *param_2, u32 param_3, s32 param_4, u32 param_5); - unk8 func_ov00_02083e34(unk8 param_2, unk8 param_3, unk32 param_4); - unk8 MapData_vfunc_60(); - static unk8 func_ov00_02083e70(); + void func_ov00_02083e34(unk8 param_2, unk8 param_3, unk32 param_4); + unk32 MapData_vfunc_60(); + bool func_ov00_02083e70(); unk8 MapData_vfunc_68(); - s32 func_ov00_02083ef8(Vec3p *param_2, Vec3p *param_3, unk32 param_4); + s32 func_ov00_02083ef8(Vec3p *param_2, Vec3p *param_3); void func_ov00_02083f44(Vec3p *param_2); - unk8 MapData_vfunc_6c(); - unk8 MapData_vfunc_70(); + unk8 MapData_vfunc_6c(unk32 param_2, unk32 param_3, unk32 param_4); + unk8 MapData_vfunc_70(Vec3p *param_2); static unk8 func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3); - void func_ov00_02084024(unk32 param_2, AABB *param_3); + void func_ov00_02084024(Vec2b *param_2, AABB *param_3); unk8 MapData_vfunc_54(); unk8 func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4); unk8 MapData_vfunc_78(); - static unk8 func_ov00_020840dc(); - static unk8 func_ov00_02084100(unk32 param_1, MapManager *param_2); - unk8 GetMapData_Unk_48(); - unk8 GetMapData_Unk_4c(); + unk8 func_ov00_020840dc(); + static unk8 func_ov00_02084100(unk32 *param_1, MapManager *param_2); + u32 GetMapData_Unk_48(); + unk32 GetMapData_Unk_4c(); unk32 func_ov00_0208412c(); void func_ov00_0208413c(unk32 param_2); unk8 MapData_vfunc_58(); - static unk8 func_ov00_02084164(); - unk8 GetMapData_Unk_0a(); - unk8 GetMapData_Unk_0b(); + unk8 func_ov00_02084164(); + u8 GetMapData_Unk_0a(); + u8 GetMapData_Unk_0b(); unk8 MapData_vfunc_a4(); - unk8 func_ov00_0208433c(Vec3p *param_2, unk32 param_3); - static unk8 func_ov00_0208439c(); + unk8 func_ov00_0208433c(Vec3p *param_2, Vec3p *param_3); + unk8 func_ov00_0208439c(Vec2s *param_2, Vec3p *param_3); void func_ov00_020843ec(s32 *param_2); - unk8 GetMapData_Unk_38(); + unk32 GetMapData_Unk_38(); unk8 func_ov00_020846a4(); - static unk8 func_ov00_02084700(); + static unk8 func_ov00_02084700(s32 *param_1); unk8 func_ov00_02084740(); - unk8 func_ov00_020847e0(); + unk32 func_ov00_020847e0(); unk8 func_ov00_020847f0(); bool func_ov00_02084838(); bool func_ov00_020848b8(); void func_ov00_02084924(u32 param_2); - static unk8 func_ov00_02084934(); - unk8 GetMapData_Unk_06(); - unk8 GetMapData_Unk_07(); + bool func_ov00_02084934(s32 *param_2); + u8 GetMapData_Unk_06(); + u8 GetMapData_Unk_07(); unk8 func_ov00_0208499c(); unk8 func_ov00_020849c0(); unk8 func_ov00_020849dc(); diff --git a/src/00_Core/Map/MapBase.cpp b/src/00_Core/Map/MapBase.cpp index 76703c4f..2d9ca7d9 100644 --- a/src/00_Core/Map/MapBase.cpp +++ b/src/00_Core/Map/MapBase.cpp @@ -23,13 +23,13 @@ unk32 MapBase::vfunc_58() {} unk32 MapBase::vfunc_5c() {} unk32 MapBase::vfunc_60() {} unk32 MapBase::vfunc_64() {} -unk8 MapBase::vfunc_68(unk32 param_2, unk32 param_3) {} +unk8 MapBase::vfunc_68() {} unk8 MapBase::func_ov00_0207e940(unk8 *param_1) {} unk8 MapBase::func_ov00_0207e968() {} unk8 MapBase::func_ov00_0207e96c() {} unk8 MapBase::vfunc_6c(unk32 param_2, unk32 param_3, unk32 param_4) {} unk32 MapBase::vfunc_70(Vec3p *param_2) {} -s32 *MapBase::vfunc_74(Vec3p *param_2) {} +s32 MapBase::vfunc_74(Vec3p *param_2) {} unk8 MapBase::func_ov00_0207f100() {} bool MapBase::func_ov00_0207f104(unk32 param_2, unk32 param_3) {} unk32 MapBase::func_ov00_0207f1f4(Vec3p *param_2, unk32 *param_3) {} diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp index 07d22009..5d738880 100644 --- a/src/00_Core/Map/MapManager.cpp +++ b/src/00_Core/Map/MapManager.cpp @@ -1026,45 +1026,577 @@ ARM void MapManager::func_ov00_02083ce8(MapManager *param_1, s32 *param_2, u32 p param_2[1] = iVar2; } -unk8 MapManager::func_ov00_02083e34(unk8 param_2, unk8 param_3, unk32 param_4) {} -unk8 MapManager::MapData_vfunc_60() {} -unk8 MapManager::func_ov00_02083e70() {} -unk8 MapManager::MapData_vfunc_68() {} -s32 MapManager::func_ov00_02083ef8(Vec3p *param_2, Vec3p *param_3, unk32 param_4) {} -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) {} -unk8 MapManager::MapData_vfunc_54() {} -unk8 MapManager::func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4) {} -unk8 MapManager::MapData_vfunc_78() {} -unk8 MapManager::func_ov00_020840dc() {} -unk8 MapManager::func_ov00_02084100(unk32 param_1, MapManager *param_2) {} -unk8 MapManager::GetMapData_Unk_48() {} -unk8 MapManager::GetMapData_Unk_4c() {} -unk32 MapManager::func_ov00_0208412c() {} -void MapManager::func_ov00_0208413c(unk32 param_2) {} -unk8 MapManager::MapData_vfunc_58() {} -unk8 MapManager::func_ov00_02084164() {} -unk8 MapManager::GetMapData_Unk_0a() {} -unk8 MapManager::GetMapData_Unk_0b() {} -unk8 MapManager::MapData_vfunc_a4() {} -unk8 MapManager::func_ov00_0208433c(Vec3p *param_2, unk32 param_3) {} -unk8 MapManager::func_ov00_0208439c() {} -void MapManager::func_ov00_020843ec(s32 *param_2) {} -unk8 MapManager::GetMapData_Unk_38() {} -unk8 MapManager::func_ov00_020846a4() {} -unk8 MapManager::func_ov00_02084700() {} -unk8 MapManager::func_ov00_02084740() {} -unk8 MapManager::func_ov00_020847e0() {} -unk8 MapManager::func_ov00_020847f0() {} -bool MapManager::func_ov00_02084838() {} -bool MapManager::func_ov00_020848b8() {} -void MapManager::func_ov00_02084924(u32 param_2) {} -unk8 MapManager::func_ov00_02084934() {} -unk8 MapManager::GetMapData_Unk_06() {} -unk8 MapManager::GetMapData_Unk_07() {} +ARM void MapManager::func_ov00_02083e34(unk8 param_2, unk8 param_3, unk32 param_4) { + unk8 local_8; + unk8 local_7; // Unused. + unk16 uStack_6; + + uStack_6 = (unk16) ((u32) param_4 >> 0x10); + // _local_8 = CONCAT11(param_3, param_2); What is this? + this->mMap->vfunc_60(/*&local_8*/); // Doesn't take any params, so why? +} + +ARM unk32 MapManager::MapData_vfunc_60() { + return this->mMap->vfunc_60(); +} + +ARM bool MapManager::func_ov00_02083e70() { + int iVar1; + int iVar2; + + iVar1 = this->MapData_vfunc_54(); + if (iVar1 < 0x2c) { + if ((0x2a < iVar1) || (iVar1 == 0x1b)) { + return true; + } + } else if (((iVar1 < 0x50) && (0x4d < iVar1)) && (iVar1 == 0x4e || iVar1 == 0x4f)) { + return true; + } + iVar1 = this->MapData_vfunc_60(); + iVar2 = this->GetMapData_Unk_48(); + return iVar2 <= iVar1; +} + +ARM unk8 MapManager::MapData_vfunc_68() { + return this->mMap->vfunc_68(); +} + +ARM s32 MapManager::func_ov00_02083ef8(Vec3p *param_2, Vec3p *param_3) { + int iVar1; + Vec3p local_18; + + local_18.x = param_2->x; + local_18.z = param_2->z; + local_18.y = param_2->y; + if (param_2->y < param_3->y) { + local_18.y = param_3->y; + } + iVar1 = this->mMap->vfunc_68(/*&local_18*/); // takes no args. + return iVar1; +} + +ARM void MapManager::func_ov00_02083f44(Vec3p *param_2) { + Vec3p local_18; + + local_18.z = param_2->z; + local_18.x = param_2->x; + /*local_18.y = *(int *)( + PTR_PTR_s_anc_overlay_d_0__020e24a0_overlay_d_0__020e24a4_overlay_d_0__02083f7c + + 0x20);*/ + this->func_ov00_02083ef8(param_2, &local_18); +} + +unk8 MapManager::MapData_vfunc_6c(unk32 param_2, unk32 param_3, unk32 param_4) { + this->mMap->vfunc_6c(param_2, param_3, param_4); +} + +unk8 MapManager::MapData_vfunc_70(Vec3p *param_2) { + this->mMap->vfunc_70(param_2); +} + +unk8 MapManager::func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3) { + s32 iVar1; + unk32 dVar2; + + iVar1 = param_2->mMap->vfunc_74(param_3); + if (iVar1 != 0) { + *param_1 = *(unk32 *) (iVar1 + 0xc); + return; + } + dVar2 = param_2->MapData_vfunc_70(param_3); + if (dVar2 != 0xffff) { + // FUN_overlay_d_0__02093a1c(param_1, *(unk32 *) PTR_DWORD_overlay_d_0__02084020); + return; + } + *param_1 = 0; +} + +void MapManager::func_ov00_02084024(Vec2b *param_2, AABB *param_3) { + int iVar1; + Vec3p local_20; + + this->mMap->GetTileBounds(param_2, param_3); + iVar1 = this->GetMapCenterZ(); + local_20.x = this->GetMapCenterX(); + local_20.y = 0; + local_20.z = iVar1; + Vec3p_Add(¶m_3->min, &local_20, ¶m_3->min); + Vec3p_Add(¶m_3->max, &local_20, ¶m_3->max); +} + +unk8 MapManager::MapData_vfunc_54() { + this->mMap->vfunc_54(); +} + +unk8 MapManager::func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4) { + unk8 local_8; + unk8 local_7; + unk16 uStack_6; + + uStack_6 = (unk16) ((u32) param_4 >> 0x10); + // _local_8 = CONCAT11(param_3, param_2); + this->MapData_vfunc_54(/*&local_8*/); // Doesn't take any params. + // No calls to functions according to objdiff, why??? +} + +unk8 MapManager::MapData_vfunc_78() { + this->mMap->vfunc_78(); +} + +unk8 MapManager::func_ov00_020840dc() { + int *piVar1; + + piVar1 = (int *) this->MapData_vfunc_78(); + if (piVar1 != (int *) 0x0) { + // (**(code **) (*piVar1 + 0x1c))(); // MapBase::func_ov00_0207f934() ?? + } +} + +unk8 MapManager::func_ov00_02084100(unk32 *param_1, MapManager *param_2) { + unk32 uVar1 = param_2->mMap->mUnk_040; + *param_1 = param_2->mMap->mUnk_044; + param_1[1] = uVar1; +} + +u32 MapManager::GetMapData_Unk_48() { + return this->mMap->mUnk_048; +} + +unk32 MapManager::GetMapData_Unk_4c() { + return this->mMap->mUnk_04c; +} + +unk32 MapManager::func_ov00_0208412c() { + return this->mMap->func_ov00_0207f934(); +} + +void MapManager::func_ov00_0208413c(unk32 param_2) { + this->mMap->func_ov00_0207f948(param_2); +} + +unk8 MapManager::MapData_vfunc_58() { + this->mMap->vfunc_58(); +} + +unk8 MapManager::func_ov00_02084164() { + int iVar1; + unk32 uVar2; + + iVar1 = this->mMap->vfunc_58(/*param_2, 7, pcVar3, param_4*/); // Params? + if (iVar1 == 0) { + uVar2 = this->MapData_vfunc_54(); + switch (uVar2) { + case 0: break; + case 1: return 0; + case 2: return 0; + case 3: return 0; + case 4: return 0; + case 5: return 0; + case 6: return 0; + case 7: return 0; + case 8: break; + case 9: break; + case 10: return 0; + case 0xb: break; + case 0xc: break; + case 0xd: break; + case 0xe: break; // I mean, honestly Ghidra. + case 0xf: break; // What are we going to do with you? + case 0x10: break; + case 0x11: break; + case 0x12: break; + case 0x13: break; + case 0x14: return 0; + case 0x15: break; + case 0x16: break; + case 0x17: return 0; + case 0x18: break; + case 0x19: return 0; + case 0x1a: break; + case 0x1b: return 0; + case 0x1c: return 0; + case 0x1d: return 0; + case 0x1e: return 0; + case 0x1f: return 0; + case 0x20: break; + case 0x21: break; + case 0x22: break; + case 0x23: break; + case 0x24: return 0; + case 0x25: break; + case 0x26: break; + case 0x27: break; + case 0x28: break; + case 0x29: break; + case 0x2a: break; + case 0x2b: return 0; + case 0x2c: break; + case 0x2d: break; + case 0x2e: break; + case 0x2f: break; + case 0x30: return 0; + case 0x31: break; + case 0x32: break; + case 0x33: return 0; + case 0x34: return 0; + case 0x35: break; + case 0x36: break; + case 0x37: return 0; + case 0x38: break; + case 0x39: break; + case 0x3a: break; + case 0x3b: break; + case 0x3c: break; + case 0x3d: break; + case 0x3e: break; + case 0x3f: break; + case 0x40: return 0; + case 0x41: break; + case 0x42: break; + case 0x43: break; + case 0x44: break; + case 0x45: break; + case 0x46: return 0; + case 0x47: return 0; + case 0x48: return 0; + case 0x49: return 0; + case 0x4a: return 0; + case 0x4b: return 0; + case 0x4c: return 0; + case 0x4d: break; + case 0x4e: return 0; + case 0x4f: return 0; + case 0x50: return 0; + case 0x51: break; + case 0x52: break; + case 0x53: break; + case 0x54: break; + default: return 0; + } + return 1; + } + return 0; +} + +u8 MapManager::GetMapData_Unk_0a() { + return this->mMap->mUnk_00a; +} + +u8 MapManager::GetMapData_Unk_0b() { + return this->mMap->mUnk_00b; +} + +unk8 MapManager::MapData_vfunc_a4() { + this->mMap->vfunc_a4(); +} + +unk8 MapManager::func_ov00_0208433c(Vec3p *param_2, Vec3p *param_3) { + Vec2s local_28; + Vec3p VStack_24; + Vec3p local_18; + + local_18.x = param_2->x; + local_18.y = param_2->y; + local_18.z = param_2->z; + this->GetMapMinBounds(&VStack_24); + Vec3p_Sub(&local_18, &VStack_24, &local_18); + this->mMap->func_ov00_0207f53c(&local_28, this->mMap, &local_18); + param_3->x = local_28.x; + param_3->y = local_28.y; +} + +unk8 MapManager::func_ov00_0208439c(Vec2s *param_2, Vec3p *param_3) { + s32 iVar1; + Vec3p VStack_18; + + this->mMap->func_ov00_0207f630(param_2, param_3); + this->GetMapMinBounds(&VStack_18); + Vec3p_Add(param_3, &VStack_18, param_3); + iVar1 = this->MapData_vfunc_68(); + param_3->y = iVar1; +} + +void MapManager::func_ov00_020843ec(s32 *param_2) { + u32 uVar1; + s32 iVar2; + s32 iVar3; + unk16 uStack_88; + unk16 uStack_86; + unk16 uStack_84; + unk16 uStack_82; + Vec2s local_80; + Vec2s local_7c; + Vec2s local_78; + Vec2s local_74; + Vec3p local_70; + Vec3p local_64; + s32 local_58; + s32 iStack_54; + s32 iStack_50; + s32 local_4c; + s32 iStack_48; + s32 iStack_44; + Vec3p local_40; + Vec3p local_34; + s32 local_28; + s32 local_24; + s32 local_20; + + // uVar1 = (**(code **) (*param_2 + 8))(); // Which function is this? + if (uVar1 < 2) { + // (**(code **) (*param_2 + 0x3c))(param_2, &local_28); // And this? + // local_40.z = (**(code **) (*param_2 + 0x40))(); // What about this? + local_34.x = local_28 - local_40.z; + local_34.z = local_20 - local_40.z; + local_40.x = local_28 + local_40.z; + local_40.z = local_20 + local_40.z; + local_34.y = local_24; + local_40.y = local_24; + iVar2 = this->GetMapMinX(); + local_34.x = local_34.x - iVar2; + iVar2 = this->GetMapMinZ(); + local_34.z = local_34.z - iVar2; + iVar2 = this->GetMapMinX(); + local_40.x = local_40.x - iVar2; + iVar2 = this->GetMapMinZ(); + local_40.z = local_40.z - iVar2; + this->mMap->func_ov00_0207f53c(&local_74, this->mMap, &local_34); + this->mMap->func_ov00_0207f53c(&local_78, this->mMap, &local_40); + iVar2 = (int) local_74.x; + if (iVar2 <= local_78.x) { + do { + iVar3 = (int) local_74.y; + if (iVar3 <= local_78.y) { + do { + uStack_84 = (unk16) iVar2; + uStack_82 = (unk16) iVar3; + this->mMap->vfunc_ac(/*&uStack_84*/); // No args? + iVar3 = (iVar3 + 1) * 0x10000 >> 0x10; + } while (iVar3 <= local_78.y); + } + iVar2 = (iVar2 + 1) * 0x10000 >> 0x10; + } while (iVar2 <= local_78.x); + return; + } + return; + } + if (uVar1 == 2) { + this->mMap->vfunc_2c(/*&local_58*/); // No args? + local_64.x = local_58; + local_64.y = iStack_54; + local_64.z = iStack_50; + local_70.x = local_4c; + local_70.y = iStack_48; + local_70.z = iStack_44; + iVar2 = this->GetMapMinX(); + local_64.x = local_64.x - iVar2; + iVar2 = this->GetMapMinZ(); + local_64.z = local_64.z - iVar2; + iVar2 = this->GetMapMinX(); + local_70.x = local_70.x - iVar2; + iVar2 = this->GetMapMinZ(); + local_70.z = local_70.z - iVar2; + this->mMap->func_ov00_0207f53c(&local_7c, this->mMap, &local_64); + this->mMap->func_ov00_0207f53c(&local_80, this->mMap, &local_70); + iVar2 = (int) local_7c.x; + if (iVar2 <= local_80.x) { + do { + iVar3 = (int) local_7c.y; + if (iVar3 <= local_80.y) { + do { + uStack_88 = (unk16) iVar2; + uStack_86 = (unk16) iVar3; + this->mMap->vfunc_ac(/*&uStack_88*/); // No args? + iVar3 = (iVar3 + 1) * 0x10000 >> 0x10; + } while (iVar3 <= local_80.y); + } + iVar2 = (iVar2 + 1) * 0x10000 >> 0x10; + } while (iVar2 <= local_80.x); + } + } +} + +unk32 MapManager::GetMapData_Unk_38() { + return this->mMap->mUnk_038; +} + +unk8 MapManager::func_ov00_020846a4() { + s32 iVar1 = *(s32 *) ((s32) this->mMap->mUnk_144 + 4); + if (iVar1 == 0xff) { + switch (this->mCourse->mType) { + case CourseType_Normal: return 0; + case CourseType_Dungeon: break; + case CourseType_Sea: return 2; + case CourseType_TempleOfTheOceanKing: break; + case CourseType_Battle: break; + default: return 0; + } + return 1; + } + return iVar1; +} + +unk8 MapManager::func_ov00_02084700(s32 *param_1) { + int iVar1; + + iVar1 = *(int *) (param_1[1] + 0x34); + if (iVar1 == -1) { + iVar1 = *(int *) (*param_1 + 0xc4); + } + if ((iVar1 == 0x1b) && (gActorManager->mUnk_29 != false)) { + iVar1 = 0x1c; + } + return iVar1; +} + +unk8 MapManager::func_ov00_02084740() { + bool bVar1; + int iVar2; + int iVar3; + unk32 uVar4; + unk32 uVar5; + unk32 uVar6; + unk32 uVar7; + unk32 *puVar8; + unk32 *puVar9; + unk32 local_1c8; + unk32 local_1c4; + unk32 local_1c0; + unk32 local_1bc[108]; + + // iVar2 = this->func_ov00_02084700(?); // what param? + // iVar3 = UnkStruct_027e0d38::FUN_overlay_d_0__02078b40(*(UnkStruct_027e0d38 **) PTR_PTR_overlay_d_0__020847d4); + if (iVar3 != 2) { + local_1c8 = *(unk32 *) gPlayerPos->x; + local_1c4 = *(unk32 *) gPlayerPos->y; + local_1c0 = *(unk32 *) gPlayerPos->z; + // bVar1 = FUN_overlay_d_0__02083780(&local_1c8); // MapManager method? + if (bVar1) { + iVar2 = this->func_ov00_020847f0(); + } + } + puVar9 = local_1bc; + iVar3 = 0x1b; + // puVar8 = (unk32 *) PTR_DWORD_overlay_d_0__020d88f0_overlay_d_0__020847dc; + do { + uVar4 = *puVar8; + uVar5 = puVar8[1]; + uVar6 = puVar8[2]; + uVar7 = puVar8[3]; + puVar8 = puVar8 + 4; + *puVar9 = uVar4; + puVar9[1] = uVar5; + puVar9[2] = uVar6; + puVar9[3] = uVar7; + puVar9 = puVar9 + 4; + iVar3 = iVar3 + -1; + } while (iVar3 != 0); + return local_1bc[iVar2]; +} + +unk32 MapManager::func_ov00_020847e0() { + return *(s32 *) ((s32) this->mMap->mUnk_144 + 0xc); +} + +unk8 MapManager::func_ov00_020847f0() { + s32 iVar1; + unk32 in_r1; + + iVar1 = this->mMap->FindTrigger(in_r1); + if (iVar1 == 0) { + // this->func_ov00_02084700(?); + return; + } + if ((*(int *) (iVar1 + 0xc) != -1) && (*(int *) (iVar1 + 0xc) < 0x6c)) { + return; + } + // this->func_ov00_02084700(?); +} + +bool MapManager::func_ov00_02084838() { + unk32 uVar1 = this->GetMapData_Unk_38(); + switch (uVar1) { + case 0: return false; + case 1: break; + case 2: break; + case 3: break; + case 4: break; + case 5: break; + case 6: return false; + case 7: return false; + case 8: return false; + case 9: return false; + case 10: break; + case 0xb: break; + case 0xc: break; + case 0xd: return false; + case 0xe: return false; + case 0xf: return false; + case 0x10: return false; + case 0x11: break; + case 0x12: return false; + case 0x13: break; + case 0x14: break; + case 0x15: break; + case 0x16: break; + default: return false; + } + return true; +} + +bool MapManager::func_ov00_020848b8() { + unk32 uVar1 = this->func_ov00_020846a4(); + switch (uVar1) { + case 0: break; + case 1: break; + case 2: break; + case 3: break; + case 4: break; + case 5: break; + case 6: return true; + case 7: break; + case 8: break; + case 9: break; + case 10: break; + case 0xb: break; + case 0xc: return true; + case 0xd: return true; + case 0xe: break; + case 0xf: return true; + case 0x10: break; + case 0x11: return true; + } + return false; +} + +void MapManager::func_ov00_02084924(u32 param_2) { + this->mMap->func_ov00_0208008c(param_2); +} + +bool MapManager::func_ov00_02084934(s32 *param_2) { + int iVar2; + int iVar3; + int iVar4; + Vec3p local_20; + + iVar2 = this->GetMapCenterZ(); + iVar3 = param_2[2]; + iVar4 = param_2[1]; + local_20.x = this->GetMapCenterX(); + local_20.x = *param_2 - local_20.x; + local_20.y = iVar4; + local_20.z = iVar3 - iVar2; + return this->mMap->IsInBounds(&local_20); +} + +u8 MapManager::GetMapData_Unk_06() { + return this->mMap->mUnk_006; +} + +u8 MapManager::GetMapData_Unk_07() { + return this->mMap->mUnk_007; +} + unk8 MapManager::func_ov00_0208499c() {} unk8 MapManager::func_ov00_020849c0() {} unk8 MapManager::func_ov00_020849dc() {}