From 0060b2faac9475c744de44d38cf8ba72f83058d0 Mon Sep 17 00:00:00 2001 From: SammygoodTunes Date: Tue, 21 Jan 2025 13:31:12 +0100 Subject: [PATCH] Decomp progress 27% --- config/eur/arm9/itcm/symbols.txt | 2 +- config/eur/arm9/overlays/ov000/symbols.txt | 36 +- config/usa/arm9/itcm/symbols.txt | 2 +- config/usa/arm9/overlays/ov000/symbols.txt | 36 +- include/Map/MapManager.hpp | 16 +- src/00_Core/Map/MapManager.cpp | 532 +++++++++++---------- 6 files changed, 317 insertions(+), 307 deletions(-) diff --git a/config/eur/arm9/itcm/symbols.txt b/config/eur/arm9/itcm/symbols.txt index 56efdbe2..1d6c3b5f 100644 --- a/config/eur/arm9/itcm/symbols.txt +++ b/config/eur/arm9/itcm/symbols.txt @@ -82,7 +82,7 @@ func_01ffbbcc kind:function(arm,size=0x2c) addr:0x1ffbbcc func_01ffbbf8 kind:function(arm,size=0x1d8) addr:0x1ffbbf8 func_01ffbdd0 kind:function(arm,size=0x64) addr:0x1ffbdd0 func_01ffbe34 kind:function(arm,size=0x44) addr:0x1ffbe34 -func_01ffbe78 kind:function(arm,size=0xe4) addr:0x1ffbe78 +_Z13func_01ffbe78P5Vec3pS0_S0_P5Vec4p kind:function(arm,size=0xe4) addr:0x1ffbe78 func_01ffbf5c kind:function(arm,size=0x1bc) addr:0x1ffbf5c func_01ffc118 kind:function(arm,size=0x10c8) addr:0x1ffc118 func_01ffd1e0 kind:function(arm,size=0xfec) addr:0x1ffd1e0 diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 0a8e3b4e..e8b53bf3 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -101,8 +101,8 @@ func_ov000_02079008 kind:function(arm,size=0x1c) addr:0x2079008 func_ov000_02079024 kind:function(arm,size=0x128) addr:0x2079024 func_ov000_0207914c kind:function(arm,size=0x90) addr:0x207914c func_ov000_020791dc kind:function(arm,size=0x30) addr:0x20791dc -func_ov000_0207920c kind:function(arm,size=0x94) addr:0x207920c -func_ov000_020792a0 kind:function(arm,size=0x118) addr:0x20792a0 +_Z19func_ov000_0207920cPiP5Vec3pS_S_ kind:function(arm,size=0x94) addr:0x207920c +_Z19func_ov000_020792a0Piiii kind:function(arm,size=0x118) addr:0x20792a0 func_ov000_020793b8 kind:function(arm,size=0x18) addr:0x20793b8 func_ov000_020793d0 kind:function(arm,size=0xa0) addr:0x20793d0 func_ov000_02079470 kind:function(arm,size=0x210) addr:0x2079470 @@ -571,7 +571,7 @@ _ZN10MapManager18func_ov00_02083570Eii kind:function(arm,size=0x18) addr:0x20835 _ZN10MapManager18func_ov00_02083588Ev kind:function(arm,size=0x1c) addr:0x2083588 _ZN10MapManager18func_ov00_020835a4Ev kind:function(arm,size=0x10) addr:0x20835a4 _ZN10MapManager18func_ov00_020835b4Ev kind:function(arm,size=0x10) addr:0x20835b4 -_ZN10MapManager18func_ov00_020835c4Eii kind:function(arm,size=0x20) addr:0x20835c4 +_ZN10MapManager18func_ov00_020835c4EPS_ii kind:function(arm,size=0x20) addr:0x20835c4 _ZN10MapManager18func_ov00_020835e4EiPiPc kind:function(arm,size=0x10) addr:0x20835e4 _ZN10MapManager18func_ov00_020835f4Ei kind:function(arm,size=0x10) addr:0x20835f4 _ZN10MapManager18func_ov00_02083604Ei kind:function(arm,size=0x10) addr:0x2083604 @@ -601,7 +601,7 @@ _ZN10MapManager18func_ov00_020839b4Ei kind:function(arm,size=0x10) addr:0x20839b _ZN10MapManager18func_ov00_020839c4Ei kind:function(arm,size=0x10) addr:0x20839c4 _ZN10MapManager18func_ov00_020839d4Ei kind:function(arm,size=0x24) addr:0x20839d4 _ZN10MapManager18func_ov00_020839f8Ei kind:function(arm,size=0x24) addr:0x20839f8 -_ZN10MapManager18func_ov00_02083a1cEPiPS_P5Vec3p kind:function(arm,size=0x38) addr:0x2083a1c +_ZN10MapManager18func_ov00_02083a1cEP5Vec2bPS_P5Vec3p kind:function(arm,size=0x38) addr:0x2083a1c _ZN10MapManager18func_ov00_02083a54EPhPS_PiiS2_ kind:function(arm,size=0x130) addr:0x2083a54 _ZN10MapManager13GetTileStartXEi kind:function(arm,size=0x28) addr:0x2083b84 _ZN10MapManager13GetTileStartZEi kind:function(arm,size=0x28) addr:0x2083bac @@ -674,15 +674,15 @@ _ZN10MapManager18func_ov00_02084cfcEi kind:function(arm,size=0x1c) addr:0x2084cf _ZN10MapManager17GetMapData_Unk_09Ev kind:function(arm,size=0xc) addr:0x2084d18 _ZN10MapManager18func_ov00_02084d24Ecci kind:function(arm,size=0x28) addr:0x2084d24 _ZN10MapManager18func_ov00_02084d4cEiiP5Vec3p kind:function(arm,size=0x170) addr:0x2084d4c -_ZN10MapManager18func_ov00_02084ebcEi kind:function(arm,size=0x24c) addr:0x2084ebc +_ZN10MapManager18func_ov00_02084ebcEP5Vec3p kind:function(arm,size=0x24c) addr:0x2084ebc _ZN10MapManager18func_ov00_02085108EPi kind:function(arm,size=0x174) addr:0x2085108 -_ZN10MapManager18func_ov00_0208527cEv kind:function(arm,size=0x180) addr:0x208527c -_ZN10MapManager18func_ov00_020853fcEv kind:function(arm,size=0x198) addr:0x20853fc -_ZN10MapManager18func_ov00_02085594Ev kind:function(arm,size=0x2a8) addr:0x2085594 +_ZN10MapManager18func_ov00_0208527cEPS_iPi kind:function(arm,size=0x180) addr:0x208527c +_ZN10MapManager18func_ov00_020853fcEPS_P5Vec3pPi kind:function(arm,size=0x198) addr:0x20853fc +_ZN10MapManager18func_ov00_02085594EPS_P5Vec3pii kind:function(arm,size=0x2a8) addr:0x2085594 _ZN10MapManager18func_ov00_0208583cEPS_P5Vec3pi kind:function(arm,size=0x74) addr:0x208583c -_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_020858b0EPS_P5Vec3pi kind:function(arm,size=0x184) addr:0x20858b0 +_ZN10MapManager18func_ov00_02085a34EP5Vec3pi kind:function(arm,size=0x22c) addr:0x2085a34 +_ZN10MapManager18func_ov00_02085c60EP5Vec3pPiS2_j kind:function(arm,size=0x3e4) addr:0x2085c60 _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 @@ -720,12 +720,12 @@ func_ov000_02087f08 kind:function(arm,size=0x18) addr:0x2087f08 func_ov000_02087f20 kind:function(arm,size=0xa0) addr:0x2087f20 func_ov000_02087fc0 kind:function(arm,size=0x20) addr:0x2087fc0 func_ov000_02087fe0 kind:function(arm,size=0x20) addr:0x2087fe0 -func_ov000_02088000 kind:function(arm,size=0x10) addr:0x2088000 +_Z19func_ov000_02088000ii kind:function(arm,size=0x10) addr:0x2088000 func_ov000_02088010 kind:function(arm,size=0x64) addr:0x2088010 func_ov000_02088074 kind:function(arm,size=0x84) addr:0x2088074 func_ov000_020880f8 kind:function(arm,size=0x38) addr:0x20880f8 -func_ov000_02088130 kind:function(arm,size=0x14) addr:0x2088130 -func_ov000_02088144 kind:function(arm,size=0x14) addr:0x2088144 +_Z19func_ov000_02088130Phi kind:function(arm,size=0x14) addr:0x2088130 +_Z19func_ov000_02088144Phi kind:function(arm,size=0x14) addr:0x2088144 func_ov000_02088158 kind:function(arm,size=0x44) addr:0x2088158 func_ov000_0208819c kind:function(arm,size=0x58) addr:0x208819c func_ov000_020881f4 kind:function(arm,size=0x50) addr:0x20881f4 @@ -779,7 +779,7 @@ func_ov000_0208aed8 kind:function(arm,size=0x244) addr:0x208aed8 func_ov000_0208b11c kind:function(arm,size=0x20) addr:0x208b11c func_ov000_0208b13c kind:function(arm,size=0x1c) addr:0x208b13c func_ov000_0208b158 kind:function(arm,size=0x28) addr:0x208b158 -func_ov000_0208b180 kind:function(arm,size=0x28) addr:0x208b180 +_Z19func_ov000_0208b180Pi kind:function(arm,size=0x28) addr:0x208b180 func_ov000_0208b1a8 kind:function(arm,size=0x28) addr:0x208b1a8 func_ov000_0208b1d0 kind:function(arm,size=0x28) addr:0x208b1d0 func_ov000_0208b1f8 kind:function(arm,size=0x28) addr:0x208b1f8 @@ -811,9 +811,9 @@ func_ov000_0208b70c kind:function(arm,size=0x4) addr:0x208b70c func_ov000_0208b710 kind:function(arm,size=0x4) addr:0x208b710 func_ov000_0208b714 kind:function(arm,size=0x8) addr:0x208b714 func_ov000_0208b71c kind:function(arm,size=0x20) addr:0x208b71c -func_ov000_0208b73c kind:function(arm,size=0x60) addr:0x208b73c +_Z19func_ov000_0208b73cii 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 +_Z19func_ov000_0208b7d0iP5Vec3p kind:function(arm,size=0x34) addr:0x208b7d0 _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 @@ -901,7 +901,7 @@ func_ov000_0208def0 kind:function(arm,size=0x14) addr:0x208def0 func_ov000_0208df04 kind:function(arm,size=0x28) addr:0x208df04 func_ov000_0208df2c kind:function(arm,size=0x48) addr:0x208df2c func_ov000_0208df74 kind:function(arm,size=0x4) addr:0x208df74 -func_ov000_0208df78 kind:function(arm,size=0x250) addr:0x208df78 +_Z19func_ov000_0208df78PiiiP5Vec3pS_ kind:function(arm,size=0x250) addr:0x208df78 func_ov000_0208e1c8 kind:function(arm,size=0x208) addr:0x208e1c8 func_ov000_0208e3d0 kind:function(arm,size=0x4c) addr:0x208e3d0 func_ov000_0208e41c kind:function(arm,size=0x4) addr:0x208e41c diff --git a/config/usa/arm9/itcm/symbols.txt b/config/usa/arm9/itcm/symbols.txt index b8aab999..aca128be 100644 --- a/config/usa/arm9/itcm/symbols.txt +++ b/config/usa/arm9/itcm/symbols.txt @@ -82,7 +82,7 @@ func_01ffbbcc kind:function(arm,size=0x2c) addr:0x1ffbbcc func_01ffbbf8 kind:function(arm,size=0x1d8) addr:0x1ffbbf8 func_01ffbdd0 kind:function(arm,size=0x64) addr:0x1ffbdd0 func_01ffbe34 kind:function(arm,size=0x44) addr:0x1ffbe34 -func_01ffbe78 kind:function(arm,size=0xe4) addr:0x1ffbe78 +_Z13func_01ffbe78P5Vec3pS0_S0_P5Vec4p kind:function(arm,size=0xe4) addr:0x1ffbe78 func_01ffbf5c kind:function(arm,size=0x1bc) addr:0x1ffbf5c func_01ffc118 kind:function(arm,size=0x10c8) addr:0x1ffc118 func_01ffd1e0 kind:function(arm,size=0xfec) addr:0x1ffd1e0 diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index ef0aa3b2..2e88e8ca 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -101,8 +101,8 @@ func_ov000_02079008 kind:function(arm,size=0x1c) addr:0x2078fa8 func_ov000_02079024 kind:function(arm,size=0x128) addr:0x2078fc4 func_ov000_0207914c kind:function(arm,size=0x90) addr:0x20790ec func_ov000_020791dc kind:function(arm,size=0x30) addr:0x207917c -func_ov000_0207920c kind:function(arm,size=0x94) addr:0x20791ac -func_ov000_020792a0 kind:function(arm,size=0x118) addr:0x2079240 +_Z19func_ov000_0207920cPiP5Vec3pS_S_ kind:function(arm,size=0x94) addr:0x20791ac +_Z19func_ov000_020792a0Piiii kind:function(arm,size=0x118) addr:0x2079240 func_ov000_020793b8 kind:function(arm,size=0x18) addr:0x2079358 func_ov000_020793d0 kind:function(arm,size=0xa0) addr:0x2079370 func_ov000_02079470 kind:function(arm,size=0x210) addr:0x2079410 @@ -571,7 +571,7 @@ _ZN10MapManager18func_ov00_02083570Eii kind:function(arm,size=0x18) addr:0x20835 _ZN10MapManager18func_ov00_02083588Ev kind:function(arm,size=0x1c) addr:0x2083528 _ZN10MapManager18func_ov00_020835a4Ev kind:function(arm,size=0x10) addr:0x2083544 _ZN10MapManager18func_ov00_020835b4Ev kind:function(arm,size=0x10) addr:0x2083554 -_ZN10MapManager18func_ov00_020835c4Eii kind:function(arm,size=0x20) addr:0x2083564 +_ZN10MapManager18func_ov00_020835c4EPS_ii kind:function(arm,size=0x20) addr:0x2083564 _ZN10MapManager18func_ov00_020835e4EiPiPc kind:function(arm,size=0x10) addr:0x2083584 _ZN10MapManager18func_ov00_020835f4Ei kind:function(arm,size=0x10) addr:0x2083594 _ZN10MapManager18func_ov00_02083604Ei kind:function(arm,size=0x10) addr:0x20835a4 @@ -601,7 +601,7 @@ _ZN10MapManager18func_ov00_020839b4Ei kind:function(arm,size=0x10) addr:0x208395 _ZN10MapManager18func_ov00_020839c4Ei kind:function(arm,size=0x10) addr:0x2083964 _ZN10MapManager18func_ov00_020839d4Ei kind:function(arm,size=0x24) addr:0x2083974 _ZN10MapManager18func_ov00_020839f8Ei kind:function(arm,size=0x24) addr:0x2083998 -_ZN10MapManager18func_ov00_02083a1cEPiPS_P5Vec3p kind:function(arm,size=0x38) addr:0x20839bc +_ZN10MapManager18fun_ZN10MapManager18func_ov00_02083a1cEP5Vec2bPS_P5Vec3pc_ov00_02083a1cEPiPS_P5Vec3p kind:function(arm,size=0x38) addr:0x20839bc _ZN10MapManager18func_ov00_02083a54EPhPS_PiiS2_ kind:function(arm,size=0x130) addr:0x20839f4 _ZN10MapManager13GetTileStartXEi kind:function(arm,size=0x28) addr:0x2083b24 _ZN10MapManager13GetTileStartZEi kind:function(arm,size=0x28) addr:0x2083b4c @@ -674,15 +674,15 @@ _ZN10MapManager18func_ov00_02084cfcEi kind:function(arm,size=0x1c) addr:0x2084c9 _ZN10MapManager17GetMapData_Unk_09Ev kind:function(arm,size=0xc) addr:0x2084cb8 _ZN10MapManager18func_ov00_02084d24Ecci kind:function(arm,size=0x28) addr:0x2084cc4 _ZN10MapManager18func_ov00_02084d4cEiiP5Vec3p kind:function(arm,size=0x170) addr:0x2084cec -_ZN10MapManager18func_ov00_02084ebcEi kind:function(arm,size=0x24c) addr:0x2084e5c +_ZN10MapManager18func_ov00_02084ebcEP5Vec3p kind:function(arm,size=0x24c) addr:0x2084e5c _ZN10MapManager18func_ov00_02085108EPi kind:function(arm,size=0x174) addr:0x20850a8 -_ZN10MapManager18func_ov00_0208527cEv kind:function(arm,size=0x180) addr:0x208521c -_ZN10MapManager18func_ov00_020853fcEv kind:function(arm,size=0x198) addr:0x208539c -_ZN10MapManager18func_ov00_02085594Ev kind:function(arm,size=0x2a8) addr:0x2085534 +_ZN10MapManager18func_ov00_0208527cEPS_iPi kind:function(arm,size=0x180) addr:0x208521c +_ZN10MapManager18func_ov00_020853fcEPS_P5Vec3pPi kind:function(arm,size=0x198) addr:0x208539c +_ZN10MapManager18func_ov00_02085594EPS_P5Vec3pii kind:function(arm,size=0x2a8) addr:0x2085534 _ZN10MapManager18func_ov00_0208583cEPS_P5Vec3pi kind:function(arm,size=0x74) addr:0x20857dc -_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_020858b0EPS_P5Vec3pi kind:function(arm,size=0x184) addr:0x2085850 +_ZN10MapManager18func_ov00_02085a34EP5Vec3pi kind:function(arm,size=0x22c) addr:0x20859d4 +_ZN10MapManager18func_ov00_02085c60EP5Vec3pPiS2_j kind:function(arm,size=0x3e4) addr:0x2085c00 _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 @@ -720,12 +720,12 @@ func_ov000_02087f08 kind:function(arm,size=0x18) addr:0x2087ea8 func_ov000_02087f20 kind:function(arm,size=0xa0) addr:0x2087ec0 func_ov000_02087fc0 kind:function(arm,size=0x20) addr:0x2087f60 func_ov000_02087fe0 kind:function(arm,size=0x20) addr:0x2087f80 -func_ov000_02088000 kind:function(arm,size=0x10) addr:0x2087fa0 +_Z19func_ov000_02088000ii kind:function(arm,size=0x10) addr:0x2087fa0 func_ov000_02088010 kind:function(arm,size=0x64) addr:0x2087fb0 func_ov000_02088074 kind:function(arm,size=0x84) addr:0x2088014 func_ov000_020880f8 kind:function(arm,size=0x38) addr:0x2088098 -func_ov000_02088130 kind:function(arm,size=0x14) addr:0x20880d0 -func_ov000_02088144 kind:function(arm,size=0x14) addr:0x20880e4 +_Z19func_ov000_02088130Phi kind:function(arm,size=0x14) addr:0x20880d0 +_Z19func_ov000_02088144Phi kind:function(arm,size=0x14) addr:0x20880e4 func_ov000_02088158 kind:function(arm,size=0x44) addr:0x20880f8 func_ov000_0208819c kind:function(arm,size=0x58) addr:0x208813c func_ov000_020881f4 kind:function(arm,size=0x50) addr:0x2088194 @@ -779,7 +779,7 @@ func_ov000_0208aed8 kind:function(arm,size=0x244) addr:0x208ae78 func_ov000_0208b11c kind:function(arm,size=0x20) addr:0x208b0bc func_ov000_0208b13c kind:function(arm,size=0x1c) addr:0x208b0dc func_ov000_0208b158 kind:function(arm,size=0x28) addr:0x208b0f8 -func_ov000_0208b180 kind:function(arm,size=0x28) addr:0x208b120 +_Z19func_ov000_0208b180Pi kind:function(arm,size=0x28) addr:0x208b120 func_ov000_0208b1a8 kind:function(arm,size=0x28) addr:0x208b148 func_ov000_0208b1d0 kind:function(arm,size=0x28) addr:0x208b170 func_ov000_0208b1f8 kind:function(arm,size=0x28) addr:0x208b198 @@ -811,9 +811,9 @@ func_ov000_0208b70c kind:function(arm,size=0x4) addr:0x208b6ac func_ov000_0208b710 kind:function(arm,size=0x4) addr:0x208b6b0 func_ov000_0208b714 kind:function(arm,size=0x8) addr:0x208b6b4 func_ov000_0208b71c kind:function(arm,size=0x20) addr:0x208b6bc -func_ov000_0208b73c kind:function(arm,size=0x60) addr:0x208b6dc +_Z19func_ov000_0208b73cii 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 +_Z19func_ov000_0208b7d0iP5Vec3p kind:function(arm,size=0x34) addr:0x208b770 _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 @@ -901,7 +901,7 @@ func_ov000_0208def0 kind:function(arm,size=0x14) addr:0x208de90 func_ov000_0208df04 kind:function(arm,size=0x28) addr:0x208dea4 func_ov000_0208df2c kind:function(arm,size=0x48) addr:0x208decc func_ov000_0208df74 kind:function(arm,size=0x4) addr:0x208df14 -func_ov000_0208df78 kind:function(arm,size=0x250) addr:0x208df18 +_Z19func_ov000_0208df78PiiiP5Vec3pS_ kind:function(arm,size=0x250) addr:0x208df18 func_ov000_0208e1c8 kind:function(arm,size=0x208) addr:0x208e168 func_ov000_0208e3d0 kind:function(arm,size=0x4c) addr:0x208e370 func_ov000_0208e41c kind:function(arm,size=0x4) addr:0x208e3bc diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index 429d41f2..bd580686 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -153,7 +153,7 @@ public: bool func_ov00_020839c4(s32 param_2); s32 func_ov00_020839d4(s32 param_2); s32 func_ov00_020839f8(s32 param_2); - static void func_ov00_02083a1c(s32 *param_1, MapManager *param_2, Vec3p *param_3); + static void func_ov00_02083a1c(Vec2b *param_1, MapManager *param_2, Vec3p *param_3); static void func_ov00_02083a54(u8 *param_1, MapManager *param_2, s32 *param_3, s32 param_4, s32 *param_5); s32 GetTileStartX(unk32 x); s32 GetTileStartZ(unk32 z); @@ -226,15 +226,15 @@ public: u8 GetMapData_Unk_09(); unk8 func_ov00_02084d24(unk8 param_2, unk8 param_3, unk32 param_4); s32 func_ov00_02084d4c(unk32 param_2, unk32 param_3, Vec3p *param_4); - unk8 func_ov00_02084ebc(unk32 param_2); + unk32 func_ov00_02084ebc(Vec3p *param_2); s32 func_ov00_02085108(s32 *param_2); - static unk8 func_ov00_0208527c(); - static unk8 func_ov00_020853fc(); - static unk8 func_ov00_02085594(); + static s32 func_ov00_0208527c(MapManager *param_1, unk32 param_2, unk32 *param_3); + static s32 func_ov00_020853fc(MapManager *param_1, Vec3p *param_2, s32 *param_3); + static unk32 func_ov00_02085594(MapManager *param_1, Vec3p *param_2, unk32 param_3, unk32 param_4); static void func_ov00_0208583c(MapManager *param_1, Vec3p *param_2, unk32 param_3); - 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); + static unk8 func_ov00_020858b0(MapManager *param_1, Vec3p *param_2, s32 param_3); + s32 func_ov00_02085a34(Vec3p *param_2, unk32 param_3); + unk8 func_ov00_02085c60(Vec3p *param_2, unk32 *param_3, unk32 *param_4, u32 param_5); 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); diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp index 4e4621c9..3d5faa7e 100644 --- a/src/00_Core/Map/MapManager.cpp +++ b/src/00_Core/Map/MapManager.cpp @@ -4,15 +4,26 @@ #include "Player/PlayerBase.hpp" #include "Save/AdventureFlags.hpp" +extern bool func_01ffbe78(Vec3p *param1, Vec3p *param2, Vec3p *param3, Vec4p *param4); + extern u32 func_ov000_02078bc4(unk32 param_1); extern void func_ov000_02078bf0(s32 *param_1, unk32 param_2); extern s32 func_ov000_02078fe8(s32 *param_1); +extern void func_ov000_0207920c(s32 *param_1, Vec3p *param_2, s32 *param_3, s32 *param_4); +extern void func_ov000_020792a0(s32 *param_1, s32 param_2, unk32 param_3, unk32 param_4); extern void func_ov000_020798bc(s32 *param_1, s32 param_2); +extern void func_ov000_02088000(unk32 param_1, s32 param_2); +extern void func_ov000_02088130(u8 *param_1, unk32 param_2); +extern void func_ov000_02088144(u8 *param_1, unk32 param_2); extern void func_ov000_0208b13c(s32 *param_1); +extern unk32 func_ov000_0208b180(s32 *param_1); +extern s32 func_ov000_0208b73c(s32 param_1, unk32 param_2); +extern s32 func_ov000_0208b7d0(s32 param_1, Vec3p *param_2); 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 s32 func_ov000_0208df78(s32 *param_1, unk32 param_, unk32 param_3, Vec3p *param_4, s32 *param_5); 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); @@ -23,12 +34,14 @@ extern void func_ov000_02096324(s32 *param_1, s32 param_2); extern s32 *func_ov000_02096418(s32 *param_1); extern void func_ov000_0209d6e8(s32 param_1, s32 param_2); extern unk32 func_ov000_020a5e9c(unk32 *param_1); + extern void func_ov004_021024c4(MapManager *param_1, s32 param_2, bool param_3, s32 param_4); extern void func_ov004_02102770(s32 *param_1); 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(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); @@ -651,7 +664,7 @@ ARM void MapManager::func_ov00_0208306c(s32 *param_2, s32 *param_3) { local_1c.y = gPlayerPos->y; local_1c.x = gPlayerPos->x; local_1c.z = gPlayerPos->z; - this->func_ov00_02083a1c((s32 *) auStack_2c, this, &local_1c); + // this->func_ov00_02083a1c(auStack_2c, this, &local_1c); this->func_ov00_02082d84(auStack_2c, param_2, param_3); } @@ -1071,9 +1084,9 @@ ARM s32 MapManager::func_ov00_020839f8(s32 param_2) { return this->mMap->GetClampedTileY(param_2 - this->GetMapCenterZ()); } -ARM void MapManager::func_ov00_02083a1c(s32 *param_1, MapManager *param_2, Vec3p *param_3) { - *param_1 = param_2->func_ov00_020839f8(param_3->z); - param_1[1] = param_2->func_ov00_020839d4(param_3->x); +ARM void MapManager::func_ov00_02083a1c(Vec2b *param_1, MapManager *param_2, Vec3p *param_3) { + param_1->x /*or y?*/ = param_2->func_ov00_020839f8(param_3->z); + param_1->y /*or x?*/ = param_2->func_ov00_020839d4(param_3->x); } ARM void MapManager::func_ov00_02083a54(u8 *param_1, MapManager *param_2, s32 *param_3, s32 param_4, s32 *param_5) { @@ -1960,10 +1973,10 @@ unk8 MapManager::func_ov00_02084d24(unk8 param_2, unk8 param_3, unk32 param_4) { } s32 MapManager::func_ov00_02084d4c(unk32 param_2, unk32 param_3, Vec3p *param_4) { - /* undefined *object; - undefined *dtor; - undefined *obj; - dword a; + unk32 *object; // undefined type + unk32 *dtor; // undefined type + unk32 *obj; // undefined type + unk32 a; // dword int iVar1; int aiStack_3c[4]; Vec3p VStack_2c; @@ -1972,60 +1985,59 @@ s32 MapManager::func_ov00_02084d4c(unk32 param_2, unk32 param_3, Vec3p *param_4) int iStack_18; Vec3p VStack_14; - iVar1 = FUN_overlay_d_0__0208df78(*(undefined4 *) (*(int *) PTR_DWORD_overlay_d_0__02084ea0 + 4), param_2, param_3, - &VStack_14, &iStack_20); - object = PTR_DWORD_overlay_d_0__020e2510_overlay_d_0__02084ea8; + iVar1 = func_ov000_0208df78(data_027e0f64 + 4, param_2, param_3, &VStack_14, &iStack_20); + // object = PTR_DWORD_overlay_d_0__020e2510_overlay_d_0__02084ea8; if (iVar1 == -1) { return -1; } - if ((*(uint *) (PTR_DestructorChain_overlay_d_0_bss__020ec964_overlay_d_0__02084ea4 + 0x60) & 1) == 0) { - aiStack_3c[1] = 0; - aiStack_3c[3] = 0; - aiStack_3c[2] = 0x1000; - *(undefined4 *) PTR_DWORD_overlay_d_0__020e2510_overlay_d_0__02084ea8 = 0; - *(undefined4 *) (object + 4) = 0x1000; - *(undefined4 *) (object + 8) = 0; + /*if ((*(u32 *) (PTR_DestructorChain_overlay_d_0_bss__020ec964_overlay_d_0__02084ea4 + 0x60) & 1) == 0) { + aiStack_3c[1] = 0; + aiStack_3c[3] = 0; + aiStack_3c[2] = 0x1000; + *(unk32 *) PTR_DWORD_overlay_d_0__020e2510_overlay_d_0__02084ea8 = 0; + *(unk32 *) (object + 4) = 0x1000; + *(unk32 *) (object + 8) = 0; obj = PTR_DestructorChain_overlay_d_0_bss__020ec9c8_overlay_d_0__02084eb4; dtor = PTR_FUN_overlay_d_0__0207e968_overlay_d_0__02084eb0; - *(undefined4 *) (PTR_PTR_s_anc_overlay_d_0__020e24a0_overlay_d_0__020e24a4_overlay_d_0__02084eac + 0x78) = 0; + *(unk32 *) (PTR_PTR_s_anc_overlay_d_0__020e24a0_overlay_d_0__020e24a4_overlay_d_0__02084eac + 0x78) = 0; __register_global_object(object, dtor, (DestructorChain *) obj); - *(uint *) (PTR_DestructorChain_overlay_d_0_bss__020ec964_overlay_d_0__02084ea4 + 0x60) = - *(uint *) (PTR_DestructorChain_overlay_d_0_bss__020ec964_overlay_d_0__02084ea4 + 0x60) | 1; - } + *(u32 *) (PTR_DestructorChain_overlay_d_0_bss__020ec964_overlay_d_0__02084ea4 + 0x60) = + *(u32 *) (PTR_DestructorChain_overlay_d_0_bss__020ec964_overlay_d_0__02084ea4 + 0x60) | 1; + }*/ VStack_2c.x = iStack_20; VStack_2c.y = iStack_1c; VStack_2c.z = iStack_18; - Vec3p::Sub(&VStack_2c, &VStack_14, &VStack_2c); - iVar1 = FUN_01ffe61c(PTR_DWORD_overlay_d_0__020e2510_overlay_d_0__02084ea8, &VStack_14, &VStack_2c, aiStack_3c); + Vec3p_Sub(&VStack_2c, &VStack_14, &VStack_2c); + // iVar1 = func_01ffe61c(PTR_DWORD_overlay_d_0__020e2510_overlay_d_0__02084ea8, &VStack_14, &VStack_2c, aiStack_3c); if (iVar1 != 0) { param_4->x = VStack_14.x; param_4->y = VStack_14.y; param_4->z = VStack_14.z; - Vec3p::Axpy(aiStack_3c[0], &VStack_2c, param_4, param_4); - a = DWORD_overlay_d_0__02084eb8; + Vec3p_Axpy(aiStack_3c[0], &VStack_2c, param_4, param_4); + a = 0x19a; if (aiStack_3c[0] < 0) { param_4->x = VStack_14.x; param_4->y = VStack_14.y; param_4->z = VStack_14.z; - Vec3p::Axpy(a, &VStack_2c, param_4, param_4); + Vec3p_Axpy(a, &VStack_2c, param_4, param_4); return 1; } return 0; } - return -1; */ + return -1; } -unk8 MapManager::func_ov00_02084ebc(unk32 param_2) { - /* int *piVar1; +unk32 MapManager::func_ov00_02084ebc(Vec3p *param_2) { + int *piVar1; int iVar2; - dword dVar3; - undefined auStack_18[4]; - uint uStack_14; + unk32 dVar3; // dword + Vec2b auStack_18[4]; // undefined type + u32 uStack_14; - FUN_overlay_d_0__02083a1c(auStack_18, param_1, param_2); - piVar1 = (int *) MapData_vfunc_78(param_1); + this->func_ov00_02083a1c(auStack_18, this, param_2); + piVar1 = (int *) this->MapData_vfunc_78(); if (piVar1 != (int *) 0x0) { - iVar2 = (**(code **) (*piVar1 + 0x1c))(); + // iVar2 = (**(code **) (*piVar1 + 0x1c))(); if (iVar2 < 0x39) { if ((iVar2 < 0x38) && (iVar2 != 1)) { return 0; @@ -2043,11 +2055,11 @@ unk8 MapManager::func_ov00_02084ebc(unk32 param_2) { } } } - iVar2 = FUN_overlay_d_0__02083e70(param_1, auStack_18); + iVar2 = this->func_ov00_02083e70(/*auStack_18*/); if (iVar2 != 0) { return 0; } - iVar2 = MapData_vfunc_54(param_1); + iVar2 = this->MapData_vfunc_54(); if (iVar2 < 0x47) { if (0x45 < iVar2) { return 0; @@ -2110,62 +2122,62 @@ unk8 MapManager::func_ov00_02084ebc(unk32 param_2) { } else if (iVar2 == 0x50) { return 0; } - iVar2 = (**(code **) (param_1->mMap->vtable + 0x58))(param_1->mMap, auStack_18, 5); + iVar2 = this->mMap->vfunc_58(/*auStack_18, 5*/); if (iVar2 != 0) { return 0; } - dVar3 = MapData_vfunc_70(param_1); - if (dVar3 != DWORD_overlay_d_0__02085100) { - FUN_overlay_d_0__02093a1c(&uStack_14, *(undefined4 *) PTR_DWORD_overlay_d_0__02085104); + // dVar3 = this->MapData_vfunc_70(); // Missing param. + if (dVar3 != 0xffff) { + func_ov000_02093a1c(&uStack_14, data_027e0f6c); if ((uStack_14 >> 5 & 3) != 1) { return 0; } return 1; } - return 0; */ + return 0; } s32 MapManager::func_ov00_02085108(s32 *param_2) { - /* undefined *puVar1; - undefined4 uVar2; + MapManager *puVar1; + unk32 uVar2; int *piVar3; int iVar4; - uint uVar5; + u32 uVar5; int iVar6; int iVar7; int iVar8; - uint local_44; - byte local_3a; - byte local_39; - byte local_38; - byte local_37; + u32 local_44; + u8 local_3a; + u8 local_39; + u8 local_38; + u8 local_37; int local_34; int local_30; int local_2c; - undefined4 local_28; + unk32 local_28; - uVar2 = FUN_overlay_d_0__0208b180(*(undefined4 *) PTR_DWORD_overlay_d_0__02085274); - FUN_overlay_d_0__02088130(&local_38, uVar2); - local_44 = (uint) local_38; - uVar2 = FUN_overlay_d_0__0208b180(*(undefined4 *) PTR_DWORD_overlay_d_0__02085274); - FUN_overlay_d_0__02088144(&local_3a, uVar2); + uVar2 = func_ov000_0208b180(data_027e0f64); + func_ov000_02088130(&local_38, uVar2); + local_44 = (u32) local_38; + uVar2 = func_ov000_0208b180(data_027e0f64); + func_ov000_02088144(&local_3a, uVar2); if (local_44 <= local_37) { do { - puVar1 = PTR_gMapManager_overlay_d_0__02085278; - uVar5 = (uint) local_39; - if ((uint) local_3a <= (uint) local_39) { + puVar1 = gMapManager; + uVar5 = (u32) local_39; + if ((u32) local_3a <= (u32) local_39) { do { - piVar3 = (int *) MapData_vfunc_78(*(MapManager **) puVar1); + piVar3 = (int *) puVar1->MapData_vfunc_78(); if ((piVar3 != (int *) 0x0) && ((piVar3[1] & 4U) != 0)) { - iVar7 = piVar3[7]; - iVar6 = piVar3[6]; - iVar8 = piVar3[8]; - iVar4 = (**(code **) (*piVar3 + 0x60))(); - local_28 = (**(code **) (*piVar3 + 0x5c))(); + iVar7 = piVar3[7]; + iVar6 = piVar3[6]; + iVar8 = piVar3[8]; + // iVar4 = (**(code **) (*piVar3 + 0x60))(); + // local_28 = (**(code **) (*piVar3 + 0x5c))(); local_34 = iVar6; local_30 = iVar7 + iVar4; local_2c = iVar8; - iVar4 = FUN_0202b8e4(&local_34, 2); + // iVar4 = func_0202b8e4(&local_34, 2); if (iVar4 != 0) { *param_2 = piVar3[6]; param_2[1] = piVar3[7]; @@ -2174,46 +2186,46 @@ s32 MapManager::func_ov00_02085108(s32 *param_2) { } } uVar5 = uVar5 - 1; - } while ((int) (uint) local_3a <= (int) uVar5); + } while ((int) (u32) local_3a <= (int) uVar5); } local_44 = local_44 + 1; - } while ((int) local_44 <= (int) (uint) local_37); + } while ((int) local_44 <= (int) (u32) local_37); } - return 0; */ + return 0; } -unk8 MapManager::func_ov00_0208527c() { - /* uint uVar1; - undefined *puVar2; - undefined4 uVar3; +s32 MapManager::func_ov00_0208527c(MapManager *param_1, unk32 param_2, unk32 *param_3) { + u32 uVar1; + MapManager *puVar2; + unk32 uVar3; int iVar4; int iVar5; - uint uVar6; - uint uVar7; - uint local_4c; - byte local_3e; - byte local_3d; - byte local_3c; - byte local_3b; - undefined4 local_38; - undefined4 local_34; - undefined4 local_30; - undefined4 local_2c; + u32 uVar6; + u32 uVar7; + u32 local_4c; + u8 local_3e; + u8 local_3d; + u8 local_3c; + u8 local_3b; + unk32 local_38; + unk32 local_34; + unk32 local_30; + unk32 local_2c; - uVar3 = FUN_overlay_d_0__0208b180(*(undefined4 *) PTR_DWORD_overlay_d_0__020853f4); - FUN_overlay_d_0__02088130(&local_3c, uVar3); - uVar7 = (uint) local_3c; - uVar3 = FUN_overlay_d_0__0208b180(*(undefined4 *) PTR_DWORD_overlay_d_0__020853f4); - FUN_overlay_d_0__02088144(&local_3e, uVar3); - local_4c = (uint) local_3e; - uVar6 = (uint) local_3d; - iVar4 = Get_MapData_Unk28(param_1); - iVar5 = Get_MapData_Unk2a(param_1); - puVar2 = PTR_gMapManager_overlay_d_0__020853f8; + uVar3 = func_ov000_0208b180(data_027e0f64); + func_ov000_02088130(&local_3c, uVar3); + uVar7 = (u32) local_3c; + uVar3 = func_ov000_0208b180(data_027e0f64); + func_ov000_02088144(&local_3e, uVar3); + local_4c = (u32) local_3e; + uVar6 = (u32) local_3d; + iVar4 = param_1->GetMapWidth(); + iVar5 = param_1->GetMapHeight(); + puVar2 = gMapManager; if (uVar7 == 0) { uVar7 = 0; } - if (iVar4 <= (int) (uint) local_3b) { + if (iVar4 <= (int) (u32) local_3b) { uVar7 = iVar4 - 1; } if (local_4c == 0) { @@ -2228,59 +2240,59 @@ unk8 MapManager::func_ov00_0208527c() { local_30 = 0; do { uVar1 = local_4c; - if ((int) (uint) local_3b < (int) uVar7) { + if ((int) (u32) local_3b < (int) uVar7) { return 0; } for (; (int) uVar1 <= (int) uVar6; uVar1 = uVar1 + 1) { - iVar4 = MapData_vfunc_78(*(MapManager **) puVar2); - if (((iVar4 != 0) && ((*(uint *) (iVar4 + 4) & 4) != 0)) && - (iVar5 = FUN_overlay_d_0__0208b73c(iVar4, param_2), iVar5 != 0)) + iVar4 = puVar2->MapData_vfunc_78(); + if (((iVar4 != 0) && ((*(u32 *) (iVar4 + 4) & 4) != 0)) && + (iVar5 = func_ov000_0208b73c(iVar4, param_2), iVar5 != 0)) { - *param_3 = *(undefined4 *) (iVar4 + 0x18); - param_3[1] = *(undefined4 *) (iVar4 + 0x1c); - param_3[2] = *(undefined4 *) (iVar4 + 0x20); + *param_3 = *(unk32 *) (iVar4 + 0x18); + param_3[1] = *(unk32 *) (iVar4 + 0x1c); + param_3[2] = *(unk32 *) (iVar4 + 0x20); return (int) *(char *) (iVar4 + 0x12); } } uVar7 = uVar7 + 1; - } while (true); */ + } while (true); } -unk8 MapManager::func_ov00_020853fc() { - /* uint uVar1; - undefined4 uVar2; +s32 MapManager::func_ov00_020853fc(MapManager *param_1, Vec3p *param_2, s32 *param_3) { + u32 uVar1; + unk32 uVar2; int iVar3; int iVar4; int iVar5; - uint uVar6; + u32 uVar6; int iVar7; - uint local_50; - uint local_48; - byte local_3e; - byte local_3d; - byte local_3c; - byte local_3b; - undefined4 local_38; - undefined4 local_34; - undefined4 local_30; - undefined4 local_2c; + u32 local_50; + u32 local_48; + u8 local_3e; + u8 local_3d; + u8 local_3c; + u8 local_3b; + unk32 local_38; + unk32 local_34; + unk32 local_30; + unk32 local_2c; - uVar2 = FUN_overlay_d_0__0208b180(*(undefined4 *) PTR_DWORD_overlay_d_0__0208558c); - FUN_overlay_d_0__02088130(&local_3c, uVar2); - local_48 = (uint) local_3c; - uVar2 = FUN_overlay_d_0__0208b180(*(undefined4 *) PTR_DWORD_overlay_d_0__0208558c); - FUN_overlay_d_0__02088144(&local_3e, uVar2); - local_50 = (uint) local_3e; - uVar6 = (uint) local_3d; - iVar3 = Get_MapData_Unk28(param_1); - iVar4 = Get_MapData_Unk2a(param_1); + uVar2 = func_ov000_0208b180(data_027e0f64); + func_ov000_02088130(&local_3c, uVar2); + local_48 = (u32) local_3c; + uVar2 = func_ov000_0208b180(data_027e0f64); + func_ov000_02088144(&local_3e, uVar2); + local_50 = local_3e; + uVar6 = local_3d; + iVar3 = param_1->GetMapWidth(); + iVar4 = param_1->GetMapHeight(); iVar7 = 0; local_2c = 0; if (local_48 == 0) { local_48 = 0; } local_38 = 0; - if (iVar3 <= (int) (uint) local_3b) { + if (iVar3 <= (int) (u32) local_3b) { local_48 = iVar3 - 1; } local_34 = 0; @@ -2291,41 +2303,40 @@ unk8 MapManager::func_ov00_020853fc() { uVar6 = iVar4 - 1; } local_30 = 0; - for (; uVar1 = local_50, (int) local_48 <= (int) (uint) local_3b; local_48 = local_48 + 1) { + for (; uVar1 = local_50, (int) local_48 <= (int) (u32) local_3b; local_48 = local_48 + 1) { for (; (int) uVar1 <= (int) uVar6; uVar1 = uVar1 + 1) { - iVar3 = MapData_vfunc_78(*(MapManager **) PTR_gMapManager_overlay_d_0__02085590); - if ((((iVar3 != 0) && ((*(uint *) (iVar3 + 4) & 4) != 0)) && - (iVar4 = Vec3p::Distance((Vec3p *) (iVar3 + 0x18), param_2), iVar4 < *param_3)) && - (iVar5 = FUN_overlay_d_0__0208b7d0(iVar3, param_2), iVar5 != 0)) + iVar3 = gMapManager->MapData_vfunc_78(); + if ((((iVar3 != 0) && ((*(u32 *) (iVar3 + 4) & 4) != 0)) && + (iVar4 = Vec3p_Distance((Vec3p *) (iVar3 + 0x18), param_2), iVar4 < *param_3)) && + (iVar5 = func_ov000_0208b7d0(iVar3, param_2), iVar5 != 0)) { *param_3 = iVar4; iVar7 = iVar3; } } } - return iVar7; */ + return iVar7; } -unk8 MapManager::func_ov00_02085594() { - /* int *piVar1; +unk32 MapManager::func_ov00_02085594(MapManager *param_1, Vec3p *param_2, unk32 param_3, unk32 param_4) { + int *piVar1; int iVar2; - dword dVar3; - undefined4 uVar4; + unk32 dVar3; // dword + unk32 uVar4; bool bVar5; - undefined4 uStack_2c; - undefined local_28; - undefined local_27; - uint uStack_24; + unk32 uStack_2c; + Vec2b local_28; + u32 uStack_24; Vec3p VStack_20; - FUN_overlay_d_0__02083a1c(&local_28, param_1, param_2); - piVar1 = (int *) MapData_vfunc_78(param_1); + param_1->func_ov00_02083a1c(&local_28, param_1, param_2); + piVar1 = (int *) param_1->MapData_vfunc_78(); bVar5 = true; if (piVar1 != (int *) 0x0) { param_2->x = piVar1[6]; param_2->y = piVar1[7]; param_2->z = piVar1[8]; - iVar2 = (**(code **) (*piVar1 + 0x1c))(); + // iVar2 = (**(code **) (*piVar1 + 0x1c))(); if (iVar2 < 0x43) { if (0x41 < iVar2) { return 2; @@ -2351,7 +2362,7 @@ unk8 MapManager::func_ov00_02085594() { } } } - iVar2 = FUN_overlay_d_0__020840a0(param_1, local_28, local_27, param_4); + iVar2 = param_1->func_ov00_020840a0(local_28.x, local_28.y, param_4); if (iVar2 < 0x47) { if (0x45 < iVar2) { return 0; @@ -2414,15 +2425,15 @@ unk8 MapManager::func_ov00_02085594() { } else if (iVar2 == 0x50) { return 0; } - iVar2 = (**(code **) (param_1->mMap->vtable + 0x58))(param_1->mMap, &local_28, 5); + iVar2 = param_1->mMap->vfunc_58(/*&local_28, 5*/); // no params if (iVar2 != 0) { return 0; } - uStack_2c._0_2_ = CONCAT11(local_27, local_28); - FUN_overlay_d_0__02083c7c(param_1, &VStack_20, uStack_2c); - dVar3 = MapData_vfunc_70(param_1); - if (dVar3 != DWORD_overlay_d_0__02085834) { - FUN_overlay_d_0__02093a1c(&uStack_24, *(undefined4 *) PTR_DWORD_overlay_d_0__02085838); + // uStack_2c._0_2_ = CONCAT11(local_27, local_28); + param_1->func_ov00_02083c7c(&VStack_20, uStack_2c); + // dVar3 = param_1->MapData_vfunc_70(); + if (dVar3 != 0xffff) { + func_ov000_02093a1c(&uStack_24, data_027e0f6c); if ((uStack_24 >> 5 & 3) != 1) { return 0; } @@ -2433,7 +2444,7 @@ unk8 MapManager::func_ov00_02085594() { } return uVar4; } - return 0; */ + return 0; } void MapManager::func_ov00_0208583c(MapManager *param_1, Vec3p *param_2, unk32 param_3) { @@ -2454,95 +2465,94 @@ void MapManager::func_ov00_0208583c(MapManager *param_1, Vec3p *param_2, unk32 p //} } -unk8 MapManager::func_ov00_020858b0() { - /* int iVar1; +unk8 MapManager::func_ov00_020858b0(MapManager *param_1, Vec3p *param_2, s32 param_3) { + int iVar1; int iVar2; int iVar3; int iVar4; int *piVar5; int iVar6; int iVar7; - undefined4 local_38; - byte local_28; - byte local_27; + unk32 local_38; + Vec2b local_28; // x = originally 'local_28' ; y = originally 'local_27' if (param_3 == 1) { - FUN_overlay_d_0__02088000(*(undefined4 *) (*(int *) PTR_DWORD_overlay_d_0__02085a2c + 4), 7); + func_ov000_02088000(*(unk32 *) (*(int *) data_027e0f64 + 4), 7); } else { - FUN_overlay_d_0__02088000(*(undefined4 *) (*(int *) PTR_DWORD_overlay_d_0__02085a2c + 4), 6); + func_ov000_02088000(*(unk32 *) (*(int *) data_027e0f64 + 4), 6); } - iVar2 = Get_MapData_Unk28(param_1); - iVar3 = Get_MapData_Unk2a(param_1); + iVar2 = param_1->GetMapWidth(); + iVar3 = param_1->GetMapHeight(); local_38 = 0xffffffff; - FUN_overlay_d_0__02083a1c(&local_28, param_1, param_2); - iVar6 = *(int *) (PTR_gPlayerPos_overlay_d_0__02085a30 + 4); - for (iVar7 = local_28 - 1; iVar7 <= (int) (local_28 + 1); iVar7 = iVar7 + 1) { - if ((-1 < iVar7) && (iVar1 = local_27 - 1, iVar7 < iVar2)) { - for (; iVar1 <= (int) (local_27 + 1); iVar1 = iVar1 + 1) { + param_1->func_ov00_02083a1c(&local_28, param_1, param_2); + iVar6 = gPlayerPos->y; // *(int *) (PTR_gPlayerPos_overlay_d_0__02085a30 + 4); + for (iVar7 = local_28.x - 1; iVar7 <= (int) (local_28.x + 1); iVar7 = iVar7 + 1) { + if ((-1 < iVar7) && (iVar1 = local_28.y - 1, iVar7 < iVar2)) { + for (; iVar1 <= (int) (local_28.y + 1); iVar1 = iVar1 + 1) { if ((-1 < iVar1) && (iVar1 < iVar3)) { - iVar4 = MapData_vfunc_60(param_1); + iVar4 = param_1->MapData_vfunc_60(); iVar4 = iVar4 - iVar6; if (iVar4 < 0) { iVar4 = -iVar4; } - if ((iVar4 < 0xce) && (piVar5 = (int *) MapData_vfunc_78(param_1), piVar5 != (int *) 0x0)) { - local_38 = (**(code **) (*piVar5 + 0x38))(piVar5, param_3); + if ((iVar4 < 0xce) && (piVar5 = (int *) param_1->MapData_vfunc_78(), piVar5 != (int *) 0x0)) { + // local_38 = (**(code **) (*piVar5 + 0x38))(piVar5, param_3); } } } } } - return local_38; */ + return local_38; } -s32 MapManager::func_ov00_02085a34(unk32 param_2, unk32 param_3) { - /* int *piVar1; +s32 MapManager::func_ov00_02085a34(Vec3p *param_2, s32 param_3) { + int *piVar1; int iVar2; - undefined2 *puVar3; - uint uVar4; - uint uVar5; - uint uVar6; - undefined uStack_2c; - undefined uStack_2b; - undefined auStack_2a[2]; + unk16 *puVar3; + u32 uVar4; + u32 uVar5; + u32 uVar6; + unk32 uStack_2c; + unk32 uStack_2b; + Vec2b auStack_2a[2]; Vec2b aVStack_28[2]; - undefined2 auStack_24[4]; - undefined auStack_1c[4]; - undefined4 uStack_18; - undefined2 uStack_14; - undefined uStack_12; + unk16 auStack_24[4]; + unk32 auStack_1c[4]; + unk32 uStack_18; + unk16 uStack_14; + unk32 uStack_12; if (param_3 != 1) { if (param_3 != 2 && param_3 != 3) { return -1; } - FUN_overlay_d_0__02083a1c(auStack_2a, param_1, param_2); - piVar1 = (int *) MapData_vfunc_78(param_1); + this->func_ov00_02083a1c(auStack_2a, this, param_2); + piVar1 = (int *) this->MapData_vfunc_78(); if (piVar1 == (int *) 0x0) { return -1; } - iVar2 = (**(code **) (*piVar1 + 0x1c))(); + // iVar2 = (**(code **) (*piVar1 + 0x1c))(); if (iVar2 == 0x42) { - uStack_2b = *(undefined *) ((int) piVar1 + 0x15); - uStack_2c = *(undefined *) (piVar1 + 5); - MapBase::FUN_overlay_d_0__02080d08(param_1->mMap, &uStack_2c); + // uStack_2b = *(undefined *) ((int) piVar1 + 0x15); + // uStack_2c = *(undefined *) (piVar1 + 5); + // this->mMap->func_ov00_02080d08(&uStack_2c); } - iVar2 = (**(code **) (*piVar1 + 0x3c))(piVar1, param_3); + // iVar2 = (**(code **) (*piVar1 + 0x3c))(piVar1, param_3); return iVar2; } - FUN_overlay_d_0__02083a1c(aVStack_28, param_1, param_2); - iVar2 = FUN_overlay_d_0__02084ebc(param_1, param_2); + this->func_ov00_02083a1c(aVStack_28, this, param_2); + iVar2 = this->func_ov00_02084ebc(param_2); if (iVar2 == 0) { return -1; } - piVar1 = (int *) MapData_vfunc_78(param_1); + piVar1 = (int *) this->MapData_vfunc_78(); if (piVar1 != (int *) 0x0) { - iVar2 = (**(code **) (*piVar1 + 0x1c))(); + // iVar2 = (**(code **) (*piVar1 + 0x1c))(); if (0x38 < iVar2) { if (iVar2 < 0x5a) { if (iVar2 == 0x59) { LAB_overlay_d_0__02085afc: - iVar2 = (**(code **) (*piVar1 + 0x3c))(piVar1, 1); + // iVar2 = (**(code **) (*piVar1 + 0x3c))(piVar1, 1); // What is this? return iVar2; } } else if (iVar2 == 0x61) @@ -2553,9 +2563,9 @@ s32 MapManager::func_ov00_02085a34(unk32 param_2, unk32 param_3) { return -1; } piVar1[1] = piVar1[1] & 0xfffffffe; - FUN_overlay_d_0__020828f8(param_1, piVar1); + this->func_ov00_020828f8(piVar1); } - MapBase::FUN_overlay_d_0__02080b24(param_1->mMap, aVStack_28); + this->mMap->func_ov00_02080b24(aVStack_28); uStack_14 = 0xffff; uStack_18 = 0; uStack_12 = 1; @@ -2568,30 +2578,30 @@ s32 MapManager::func_ov00_02085a34(unk32 param_2, unk32 param_3) { uVar4 = uVar5; } while (uVar5 < 4); do { - *(undefined *) (puVar3 + 4) = 0; - uVar6 = uVar6 + 1; - *(undefined *) (puVar3 + 5) = 0; - puVar3 = (undefined2 *) ((int) puVar3 + 1); + *(unk32 *) (puVar3 + 4) = 0; // This is undefined, using unk32 as placeholder. + uVar6 = uVar6 + 1; + *(unk32 *) (puVar3 + 5) = 0; // Same here. + puVar3 = (unk16 *) ((int) puVar3 + 1); } while (uVar6 < 2); - iVar2 = Map_vfunc_7c(param_1); + // iVar2 = this->MapData_vfunc_7c(); <- This needs to return some value (not void). if (iVar2 == 0) { return -1; } - iVar2 = MapData_vfunc_78(param_1); - if ((iVar2 != 0) && (0 < *(short *) (iVar2 + 0xe))) { + iVar2 = MapData_vfunc_78(); // Same here. + if ((iVar2 != 0) && (0 < *(s16 *) (iVar2 + 0xe))) { return 1; } - return 0; */ + return 0; } -unk8 MapManager::func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5) { - /* longlong lVar1; - undefined *puVar2; - dword dVar3; +unk8 MapManager::func_ov00_02085c60(Vec3p *param_2, unk32 *param_3, unk32 *param_4, u32 param_5) { + s64 lVar1; + s32 *puVar2; + unk32 dVar3; // dword bool bVar4; bool bVar5; int iVar6; - uint uVar7; + u32 uVar7; int iStack_10c; int iStack_108; int iStack_104; @@ -2605,29 +2615,29 @@ unk8 MapManager::func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, Vec3p VStack_a4; Vec3p VStack_98; Vec3p aVStack_8c[3]; - undefined2 uStack_68; - undefined2 uStack_66; - undefined2 uStack_64; - undefined2 uStack_62; - undefined2 uStack_60; - undefined uStack_3e; - undefined uStack_3d; - undefined uStack_3c; - undefined uStack_3b; - undefined uStack_34; - undefined uStack_33; - undefined uStack_32; - undefined uStack_31; - undefined uStack_30; - undefined uStack_2f; - undefined4 uStack_2c; - undefined4 uStack_28; + unk16 uStack_68; + unk16 uStack_66; + unk16 uStack_64; + unk16 uStack_62; + unk16 uStack_60; + unk32 uStack_3e; + unk32 uStack_3d; + unk32 uStack_3c; + unk32 uStack_3b; + unk32 uStack_34; + unk32 uStack_33; + unk32 uStack_32; + unk32 uStack_31; + unk32 uStack_30; + unk32 uStack_2f; + unk32 uStack_2c; + unk32 uStack_28; if (param_5 == 0) { return 0; } - FUN_overlay_d_0__020792a0(*(undefined4 *) PTR_DWORD_overlay_d_0__0208603c, 0, *param_3, param_3[1]); - FUN_overlay_d_0__020792a0(*(undefined4 *) PTR_DWORD_overlay_d_0__0208603c, 0, *param_4, param_4[1]); + func_ov000_020792a0(data_027e0d3c, 0, *param_3, param_3[1]); + func_ov000_020792a0(data_027e0d3c, 0, *param_4, param_4[1]); VStack_b0.x = VStack_98.x; VStack_b0.y = VStack_98.y; VStack_b0.z = VStack_98.z; @@ -2637,17 +2647,17 @@ unk8 MapManager::func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, VStack_c8.x = VStack_98.x; VStack_c8.y = VStack_98.y; VStack_c8.z = VStack_98.z; - Vec3p::Sub(&VStack_c8, &VStack_bc, &VStack_c8); - lVar1 = (ulonglong) param_5 * 0xc000 + 0x800; - uVar7 = (uint) lVar1 >> 0xc | (int) ((ulonglong) lVar1 >> 0x20) * 0x100000; - iVar6 = Vec3p::Length(&VStack_c8); + Vec3p_Sub(&VStack_c8, &VStack_bc, &VStack_c8); + lVar1 = (u64) param_5 * 0xc000 + 0x800; + uVar7 = (u32) lVar1 >> 0xc | (int) ((u64) lVar1 >> 0x20) * 0x100000; + iVar6 = Vec3p_Length(&VStack_c8); if ((int) uVar7 < iVar6) { - Vec3p::Normalize(&VStack_c8, &VStack_c8); - Vec3p::Scale(&VStack_c8, uVar7); + Vec3p_Normalize(&VStack_c8, &VStack_c8); + Vec3p_Scale(&VStack_c8, uVar7); VStack_98.x = VStack_a4.x; VStack_98.y = VStack_a4.y; VStack_98.z = VStack_a4.z; - Vec3p::Add(&VStack_98, &VStack_c8, &VStack_98); + Vec3p_Add(&VStack_98, &VStack_c8, &VStack_98); VStack_b0.y = VStack_98.y; VStack_b0.x = VStack_98.x; VStack_b0.z = VStack_98.z; @@ -2655,25 +2665,25 @@ unk8 MapManager::func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, VStack_c8.x = VStack_98.x; VStack_c8.y = VStack_98.y; VStack_c8.z = VStack_98.z; - Vec3p::Sub(&VStack_c8, &VStack_a4, &VStack_c8); + Vec3p_Sub(&VStack_c8, &VStack_a4, &VStack_c8); uVar7 = param_5 * 0x800 + 0x800 >> 0xc | - ((((int) param_5 >> 0x1f) << 0xb | param_5 >> 0x15) + (uint) (0xfffff7ff < param_5 * 0x800)) * 0x100000; - iVar6 = Vec3p::Length(&VStack_c8); + ((((int) param_5 >> 0x1f) << 0xb | param_5 >> 0x15) + (u32) (0xfffff7ff < param_5 * 0x800)) * 0x100000; + iVar6 = Vec3p_Length(&VStack_c8); if ((int) param_5 <= iVar6) { - Vec3p::Normalize(&VStack_c8, &VStack_c8); - Vec3p::Scale(&VStack_c8, uVar7); + Vec3p_Normalize(&VStack_c8, &VStack_c8); + Vec3p_Scale(&VStack_c8, uVar7); VStack_b0.x = VStack_bc.x; VStack_b0.y = VStack_bc.y; VStack_b0.z = VStack_bc.z; - Vec3p::Add(&VStack_b0, &VStack_c8, &VStack_b0); + Vec3p_Add(&VStack_b0, &VStack_c8, &VStack_b0); } - bVar5 = false; - VStack_d8.xyz.y = param_5 << 1; - VStack_d8.xyz.x = 0; - VStack_d8.xyz.z = 0; - VStack_d8.w = param_5; + bVar5 = false; + VStack_d8.y = param_5 << 1; + VStack_d8.x = 0; + VStack_d8.z = 0; + VStack_d8.w = param_5; do { - bVar4 = FUN_01ffbe78(param_1, param_2, &VStack_b0, &VStack_bc, &VStack_d8); + bVar4 = func_01ffbe78(param_2, &VStack_b0, &VStack_bc, &VStack_d8); if (bVar4) { VStack_e4.x = param_2->x; VStack_e4.y = param_2->y; @@ -2681,14 +2691,14 @@ unk8 MapManager::func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, VStack_f0.x = param_2[1].x; VStack_f0.y = param_2[1].y; VStack_f0.z = param_2[1].z; - Vec3p::Normalize(&VStack_f0, &VStack_f0); - Vec3p::Scale(&VStack_f0, param_5); - Vec3p::Add(&VStack_e4, &VStack_f0, &VStack_e4); - dVar3 = DWORD_overlay_d_0__02086040; + Vec3p_Normalize(&VStack_f0, &VStack_f0); + Vec3p_Scale(&VStack_f0, param_5); + Vec3p_Add(&VStack_e4, &VStack_f0, &VStack_e4); + dVar3 = 0xffff; param_2->x = VStack_e4.x; param_2->y = VStack_e4.y; param_2->z = VStack_e4.z; - uStack_68 = (undefined2) dVar3; + uStack_68 = (u16) dVar3; uStack_60 = 0; uStack_3e = 0; uStack_3d = 0; @@ -2705,13 +2715,13 @@ unk8 MapManager::func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, uStack_66 = uStack_68; uStack_64 = uStack_68; uStack_62 = uStack_68; - bVar5 = FUN_01ffbe78(param_1, aVStack_8c, &VStack_e4, &VStack_e4, &VStack_d8); + bVar5 = func_01ffbe78(aVStack_8c, &VStack_e4, &VStack_e4, &VStack_d8); if (bVar5) { VStack_e4.x = aVStack_8c[0].x; VStack_e4.y = aVStack_8c[0].y; VStack_e4.z = aVStack_8c[0].z; } - FUN_overlay_d_0__0207920c(*(undefined4 *) PTR_DWORD_overlay_d_0__0208603c, &VStack_e4, &iStack_104, 0); + func_ov000_0207920c(data_027e0d3c, &VStack_e4, &iStack_104, 0); param_2[8].x = iStack_104; param_2[8].y = iStack_100; return 1; @@ -2719,8 +2729,8 @@ unk8 MapManager::func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, VStack_bc.x = VStack_b0.x; VStack_bc.y = VStack_b0.y; VStack_bc.z = VStack_b0.z; - iVar6 = FUN_0202b2e8(&VStack_b0, &VStack_98, uVar7); - puVar2 = PTR_DWORD_overlay_d_0__0208603c; + // iVar6 = func_0202b2e8(&VStack_b0, &VStack_98, uVar7); + puVar2 = data_027e0d3c; if (iVar6 != 0) { bVar5 = true; } @@ -2728,10 +2738,10 @@ unk8 MapManager::func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, param_2->x = VStack_98.x; param_2->y = VStack_98.y; param_2->z = VStack_98.z; - FUN_overlay_d_0__0207920c(*(undefined4 *) puVar2, &VStack_98, &iStack_10c, 0); + func_ov000_0207920c(puVar2, &VStack_98, &iStack_10c, 0); param_2[8].x = iStack_10c; param_2[8].y = iStack_108; - return 0; */ + return 0; } unk8 MapManager::func_ov00_02086044(Vec3p *param_2, Vec3p *param_3, unk32 param_4) {