Decomp progress 42%

This commit is contained in:
SammygoodTunes
2025-05-04 17:05:56 +02:00
parent a9af655856
commit 780ed17043
4 changed files with 156 additions and 194 deletions
+7 -7
View File
@@ -109,7 +109,7 @@ func_ov000_02079470 kind:function(arm,size=0x210) addr:0x2079470
func_ov000_02079680 kind:function(arm,size=0xfc) addr:0x2079680
func_ov000_0207977c kind:function(arm,size=0xfc) addr:0x207977c
func_ov000_02079878 kind:function(arm,size=0x20) addr:0x2079878
func_ov000_02079898 kind:function(arm,size=0x24) addr:0x2079898
_Z19func_ov000_02079898Piii kind:function(arm,size=0x24) addr:0x2079898
_Z19func_ov000_020798bcPii kind:function(arm,size=0x2c) addr:0x20798bc
func_ov000_020798e8 kind:function(arm,size=0x40) addr:0x20798e8
func_ov000_02079928 kind:function(arm,size=0x124) addr:0x2079928
@@ -661,7 +661,7 @@ _ZN10MapManager10SetNumKeysEi kind:function(arm,size=0xc) addr:0x2084b08
_ZN10MapManager10GetNumKeysEv kind:function(arm,size=0xc) addr:0x2084b14
_ZN10MapManager15SetBlueWarpOpenEb kind:function(arm,size=0xc) addr:0x2084b20
_ZN10MapManager15GetBlueWarpOpenEv kind:function(arm,size=0xc) addr:0x2084b2c
_ZN10MapManager18func_ov00_02084b38Eiii kind:function(arm,size=0xa8) addr:0x2084b38
_ZN10MapManager18func_ov00_02084b38Eiib kind:function(arm,size=0xa8) addr:0x2084b38
_ZN10MapManager18func_ov00_02084be0Eji kind:function(arm,size=0x7c) addr:0x2084be0
_ZN10MapManager15SetMapDataFlag1Eib kind:function(arm,size=0x10) addr:0x2084c5c
_ZN10MapManager15GetMapDataFlag1Ei kind:function(arm,size=0x10) addr:0x2084c6c
@@ -1235,7 +1235,7 @@ func_ov000_02095fe0 kind:function(arm,size=0x180) addr:0x2095fe0
func_ov000_02096160 kind:function(arm,size=0x98) addr:0x2096160
func_ov000_020961f8 kind:function(arm,size=0x24) addr:0x20961f8
func_ov000_0209621c kind:function(arm,size=0x108) addr:0x209621c
_Z19func_ov000_02096324Pii kind:function(arm,size=0xf4) addr:0x2096324
_Z19func_ov000_02096324PiS_ kind:function(arm,size=0xf4) addr:0x2096324
_Z19func_ov000_02096418Pi kind:function(arm,size=0xb4) addr:0x2096418
func_ov000_020964cc kind:function(arm,size=0xf4) addr:0x20964cc
func_ov000_020965c0 kind:function(arm,size=0x1ec) addr:0x20965c0
@@ -1457,7 +1457,7 @@ func_ov000_0209d550 kind:function(arm,size=0x14) addr:0x209d550
func_ov000_0209d564 kind:function(arm,size=0x16c) addr:0x209d564
func_ov000_0209d6d0 kind:function(arm,size=0x4) addr:0x209d6d0
func_ov000_0209d6d4 kind:function(arm,size=0x14) addr:0x209d6d4
_Z19func_ov000_0209d6e8ii kind:function(arm,size=0x28) addr:0x209d6e8
_Z19func_ov000_0209d6e8PiS_ kind:function(arm,size=0x28) addr:0x209d6e8
func_ov000_0209d710 kind:function(arm,size=0xc) addr:0x209d710
_Z19func_ov000_0209d71cPii kind:function(arm,size=0xc) addr:0x209d71c
func_ov000_0209d728 kind:function(arm,size=0x10) addr:0x209d728
@@ -3588,19 +3588,19 @@ func_ov000_020d6c5c kind:function(arm,size=0xd4) addr:0x20d6c5c
func_ov000_020d6d30 kind:function(arm,size=0xe4) addr:0x20d6d30
func_ov000_020d6e14 kind:function(arm,size=0x2c) addr:0x20d6e14
func_ov000_020d6e40 kind:function(arm,size=0x264) addr:0x20d6e40
func_ov000_020d70a4 kind:function(arm,size=0xc8) addr:0x20d70a4
_Z19func_ov000_020d70a4Piiii kind:function(arm,size=0xc8) addr:0x20d70a4
func_ov000_020d716c kind:function(arm,size=0x14) addr:0x20d716c
func_ov000_020d7180 kind:function(arm,size=0x20) addr:0x20d7180
func_ov000_020d71a0 kind:function(arm,size=0xc8) addr:0x20d71a0
func_ov000_020d7268 kind:function(arm,size=0xc) addr:0x20d7268
func_ov000_020d7274 kind:function(arm,size=0x44) addr:0x20d7274
func_ov000_020d72b8 kind:function(arm,size=0x70) addr:0x20d72b8
_Z19func_ov000_020d72b8Pi kind:function(arm,size=0x70) addr:0x20d72b8
func_ov000_020d7328 kind:function(arm,size=0x6c) addr:0x20d7328
func_ov000_020d7394 kind:function(arm,size=0x28) addr:0x20d7394
PlaySoundEffect kind:function(arm,size=0x34) addr:0x20d73bc
func_ov000_020d73f0 kind:function(arm,size=0x14) addr:0x20d73f0
func_ov000_020d7404 kind:function(arm,size=0x20) addr:0x20d7404
func_ov000_020d7424 kind:function(arm,size=0xc) addr:0x20d7424
_Z19func_ov000_020d7424Pi kind:function(arm,size=0xc) addr:0x20d7424
func_ov000_020d7430 kind:function(arm,size=0x40) addr:0x20d7430
func_ov000_020d7470 kind:function(arm,size=0x1c) addr:0x20d7470
func_ov000_020d748c kind:function(arm,size=0x20) addr:0x20d748c
+1 -1
View File
@@ -1986,7 +1986,7 @@ func_ov015_021847bc kind:function(arm,size=0x7c) addr:0x21847bc
func_ov015_02184838 kind:function(arm,size=0xa4) addr:0x2184838
func_ov015_021848dc kind:function(arm,size=0x8c) addr:0x21848dc
func_ov015_02184968 kind:function(arm,size=0x3c) addr:0x2184968
func_ov015_021849a4 kind:function(arm,size=0x1c) addr:0x21849a4
_Z19func_ov015_021849a4Pi kind:function(arm,size=0x1c) addr:0x21849a4
func_ov015_021849c0 kind:function(arm,size=0x1c) addr:0x21849c0
func_ov015_021849dc kind:function(arm,size=0x10) addr:0x21849dc
func_ov015_021849ec kind:function(arm,size=0x54) addr:0x21849ec
+4 -4
View File
@@ -31,7 +31,7 @@ public:
/* 00 */ Course *mCourse;
/* 04 */ MapBase *mMap;
/* 08 */ unk8 mUnk_08;
/* 09 */ unk8 mUnk_09;
/* 09 */ u8 mUnk_09;
/* 0a */ unk8 mUnk_0a;
/* 0b */ unk8 mUnk_0b;
/* 0c */ u8 mUnk_0c;
@@ -47,7 +47,7 @@ public:
void GetCourseDungeonProgress(CourseProgress *param_2);
void func_ov00_020820fc(s32 param_2, unk32 param_3, unk32 param_4);
unk8 func_ov00_0208210c(unk32 param_2, unk32 *param_3);
void func_ov00_0208210c(unk32 param_2, unk32 *param_3);
void func_ov00_0208230c(s32 *param_2);
void func_ov00_02082348(unk32 *param_2);
void func_ov00_020823a4(unk32 param_2);
@@ -198,7 +198,7 @@ public:
unk32 GetMapData_Unk_38();
s32 func_ov00_020846a4();
static s32 func_ov00_02084700(MapManager *pMapManager);
unk8 func_ov00_02084740();
unk32 func_ov00_02084740();
unk32 func_ov00_020847e0();
unk8 func_ov00_020847f0();
bool func_ov00_02084838();
@@ -218,7 +218,7 @@ public:
unk32 GetNumKeys();
void SetBlueWarpOpen(bool state);
bool GetBlueWarpOpen();
unk8 func_ov00_02084b38(unk32 param_2, unk32 param_3, unk32 param_4);
unk8 func_ov00_02084b38(unk32 param_2, unk32 param_3, bool param_4);
bool func_ov00_02084be0(u32 param_2, unk32 param_3);
void SetMapDataFlag1(unk32 param_2, bool param_3);
bool GetMapDataFlag1(unk32 param_2);
+144 -182
View File
@@ -20,6 +20,7 @@ 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_02079898(unk32 *param_1, unk32 param_2, unk32 param_3);
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);
@@ -39,12 +40,15 @@ 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, unk32 *param_2, unk32 param_3);
extern void func_ov000_02096324(s32 *param_1, s32 param_2);
extern void func_ov000_02096324(unk32 *param_1, unk32 *param_2);
extern s32 *func_ov000_02096418(s32 *param_1);
extern void func_ov000_0209d6e8(s32 param_1, s32 param_2);
extern void func_ov000_0209d6e8(unk32 *param_1, unk32 *param_2);
extern s32 func_ov000_0209d71c(s32 *param_1, s32 param_2);
extern unk32 func_ov000_020a5e9c(unk32 *param_1);
extern void func_ov000_020c3348(unk32 *param_1);
extern void func_ov000_020d70a4(unk32 *param_1, unk32 param_2, unk32 param_3, unk32 param_4);
extern void func_ov000_020d72b8(unk32 *param_1);
extern unk32 func_ov000_020d7424(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);
@@ -60,6 +64,7 @@ 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(MapBase *param_1, s32 param_2);
extern void func_ov015_021849a4(unk32 *param_1);
extern MapBase *func_ov017_0215b4a0(MapBase *param_1, unk32 param_2, unk32 param_3);
extern MapBase *func_ov017_0215b4e8(MapBase *param_1, unk32 param_2, unk32 param_3);
@@ -111,6 +116,8 @@ extern unk32 *data_027e0f7c;
extern unk32 *data_027e103c;
extern unk32 *data_ov000_020e24a4;
extern unk32 data_ov000_020eec68;
extern unk32 data_ov015_02190458;
MapManager::MapManager() {}
@@ -124,92 +131,62 @@ ARM void MapManager::func_ov00_020820fc(s32 param_2, unk32 param_3, unk32 param_
this->mCourse->func_ov00_0207ca28(param_2, param_3, param_4);
}
unk8 MapManager::func_ov00_0208210c(unk32 param_2, unk32 *param_3) {
unk32 *puVar1;
unk8 uVar2;
unk32 uVar3;
s32 iVar4;
unk32 local_40;
unk32 local_3c;
unk32 local_38;
unk32 local_34;
unk16 local_30;
unk8 local_2e;
unk8 local_2d;
unk8 local_2c;
unk8 local_2b;
unk32 local_28;
unk32 local_24;
unk32 local_20;
unk32 local_1c;
unk16 local_18;
unk8 local_16;
unk8 local_15;
unk8 local_14;
unk8 local_13;
ARM void MapManager::func_ov00_0208210c(unk32 param_2, unk32 *param_3) {
void *pvVar3;
UnkStruct_02082348 local_40[2];
local_28 = 0x47;
local_24 = 0;
local_20 = 0;
local_1c = 0xfffffffe;
local_18 = 0;
local_16 = 0xff;
local_15 = 0;
local_14 = 0;
local_13 = 0;
if (param_2 == 0) {
this->func_ov00_02082348(&local_28);
uVar3 = func_ov000_020a5e9c(&local_28);
*param_3 = uVar3;
*(unk8 *) (param_3 + 1) = local_16;
uVar2 = local_15;
local_40[1].mUnk_00 = 0x47;
local_40[1].mUnk_04 = 0;
local_40[1].mUnk_08 = 0;
local_40[1].mUnk_0c = -2;
local_40[1].mUnk_10 = 0;
local_40[1].mUnk_12[0] = -1;
local_40[1].mUnk_12[1] = 0;
local_40[1].mUnk_12[2] = 0;
local_40[1].mUnk_12[3] = 0;
if (param_2 != 0) {
*param_3 = 0xb;
*(unk8 *) (param_3 + 1) = 2;
*(u8 *) ((int) param_3 + 5) = 4;
} else {
*param_3 = 0xb;
*(unk8 *) (param_3 + 1) = 2;
uVar2 = 4;
this->func_ov00_02082348((unk32 *) &local_40[1]);
*param_3 = func_ov000_020a5e9c((unk32 *) &local_40[1]);
*(unk8 *) (param_3 + 1) = local_40[1].mUnk_12[0];
*(u8 *) ((int) param_3 + 5) = local_40[1].mUnk_12[1];
}
*(unk8 *) ((int) param_3 + 5) = uVar2;
// uVar3 = func_ov000_020a5e9c(data_027e0d38->mUnk_28) + 0x1c;
puVar1 = (s32 *) data_027e0d38;
param_3[2] = uVar3;
*(unk8 *) (param_3 + 4) = *(unk8 *) (*(s32 *) (*(s32 *) puVar1 + 0x28) + 0x2e);
*(unk16 *) (param_3 + 5) = *(unk16 *) (*(s32 *) (*(s32 *) puVar1 + 0x28) + 0x36);
iVar4 = *(s32 *) (*(int *) puVar1 + 0x28);
param_3[6] = *(unk32 *) (iVar4 + 0x38);
param_3[7] = *(unk32 *) (iVar4 + 0x3c);
param_3[8] = *(unk32 *) (iVar4 + 0x40);
uVar3 = func_ov000_020a5e9c(puVar1 + 0x28) + 0x44;
param_3[3] = uVar3;
puVar1 = (s32 *) data_027e0d38;
*(unk8 *) ((int) param_3 + 0x11) = *(unk8 *) (*(s32 *) (*(s32 *) data_027e0d38 + 0x28) + 0x56);
iVar4 = *(s32 *) (*(s32 *) puVar1 + 0x28);
param_3[9] = *(unk32 *) (iVar4 + 0x5c);
param_3[10] = *(unk32 *) (iVar4 + 0x60);
param_3[0xb] = *(unk32 *) (iVar4 + 100);
*(unk16 *) ((int) param_3 + 0x16) = *(unk16 *) (*(s32 *) (*(s32 *) puVar1 + 0x28) + 0x68);
iVar4 = *(s32 *) (*(s32 *) puVar1 + 0x28);
local_40 = *(unk32 *) (iVar4 + 0x70);
local_3c = *(unk32 *) (iVar4 + 0x74);
local_38 = *(unk32 *) (iVar4 + 0x78);
local_34 = *(unk32 *) (iVar4 + 0x7c);
local_30 = *(unk16 *) (iVar4 + 0x80);
local_2e = *(unk8 *) (iVar4 + 0x82);
local_2d = *(unk8 *) (iVar4 + 0x83);
local_2c = *(unk8 *) (iVar4 + 0x84);
local_2b = *(unk8 *) (iVar4 + 0x85);
uVar3 = func_ov000_020a5e9c(&local_40);
param_3[0x70] = uVar3;
puVar1 = (s32 *) data_027e0f70;
*(unk8 *) ((int) param_3 + 0x1be) = local_2e;
*(unk8 *) ((int) param_3 + 0x1bf) = local_2d;
func_ov000_02096324(puVar1, *param_3); // unsure if (s32 *param_1, s32 param_2) or (s32 param_1, s32 *param_2)
func_ov000_0209d6e8(*data_027e0f7c, *param_3);
param_3[2] = func_ov000_020a5e9c((unk32 *) ((unk32) (data_027e0d38->mUnk_28) + 0x1c));
*(u8 *) (param_3 + 4) = *(u8 *) ((int) data_027e0d38->mUnk_28 + 0x2e);
*(unk16 *) (param_3 + 5) = *(unk16 *) ((int) data_027e0d38->mUnk_28 + 0x36);
pvVar3 = data_027e0d38->mUnk_28;
param_3[6] = *(unk32 *) ((int) pvVar3 + 0x38); // Likely Vec3p
param_3[7] = *(unk32 *) ((int) pvVar3 + 0x3c);
param_3[8] = *(unk32 *) ((int) pvVar3 + 0x40);
param_3[3] = func_ov000_020a5e9c((unk32 *) ((unk32) data_027e0d38->mUnk_28 + 0x44));
*(u8 *) ((int) param_3 + 0x11) = *(u8 *) ((int) data_027e0d38->mUnk_28 + 0x56);
pvVar3 = data_027e0d38->mUnk_28;
param_3[9] = *(unk32 *) ((int) pvVar3 + 0x5c); // Likely Vec3p
param_3[10] = *(unk32 *) ((int) pvVar3 + 0x60);
param_3[0xb] = *(unk32 *) ((int) pvVar3 + 0x64);
*(unk16 *) ((int) param_3 + 0x16) = *(unk16 *) ((int) data_027e0d38->mUnk_28 + 0x68);
pvVar3 = data_027e0d38->mUnk_28;
local_40[0].mUnk_00 = *(unk32 *) ((int) pvVar3 + 0x70);
local_40[0].mUnk_04 = *(unk32 *) ((int) pvVar3 + 0x74);
local_40[0].mUnk_08 = *(unk32 *) ((int) pvVar3 + 0x78);
local_40[0].mUnk_0c = *(unk32 *) ((int) pvVar3 + 0x7c);
local_40[0].mUnk_10 = *(unk16 *) ((int) pvVar3 + 0x80);
local_40[0].mUnk_12[0] = *(u8 *) ((int) pvVar3 + 0x82);
local_40[0].mUnk_12[1] = *(u8 *) ((int) pvVar3 + 0x83);
local_40[0].mUnk_12[2] = *(u8 *) ((int) pvVar3 + 0x84);
local_40[0].mUnk_12[3] = *(u8 *) ((int) pvVar3 + 0x85);
param_3[0x70] = func_ov000_020a5e9c((unk32 *) &local_40[0]);
*(u8 *) ((int) param_3 + 0x1be) = local_40[0].mUnk_12[0];
*(u8 *) ((int) param_3 + 0x1bf) = local_40[0].mUnk_12[1];
func_ov000_02096324(data_027e0f70, param_3);
func_ov000_0209d6e8(data_027e0f7c, param_3);
if (this->mCourse->mType != CourseType_TempleOfTheOceanKing) {
*(unk8 *) ((int) param_3 + 7) = this->mUnk_08;
*(unk8 *) ((int) param_3 + 7) = (u8) this->mUnk_08;
*(unk8 *) (param_3 + 0x6f) = this->mUnk_09;
return;
}
return;
}
ARM void MapManager::func_ov00_0208230c(s32 *param_2) {
@@ -388,29 +365,31 @@ ARM void MapManager::MapData_vfunc_44() {
}
ARM void MapManager::func_ov00_02082808(s32 param_2) {
if (*(int *) (*(int *) data_027e0d38 + 0x14) == 1) {
int iVar1;
int iVar2;
if (data_027e0d38->mUnk_14 == 1) {
return;
}
s32 var1 = this->func_ov00_02084740();
s32 var2;
if (param_2 == 0) {
// var2 = thunk_FUN_0201f91c(DWORD_overlay_d_0_bss__020eec68); // What are these?
if (var1 == var2) {
iVar1 = this->func_ov00_02084740();
if (param_2 != 0) {
iVar2 = func_ov000_020a5e9c(&data_027e0d38->mUnk_0c);
if (iVar2 == 0) {
func_ov015_021849a4(&data_ov015_02190458);
}
func_ov000_020d70a4(&data_ov000_020eec68, iVar1, 0, 0x7f);
} else {
iVar2 = func_ov000_020d7424(&data_ov000_020eec68);
if (iVar1 == iVar2) {
return;
}
// func_ov000_020d70a4(DWORD_overlay_d_0_bss__020eec68, var1, 0, 0x7f, param_3); // And these?
} else {
var2 = func_ov000_020a5e9c((unk32 *) data_027e0d38 + 0xc);
if (var2 == 0) {
// func_ov015_021849a4(DWORD_overlay_d_15_bss__02190458);
}
// func_ov00_020a5e9c(DWORD_overlay_d_0_bss__020eec68, var1, 0, 0x7f, param_3);
func_ov000_020d70a4(&data_ov000_020eec68, iVar1, 0, 0x7f);
}
var1 = func_ov000_020a5e9c((unk32 *) data_027e0d38 + 0xc);
if (var1 == 0) {
iVar1 = func_ov000_020a5e9c(&data_027e0d38->mUnk_0c);
if (iVar1 == 0) {
return;
}
// func_ov00_020d72b8(DWORD_overlay_d_0_bss__020eec68);
func_ov000_020d72b8(&data_ov000_020eec68);
}
ARM s32 MapManager::MapData_vfunc_7c(s32 param_1, unk32 *param_2, s32 param_3, short param_4[4]) {
@@ -430,78 +409,73 @@ ARM u8 MapManager::GetNumMaps() {
}
ARM s32 MapManager::func_ov00_02082914(unk32 param_2) {
int iVar1;
int iVar2;
void *pvVar1;
int iVar3;
int iVar4;
int local_50;
int local_48;
int iVar5;
Vec3p pVar1;
Entrance local_44;
Entrance local_30;
switch (param_2) {
case 0xfa:
// iVar1 = *(int *)(*(int *) PTR_027e0d38 + 0x28); // define PTR_027e0d38
local_30.mPos.x = *(int *) (iVar1 + 0x5c);
local_30.mPos.y = *(int *) (iVar1 + 0x60);
local_30.mPos.z = *(int *) (iVar1 + 100);
local_30.mAngle = *(unk16 *) (iVar1 + 0x68);
local_30.mId = *(u8 *) (iVar1 + 0x6a);
local_30.mUnk_10 = *(int *) (iVar1 + 0x6c);
iVar1 = this->mMap->AddEntrance(&local_30);
return iVar1;
case 0xfb: break;
case 0xfc: break;
case 0xfd: break;
pvVar1 = data_027e0d38->mUnk_28;
local_30.mPos.x = *(int *) ((int) pvVar1 + 0x5c);
local_30.mPos.y = *(int *) ((int) pvVar1 + 0x60);
local_30.mPos.z = *(int *) ((int) pvVar1 + 100);
local_30.mAngle = *(unk16 *) ((int) pvVar1 + 0x68);
local_30.mId = *(unk8 *) ((int) pvVar1 + 0x6a);
local_30.mUnk_10 = *(int *) ((int) pvVar1 + 0x6c);
iVar3 = this->mMap->AddEntrance(&local_30);
return iVar3;
case 0xfb:
case 0xfc:
case 0xfd:
case 0xfe: break;
default: goto switchD_overlay_d_0;
default: return (int) this;
}
local_44.mId = 0xff;
local_44.mId = -1;
local_44.mUnk_10 = 0;
// iVar1 = *(int *) (*(int *) PTR_027e0d38 + 0x28); // define PTR_027e0d38
local_50 = *(int *) (iVar1 + 0x38);
iVar2 = *(int *) (iVar1 + 0x3c);
local_48 = *(int *) (iVar1 + 0x40);
iVar1 = 0x2000;
iVar3 = 0x2000;
iVar4 = 0xfd;
pvVar1 = data_027e0d38->mUnk_28;
pVar1 = *(Vec3p *) ((int) pvVar1 + 0x38);
iVar3 = 0x2000;
iVar4 = 0x2000;
iVar5 = 0xfd;
if (this->mCourse->mType == CourseType_Sea) {
iVar1 = this->mMap->vfunc_88();
iVar1 = iVar1 + 0xa000;
iVar3 = this->mMap->vfunc_8c();
iVar3 = this->mMap->vfunc_88();
iVar3 = iVar3 + 0xa000;
iVar4 = 0xfe;
iVar4 = this->mMap->vfunc_8c();
iVar4 = iVar4 + 0xa000;
iVar5 = 0xfe;
}
local_44.mAngle = 0;
switch (param_2) {
case 0xfb:
local_48 = this->GetMapMaxZ();
local_48 = local_48 - iVar3;
pVar1.z = this->GetMapMaxZ();
pVar1.z = pVar1.z - iVar4;
local_44.mAngle = 0x8000;
break;
case 0xfc:
local_48 = this->GetMapMinZ();
local_48 = iVar3 + local_48;
pVar1.z = this->GetMapMinZ();
pVar1.z = iVar4 + pVar1.z;
local_44.mAngle = 0;
break;
case 0xfd:
local_50 = this->GetMapMaxX();
local_50 = local_50 - iVar1;
pVar1.x = GetMapMaxX();
pVar1.x = pVar1.x - iVar3;
local_44.mAngle = 0xc000;
break;
case 0xfe:
local_50 = this->GetMapMinX();
local_50 = iVar1 + local_50;
pVar1.x = GetMapMinX();
pVar1.x = iVar3 + pVar1.x;
local_44.mAngle = 0x4000;
}
local_44.mId = (u8) param_2;
local_44.mPos.x = local_50;
local_44.mPos.z = local_48;
local_44.mPos.y = iVar2;
local_44.mUnk_10 = iVar4;
// this = (MapManager *) this->mMap->AddEntrance(&local_44); // huh ????
switchD_overlay_d_0:
return (int) this; // what ???????
local_44.mId = (unk8) param_2;
local_44.mPos.x = pVar1.x;
local_44.mPos.z = pVar1.z;
local_44.mPos.y = pVar1.y;
local_44.mUnk_10 = iVar5;
return this->mMap->AddEntrance(&local_44);
}
ARM void MapManager::func_ov00_02082acc() {
@@ -1004,27 +978,23 @@ ARM bool MapManager::GetOverlappingTrigger(Vec3p *param_2) {
}
ARM bool MapManager::func_ov00_02083790(s32 param_2) {
unk8 *puVar1;
unk8 *puVar2;
bool bVar3;
s32 iVar4;
s32 iStack_18;
s32 aiStack_14[2];
bool bVar1;
int iVar2;
int aiStack_14;
int iStack_18;
// puVar2 = PTR_PTR_overlay_d_0__02083834;
// puVar1 = PTR_DWORD_overlay_d_0__02083830;
if (param_2 != 0) {
// *(s32 *) (*(s32 *) (*(s32 *) PTR_DWORD_overlay_d_0__02083830 + 8) + 0x1b4) = param_2;
*(s32 *) (*(s32 *) (*(s32 *) puVar1 + 4) + 0x1b4) = param_2;
// iVar4 = UnkStruct_027e0d38::FUN_overlay_d_0__02078b40(*(UnkStruct_027e0d38 **) puVar2);
if ((iVar4 != 0) && (bVar3 = this->func_ov00_02082e1c(aiStack_14, &iStack_18), !bVar3)) {
// FUN_overlay_d_0__02079898(*(undefined4 *) PTR_DWORD_overlay_d_0__02083838, param_2, 0x10);
gActorManager->func_ov00_020c3ce8(param_2, true);
}
bVar3 = this->mMap->AnyTrigger_func_0c(param_2);
return bVar3;
if (param_2 == 0) {
return true;
}
return true;
*(int *) (*(int *) (*(unk32 *) data_027e0f64 + 8) + 0x1b4) = param_2;
*(int *) (*(int *) (*(unk32 *) data_027e0f64 + 4) + 0x1b4) = param_2;
iVar2 = data_027e0d38->func_ov000_02078b40();
if ((iVar2 != 0) && (bVar1 = this->func_ov00_02082e1c(&aiStack_14, &iStack_18), !bVar1)) {
func_ov000_02079898(data_027e0d3c, param_2, 0x10);
gActorManager->func_ov00_020c3ce8(param_2, true);
}
bVar1 = this->mMap->AnyTrigger_func_0c(param_2);
return bVar1;
}
ARM bool MapManager::func_ov00_02083840(s32 param_2) {
@@ -1195,16 +1165,11 @@ ARM s32 MapManager::func_ov00_02083c50(unk32 z) {
}
ARM void MapManager::func_ov00_02083c7c(Vec3p *param_2, Vec2b *param_3) {
q20 x;
q20 z;
q20 y;
Vec3p local_28;
x = this->func_ov00_02083c24(param_3->x);
param_2->x = x;
z = this->func_ov00_02083c50(param_3->y);
param_2->z = z;
y = this->MapData_vfunc_68(&local_28, true);
param_2->y = y;
param_2->x = this->func_ov00_02083c24(param_3->x);
param_2->z = this->func_ov00_02083c50(param_3->y);
local_28 = *param_2;
param_2->y = this->MapData_vfunc_68(&local_28, true);
}
ARM void MapManager::func_ov00_02083ce8(MapManager *param_1, s32 *param_2, u32 param_3, s32 param_4, u32 param_5) {
@@ -1627,7 +1592,7 @@ ARM s32 MapManager::func_ov00_02084700(MapManager *pMapManager) {
return iVar1;
}
unk8 MapManager::func_ov00_02084740() {
unk32 MapManager::func_ov00_02084740() {
static const s32 data_ov000_020d88f0[] = {
// Map IDs?
0x51, 0x6e, 0x65, 0x50, 0x30, 0x74, 0x49, 0x50, 0x51, 0x54, 0x52, 0x53, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5f,
@@ -1831,25 +1796,22 @@ bool MapManager::GetBlueWarpOpen() {
return this->mCourse->mBlueWarpOpen;
}
unk8 MapManager::func_ov00_02084b38(unk32 param_2, unk32 param_3, unk32 param_4) {
unk8 MapManager::func_ov00_02084b38(unk32 param_2, unk32 param_3, bool param_4) {
MapBase *pMVar1;
bool value;
if (param_2 != 0) {
// value = SUB41(param_4, 0); // What is SUB41 and where is it defined?
switch (param_3) {
case 0:
pMVar1 = this->mMap;
if (param_4 == 0) {
if (!param_4) {
pMVar1->mUnk_180[param_2 >> 5].mUnk_0 = pMVar1->mUnk_180[param_2 >> 5].mUnk_0 & ~(1 << (param_2 & 0x1f));
return;
}
pMVar1->mUnk_180[param_2 >> 5].mUnk_0 = pMVar1->mUnk_180[param_2 >> 5].mUnk_0 | 1 << (param_2 & 0x1f);
return;
case 1: this->mCourse->SetMapDataFlag0(param_2, value); return;
case 2: this->mCourse->SetFlag0(param_2, value); return;
case 3: this->mCourse->SetFlag1(param_2, value); return;
default: return;
break;
case 1: this->mCourse->SetMapDataFlag0(param_2, param_4); break;
case 2: this->mCourse->SetFlag0(param_2, param_4); break;
case 3: this->mCourse->SetFlag1(param_2, param_4); break;
default: break;
}
}
}