summaryrefslogtreecommitdiff
path: root/src/00_Core
diff options
context:
space:
mode:
authorSammygoodTunes <sygamerz@gmail.com>2025-01-21 13:31:12 +0100
committerSammygoodTunes <sygamerz@gmail.com>2025-01-21 13:31:12 +0100
commit0060b2faac9475c744de44d38cf8ba72f83058d0 (patch)
treefbf96d33e0ee9f5868873f005c8146aeef37ba8c /src/00_Core
parentecaa34e7e1055b22f6d0352b5710dfbea461ebad (diff)
Decomp progress 27%
Diffstat (limited to 'src/00_Core')
-rw-r--r--src/00_Core/Map/MapManager.cpp536
1 files changed, 273 insertions, 263 deletions
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;
-
- 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;
+ 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 = 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;
-
- 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);
+ 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 = 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) {