diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 455cc76c..0a8e3b4e 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -683,7 +683,7 @@ _ZN10MapManager18func_ov00_0208583cEPS_P5Vec3pi kind:function(arm,size=0x74) add _ZN10MapManager18func_ov00_020858b0Ev kind:function(arm,size=0x184) addr:0x20858b0 _ZN10MapManager18func_ov00_02085a34Eii kind:function(arm,size=0x22c) addr:0x2085a34 _ZN10MapManager18func_ov00_02085c60Eiiii kind:function(arm,size=0x3e4) addr:0x2085c60 -_ZN10MapManager18func_ov00_02086044Eiii kind:function(arm,size=0x240) addr:0x2086044 +_ZN10MapManager18func_ov00_02086044EP5Vec3pS1_i kind:function(arm,size=0x240) addr:0x2086044 _ZN10MapManager18func_ov00_02086284EPiP5Vec3pS2_itS2_S2_ kind:function(arm,size=0x800) addr:0x2086284 _ZN10MapManager18func_ov00_02086a84EPiP5Vec3pS2_iiiS2_S2_ kind:function(arm,size=0x24c) addr:0x2086a84 func_ov000_02086cd0 kind:function(arm,size=0x4) addr:0x2086cd0 @@ -814,7 +814,7 @@ func_ov000_0208b71c kind:function(arm,size=0x20) addr:0x208b71c func_ov000_0208b73c kind:function(arm,size=0x60) addr:0x208b73c func_ov000_0208b79c kind:function(arm,size=0x34) addr:0x208b79c func_ov000_0208b7d0 kind:function(arm,size=0x34) addr:0x208b7d0 -func_ov000_0208b804 kind:function(arm,size=0x40) addr:0x208b804 +_Z19func_ov000_0208b804PiP5Vec3pS1_ kind:function(arm,size=0x40) addr:0x208b804 func_ov000_0208b844 kind:function(arm,size=0x2c) addr:0x208b844 func_ov000_0208b870 kind:function(arm,size=0x2c) addr:0x208b870 func_ov000_0208b89c kind:function(arm,size=0x44) addr:0x208b89c @@ -918,8 +918,8 @@ _ZN4AABB8ContainsEP5Vec3p kind:function(arm,size=0x78) addr:0x208e72c _ZN4AABB12ContainsInXZEP5Vec3p kind:function(arm,size=0x44) addr:0x208e7a4 func_ov000_0208e7e8 kind:function(arm,size=0x44) addr:0x208e7e8 func_ov000_0208e82c kind:function(arm,size=0x50) addr:0x208e82c -func_ov000_0208e87c kind:function(arm,size=0x4f8) addr:0x208e87c -func_ov000_0208ed74 kind:function(arm,size=0x64) addr:0x208ed74 +_Z19func_ov000_0208e87cP4AABBP5Vec3pS2_ kind:function(arm,size=0x4f8) addr:0x208e87c +_Z19func_ov000_0208ed74P4AABBP5Vec3p kind:function(arm,size=0x64) addr:0x208ed74 func_ov000_0208edd8 kind:function(arm,size=0x28) addr:0x208edd8 func_ov000_0208ee00 kind:function(arm,size=0x4c) addr:0x208ee00 func_ov000_0208ee4c kind:function(arm,size=0x44) addr:0x208ee4c diff --git a/config/eur/arm9/overlays/ov015/symbols.txt b/config/eur/arm9/overlays/ov015/symbols.txt index be20978e..dc62d8fb 100644 --- a/config/eur/arm9/overlays/ov015/symbols.txt +++ b/config/eur/arm9/overlays/ov015/symbols.txt @@ -287,9 +287,9 @@ func_ov015_02129b30 kind:function(arm,size=0x8) addr:0x2129b30 func_ov015_02129b38 kind:function(arm,size=0x18) addr:0x2129b38 func_ov015_02129b50 kind:function(arm,size=0xb4) addr:0x2129b50 func_ov015_02129c04 kind:function(arm,size=0x10) addr:0x2129c04 -_Z19func_ov015_02129c14v kind:function(arm,size=0x10) addr:0x2129c14 -_Z19func_ov015_02129c24P5Vec3pS0_ kind:function(arm,size=0x10) addr:0x2129c24 -_Z19func_ov015_02129c34i kind:function(arm,size=0x10) addr:0x2129c34 +_Z19func_ov015_02129c14P7MapBase kind:function(arm,size=0x10) addr:0x2129c14 +_Z19func_ov015_02129c24P7MapBaseP5Vec3pS2_ kind:function(arm,size=0x10) addr:0x2129c24 +_Z19func_ov015_02129c34P7MapBasei kind:function(arm,size=0x10) addr:0x2129c34 func_ov015_02129c44 kind:function(arm,size=0x10) addr:0x2129c44 func_ov015_02129c54 kind:function(arm,size=0x50) addr:0x2129c54 func_ov015_02129ca4 kind:function(arm,size=0x44) addr:0x2129ca4 diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 65ce9bc4..ef0aa3b2 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -683,7 +683,7 @@ _ZN10MapManager18func_ov00_0208583cEPS_P5Vec3pi kind:function(arm,size=0x74) add _ZN10MapManager18func_ov00_020858b0Ev kind:function(arm,size=0x184) addr:0x2085850 _ZN10MapManager18func_ov00_02085a34Eii kind:function(arm,size=0x22c) addr:0x20859d4 _ZN10MapManager18func_ov00_02085c60Eiiii kind:function(arm,size=0x3e4) addr:0x2085c00 -_ZN10MapManager18func_ov00_02086044Eiii kind:function(arm,size=0x240) addr:0x2085fe4 +_ZN10MapManager18func_ov00_02086044EP5Vec3pS1_i kind:function(arm,size=0x240) addr:0x2085fe4 _ZN10MapManager18func_ov00_02086284EPiP5Vec3pS2_itS2_S2_ kind:function(arm,size=0x800) addr:0x2086224 _ZN10MapManager18func_ov00_02086a84EPiP5Vec3pS2_iiiS2_S2_ kind:function(arm,size=0x24c) addr:0x2086a24 func_ov000_02086cd0 kind:function(arm,size=0x4) addr:0x2086c70 @@ -814,7 +814,7 @@ func_ov000_0208b71c kind:function(arm,size=0x20) addr:0x208b6bc func_ov000_0208b73c kind:function(arm,size=0x60) addr:0x208b6dc func_ov000_0208b79c kind:function(arm,size=0x34) addr:0x208b73c func_ov000_0208b7d0 kind:function(arm,size=0x34) addr:0x208b770 -func_ov000_0208b804 kind:function(arm,size=0x40) addr:0x208b7a4 +_Z19func_ov000_0208b804PiP5Vec3pS1_ kind:function(arm,size=0x40) addr:0x208b7a4 func_ov000_0208b844 kind:function(arm,size=0x2c) addr:0x208b7e4 func_ov000_0208b870 kind:function(arm,size=0x2c) addr:0x208b810 func_ov000_0208b89c kind:function(arm,size=0x44) addr:0x208b83c @@ -918,8 +918,8 @@ _ZN4AABB8ContainsEP5Vec3p kind:function(arm,size=0x78) addr:0x208e6cc _ZN4AABB12ContainsInXZEP5Vec3p kind:function(arm,size=0x44) addr:0x208e744 func_ov000_0208e7e8 kind:function(arm,size=0x44) addr:0x208e788 func_ov000_0208e82c kind:function(arm,size=0x50) addr:0x208e7cc -func_ov000_0208e87c kind:function(arm,size=0x4f8) addr:0x208e81c -func_ov000_0208ed74 kind:function(arm,size=0x64) addr:0x208ed14 +_Z19func_ov000_0208e87cP4AABBP5Vec3pS2_ kind:function(arm,size=0x4f8) addr:0x208e81c +_Z19func_ov000_0208ed74P4AABBP5Vec3p kind:function(arm,size=0x64) addr:0x208ed14 func_ov000_0208edd8 kind:function(arm,size=0x28) addr:0x208ed78 func_ov000_0208ee00 kind:function(arm,size=0x4c) addr:0x208eda0 func_ov000_0208ee4c kind:function(arm,size=0x44) addr:0x208edec diff --git a/config/usa/arm9/overlays/ov015/symbols.txt b/config/usa/arm9/overlays/ov015/symbols.txt index 14ec755f..aa63867c 100644 --- a/config/usa/arm9/overlays/ov015/symbols.txt +++ b/config/usa/arm9/overlays/ov015/symbols.txt @@ -287,9 +287,9 @@ func_ov015_02129b30 kind:function(arm,size=0x8) addr:0x2129ab0 func_ov015_02129b38 kind:function(arm,size=0x18) addr:0x2129ab8 func_ov015_02129b50 kind:function(arm,size=0xb4) addr:0x2129ad0 func_ov015_02129c04 kind:function(arm,size=0x10) addr:0x2129b84 -_Z19func_ov015_02129c14v kind:function(arm,size=0x10) addr:0x2129b94 -_Z19func_ov015_02129c24P5Vec3pS0_ kind:function(arm,size=0x10) addr:0x2129ba4 -_Z19func_ov015_02129c34i kind:function(arm,size=0x10) addr:0x2129bb4 +_Z19func_ov015_02129c14P7MapBase kind:function(arm,size=0x10) addr:0x2129b94 +_Z19func_ov015_02129c24P7MapBaseP5Vec3pS2_ kind:function(arm,size=0x10) addr:0x2129ba4 +_Z19func_ov015_02129c34P7MapBasei kind:function(arm,size=0x10) addr:0x2129bb4 func_ov015_02129c44 kind:function(arm,size=0x10) addr:0x2129bc4 func_ov015_02129c54 kind:function(arm,size=0x50) addr:0x2129bd4 func_ov015_02129ca4 kind:function(arm,size=0x44) addr:0x2129c24 diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index f67ac7bc..429d41f2 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -123,7 +123,7 @@ public: unk32 func_ov00_02083588(); unk32 func_ov00_020835a4(); unk32 func_ov00_020835b4(); - unk8 func_ov00_020835c4(s32 param_2, unk32 param_3); + unk8 func_ov00_020835c4(MapManager *param_1, s32 param_2, unk32 param_3); bool func_ov00_020835e4(s32 param_2, unk32 *param_3, unk8 *param_4); unk32 func_ov00_020835f4(s32 param_2); void func_ov00_02083604(s32 param_2); @@ -235,7 +235,7 @@ public: static unk8 func_ov00_020858b0(); s32 func_ov00_02085a34(unk32 param_2, unk32 param_3); unk8 func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5); - unk8 func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4); + unk8 func_ov00_02086044(Vec3p *param_2, Vec3p *param_3, unk32 param_4); bool func_ov00_02086284(s32 *param_2, Vec3p *param_3, Vec3p *param_4, s32 param_5, u16 param_6, Vec3p *param_7, Vec3p *param_8); bool func_ov00_02086a84(s32 *param_2, Vec3p *param_3, Vec3p *param_4, s32 param_5, s32 param_6, unk32 param_7, diff --git a/include/lib/math.h b/include/lib/math.h index b5a64150..28e2fd0b 100644 --- a/include/lib/math.h +++ b/include/lib/math.h @@ -48,8 +48,7 @@ extern "C" void Vec3p_Sub(Vec3p *a, Vec3p *b, Vec3p *out); extern "C" q20 Vec3p_Dot(Vec3p *a, Vec3p *b); extern "C" void Vec3p_Cross(Vec3p *a, Vec3p *b, Vec3p *out); extern "C" q20 Vec3p_Length(Vec3p *a); -// extern "C" bool Vec3p_Normalize(Vec3p *vec); // 0x1fffb4c (this calls Vec3p_Normalize at 0x1ff9d4c) -extern "C" void Vec3p_Normalize(Vec3p *vec, Vec3p *out); // 0x1ff9d4c +extern "C" void Vec3p_Normalize(Vec3p *vec, Vec3p *out); extern "C" void Vec3p_Axpy(q20 a, Vec3p *x, Vec3p *y, Vec3p *out); extern "C" q20 Vec3p_Distance(Vec3p *a, Vec3p *b); extern "C" void Vec3p_Scale(Vec3p *vec, q20 scale); diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp index a2fd77ff..4e4621c9 100644 --- a/src/00_Core/Map/MapManager.cpp +++ b/src/00_Core/Map/MapManager.cpp @@ -9,12 +9,15 @@ extern void func_ov000_02078bf0(s32 *param_1, unk32 param_2); extern s32 func_ov000_02078fe8(s32 *param_1); extern void func_ov000_020798bc(s32 *param_1, s32 param_2); extern void func_ov000_0208b13c(s32 *param_1); +extern s32 func_ov000_0208b804(s32 *param_1, Vec3p *param_2, Vec3p *param_3); extern void func_ov000_0208cc88(s32 *param1); extern void func_ov000_0208d620(s32 *param_1); extern void func_ov000_0208d680(s32 *param_1); extern void func_ov000_0208e6b0(Vec3p *param_1, Vec3p *param_2); extern s32 func_ov000_0208e6f0(Vec3p *param_1); extern s32 func_ov000_0208e704(Vec3p *param_1); +extern s32 func_ov000_0208e87c(AABB *param_1, Vec3p *param_2, Vec3p *param_3); +extern void func_ov000_0208ed74(AABB *param_1, Vec3p *param_2); extern void func_ov000_02093a1c(u32 *param_1, s32 *param_2); extern void func_ov000_02096324(s32 *param_1, s32 param_2); extern s32 *func_ov000_02096418(s32 *param_1); @@ -26,9 +29,9 @@ extern void func_ov004_02102b28(s32 *param_1); extern void func_ov004_02102e3c(s32 *param_1); extern void func_ov004_02105578(ActorManager *param_1, u32 param_2); extern void func_ov004_02105608(ActorManager *param_1, unk32 param_2, unk32 param_3, unk32 param_4); -extern s32 func_ov015_02129c14(); -extern bool func_ov015_02129c24(Vec3p *param_1, Vec3p *param_2); -extern bool func_ov015_02129c34(s32 param_1); +extern s32 func_ov015_02129c14(MapBase *param_1); +extern bool func_ov015_02129c24(MapBase *param_1, Vec3p *param_2, Vec3p *param_3); +extern bool func_ov015_02129c34(MapBase *param_1, s32 param_2); extern bool func_ov015_02129c44(s32 param_1); extern s32 *data_027e0c68; @@ -186,7 +189,7 @@ ARM void MapManager::MapData_vfunc_9c() { ARM s32 MapManager::func_ov00_02082424() { s32 var = this->mMap->vfunc_4c(); if (var == 2) { - var = func_ov015_02129c14(); // MapBase::GetUnk_19c_Unk_28 according to Ghidra + var = func_ov015_02129c14(this->mMap); // MapBase::GetUnk_19c_Unk_28 according to Ghidra return var; } return 0; @@ -195,7 +198,7 @@ ARM s32 MapManager::func_ov00_02082424() { ARM bool MapManager::func_ov00_02082454(Vec3p *param_2, Vec3p *param_3) { s32 var = this->mMap->vfunc_4c(); if (var == 2) { - bool state = func_ov015_02129c24(param_2, param_3); + bool state = func_ov015_02129c24(this->mMap, param_2, param_3); return state; } return false; @@ -204,7 +207,7 @@ ARM bool MapManager::func_ov00_02082454(Vec3p *param_2, Vec3p *param_3) { ARM bool MapManager::func_ov00_02082494(s32 param_2) { s32 var = this->mMap->vfunc_4c(); if (var == 2) { - bool state = func_ov015_02129c34(param_2); + bool state = func_ov015_02129c34(this->mMap, param_2); return state; } return false; @@ -870,8 +873,8 @@ ARM unk32 MapManager::func_ov00_020835b4() { return this->mCourse->Get_Unk_c8_04(); } -ARM unk8 MapManager::func_ov00_020835c4(s32 param_2, unk32 param_3) { - return this->mCourse->func_ov00_0207d404(param_2, 0, param_3); +ARM unk8 MapManager::func_ov00_020835c4(MapManager *param_1, s32 param_2, unk32 param_3) { + return param_1->mCourse->func_ov00_0207d404(param_2, 0, param_3); } ARM bool MapManager::func_ov00_020835e4(s32 param_2, unk32 *param_3, unk8 *param_4) { @@ -2731,9 +2734,9 @@ unk8 MapManager::func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, return 0; */ } -unk8 MapManager::func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4) { - /* undefined uVar1; - undefined uVar2; +unk8 MapManager::func_ov00_02086044(Vec3p *param_2, Vec3p *param_3, unk32 param_4) { + unk32 uVar1; + unk32 uVar2; int iVar3; int iVar4; int iVar5; @@ -2743,9 +2746,8 @@ unk8 MapManager::func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4) int *piVar9; Vec3p *pVVar10; int iVar11; - undefined local_c6; - undefined local_c5; - undefined auStack_c4[4]; + Vec2b local_c6; + unk32 auStack_c4[4]; Vec3p iStack_c0; Vec3p local_b0; Vec3p local_a0; @@ -2766,12 +2768,12 @@ unk8 MapManager::func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4) local_88.x = param_2->x; local_88.y = param_2->y; local_88.z = param_2->z; - FUN_overlay_d_0__0208ed74(&local_40, &local_88); - AABB::Grow(&local_40, param_4); - iVar3 = FUN_overlay_d_0__020839d4(param_1, local_40.min.x); - iVar4 = FUN_overlay_d_0__020839f8(param_1, local_40.min.z); - iVar5 = FUN_overlay_d_0__020839d4(param_1, local_40.max.x); - iVar6 = FUN_overlay_d_0__020839f8(param_1, local_40.max.z); + func_ov000_0208ed74(&local_40, &local_88); + // AABB_Grow(&local_40, param_4); + iVar3 = this->func_ov00_020839d4(local_40.min.x); + iVar4 = this->func_ov00_020839f8(local_40.min.z); + iVar5 = this->func_ov00_020839d4(local_40.max.x); + iVar6 = this->func_ov00_020839f8(local_40.max.z); local_4c.x = param_3->x; local_4c.y = param_3->y; local_4c.z = param_3->z; @@ -2782,10 +2784,10 @@ unk8 MapManager::func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4) local_a0.x = param_3->x; local_a0.y = param_3->y; local_a0.z = param_3->z; - Vec3p::Sub(&local_94, pVVar10, &VStack_58); - uVar1 = FUN_overlay_d_0__020839d4(param_1, param_3->x); - uVar2 = FUN_overlay_d_0__020839f8(param_1, param_3->z); - iVar7 = FUN_overlay_d_0__02083e34(param_1, uVar1, uVar2, pVVar10); + Vec3p_Sub(&local_94, pVVar10, &VStack_58); + uVar1 = this->func_ov00_020839d4(param_3->x); + uVar2 = this->func_ov00_020839f8(param_3->z); + // iVar7 = this->func_ov00_02083e34(uVar1, uVar2, pVVar10); do { if (iVar5 < iVar3) { return 0; @@ -2793,25 +2795,25 @@ unk8 MapManager::func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4) if (iVar4 <= iVar6) { iVar11 = iVar4; do { - iVar8 = FUN_overlay_d_0__02083e34(param_1, (char) iVar3, (char) iVar11, pVVar10); + // iVar8 = this->func_ov00_02083e34((char) iVar3, (char) iVar11, pVVar10); if (iVar7 < iVar8) { - local_c6 = (char) iVar3; - local_c5 = (char) iVar11; - FUN_overlay_d_0__02084024(*(MapManager **) PTR_gMapManager_overlay_d_0__02086280, &local_c6, &AStack_70); - Vec3p::Sub(param_2, param_3, &VStack_7c); + local_c6.x = (char) iVar3; + local_c6.y = (char) iVar11; + gMapManager->func_ov00_02084024(&local_c6, &AStack_70); + Vec3p_Sub(param_2, param_3, &VStack_7c); pVVar10 = (Vec3p *) auStack_c4; - iVar8 = FUN_overlay_d_0__0208e87c(&AStack_70, &local_b0, &VStack_7c); + iVar8 = func_ov000_0208e87c(&AStack_70, &local_b0, &VStack_7c); if (iVar8 != 0) { return 1; } } - piVar9 = (int *) MapData_vfunc_78(param_1); - if ((piVar9 != (int *) 0x0) && (iVar8 = (**(code **) (*piVar9 + 0x58))(), iVar8 != 0)) { + piVar9 = (int *) this->MapData_vfunc_78(); + if ((piVar9 != (int *) 0x0) /*&& (iVar8 = (**(code **) (*piVar9 + 0x58))(), iVar8 != 0)*/) { iStack_c0.x = param_3->x; iStack_c0.y = param_3->y; pVVar10 = (Vec3p *) param_3->z; iStack_c0.z = (int) pVVar10; - iVar8 = FUN_overlay_d_0__0208b804(piVar9, &iStack_c0, &VStack_58); + iVar8 = func_ov000_0208b804(piVar9, &iStack_c0, &VStack_58); if (iVar8 != 0) { return 1; } @@ -2820,7 +2822,7 @@ unk8 MapManager::func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4) } while (iVar11 <= iVar6); } iVar3 = iVar3 + 1; - } while (true); */ + } while (true); } bool MapManager::func_ov00_02086284(s32 *param_2, Vec3p *param_3, Vec3p *param_4, s32 param_5, u16 param_6, Vec3p *param_7,