diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index b13290f1..49daa29f 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -610,7 +610,7 @@ _ZN10MapManager11GetTileEndZEi kind:function(arm,size=0x28) addr:0x2083bfc _ZN10MapManager18func_ov00_02083c24Ei kind:function(arm,size=0x2c) addr:0x2083c24 _ZN10MapManager18func_ov00_02083c50Ei kind:function(arm,size=0x2c) addr:0x2083c50 _ZN10MapManager18func_ov00_02083c7cEP5Vec3p5Vec2b kind:function(arm,size=0x6c) addr:0x2083c7c -_ZN10MapManager18func_ov00_02083ce8EPS_Pijij kind:function(arm,size=0x14c) addr:0x2083ce8 +_ZN10MapManager18func_ov00_02083ce8EPS_P5Vec3pjij kind:function(arm,size=0x14c) addr:0x2083ce8 _ZN10MapManager18func_ov00_02083e34Ecci kind:function(arm,size=0x24) addr:0x2083e34 _ZN10MapManager16MapData_vfunc_60EP5Vec2b kind:function(arm,size=0x18) addr:0x2083e58 _ZN10MapManager18func_ov00_02083e70EP5Vec2b kind:function(arm,size=0x70) addr:0x2083e70 diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index 3b14687d..74526c0a 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -167,7 +167,7 @@ public: s32 func_ov00_02083c24(unk32 x); s32 func_ov00_02083c50(unk32 z); void func_ov00_02083c7c(Vec3p *param_2, Vec2b param_3); - static void func_ov00_02083ce8(MapManager *param_1, s32 *param_2, u32 param_3, s32 param_4, u32 param_5); + void func_ov00_02083ce8(Vec3p *param_2, u32 param_3, s32 param_4, u32 param_5); s32 func_ov00_02083e34(unk8 param_2, unk8 param_3, unk32 param_4); unk32 MapData_vfunc_60(Vec2b *param_1); bool func_ov00_02083e70(Vec2b *param_2); diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp index 21a31b33..a6c509ca 100644 --- a/src/00_Core/Map/MapManager.cpp +++ b/src/00_Core/Map/MapManager.cpp @@ -1217,44 +1217,38 @@ ARM void MapManager::func_ov00_02083c7c(Vec3p *param_2, Vec2b param_3) { param_2->y = this->MapData_vfunc_68(&local_28, true); } -ARM void MapManager::func_ov00_02083ce8(MapManager *param_1, s32 *param_2, u32 param_3, s32 param_4, u32 param_5) { +ARM void MapManager::func_ov00_02083ce8(Vec3p *param_2, u32 param_3, s32 param_4, u32 param_5) { bool bVar1; - s32 iVar2; - u32 uVar3; + u32 uVar2; + Vec3p local_38; Vec3p local_2c; - uVar3 = param_3; - iVar2 = param_1->GetCourseData_Unk_25c(); - if (iVar2 == 0) { - iVar2 = param_1->mMap->GetTileStartX(param_3 & 0xff); - *param_2 = iVar2 + 0x800; - iVar2 = param_1->mMap->GetTileStartZ(param_3 >> 8 & 0xff); - param_2[2] = iVar2 + 0x800; - } else { + uVar2 = param_3; + bVar1 = GetCourseData_Unk_25c(); + if (bVar1) { if (param_4 != -1) { - uVar3 = param_5; - } - if (param_4 != -1 && uVar3 != 0xffffffff) { - uVar3 = (u32) (u8) param_1->mCourse->mMapGrid[param_4][uVar3]; + uVar2 = param_5; + } else if (param_4 != -1 && uVar2 != -1) { + uVar2 = this->mCourse->mMapGrid[param_4][uVar2]; } else { - uVar3 = param_1->func_ov00_02082d08(); + uVar2 = this->func_ov00_02082d08(); } - bVar1 = param_1->IsMapInMainGrid(uVar3); + bVar1 = this->IsMapInMainGrid(uVar2); if (bVar1) { - param_1->func_ov00_02083524(&local_2c, param_4, param_5); - iVar2 = param_1->mMap->GetTileStartX(param_3 & 0xff); - *param_2 = local_2c.x + iVar2 + 0x800; - iVar2 = param_1->mMap->GetTileStartZ(param_3 >> 8 & 0xff); - param_2[2] = local_2c.z + iVar2 + 0x800; + func_ov00_02083524(&local_2c, param_4, param_5); + param_2->x = local_2c.x + this->mMap->GetTileStartX(param_3 & 0xff) + 0x800; + param_2->z = local_2c.z + this->mMap->GetTileStartZ(param_3 >> 8 & 0xff) + 0x800; } else { - iVar2 = param_1->mMap->GetTileStartX(param_3 & 0xff); - *param_2 = iVar2 + 0x800; - iVar2 = param_1->mMap->GetTileStartZ(param_3 >> 8 & 0xff); - param_2[2] = iVar2 + 0x800; + param_2->x = this->mMap->GetTileStartX(param_3 & 0xff) + 0x800; + param_2->z = this->mMap->GetTileStartZ(param_3 >> 8 & 0xff) + 0x800; } + } else { + param_2->x = this->mMap->GetTileStartX(param_3 & 0xff) + 0x800; + param_2->z = this->mMap->GetTileStartZ(param_3 >> 8 & 0xff) + 0x800; } - iVar2 = param_1->MapData_vfunc_68(&local_2c, true); // I really do hope this is right - param_2[1] = iVar2; + local_38 = *param_2; + param_2->y = MapData_vfunc_68(&local_38, true); + ; } ARM s32 MapManager::func_ov00_02083e34(unk8 param_2, unk8 param_3, unk32 param_4) {