summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSammygoodTunes <sygamerz@gmail.com>2025-04-07 21:06:29 +0200
committerSammygoodTunes <sygamerz@gmail.com>2025-04-07 21:06:29 +0200
commit96e2380df560dd3d9898f41f6caaa08e5eeaa56e (patch)
tree29df016116d8d00b5235885c1be9f3b516ea0311
parentd5a2e0f57e469d780eb0e2ab1183aa40f93cf23c (diff)
Decomp progress 33%
-rw-r--r--config/eur/arm9/overlays/ov000/symbols.txt16
-rw-r--r--config/usa/arm9/overlays/ov000/symbols.txt16
-rw-r--r--include/Map/MapBase.hpp2
-rw-r--r--include/Map/MapManager.hpp2
-rw-r--r--src/00_Core/Map/MapBase.cpp2
-rw-r--r--src/00_Core/Map/MapManager.cpp226
6 files changed, 103 insertions, 161 deletions
diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt
index 528f1d22..04f233bc 100644
--- a/config/eur/arm9/overlays/ov000/symbols.txt
+++ b/config/eur/arm9/overlays/ov000/symbols.txt
@@ -336,12 +336,12 @@ _ZN7MapBase18func_ov00_0207e28cEi kind:function(arm,size=0x1b8) addr:0x207e28c
_ZN7MapBase8vfunc_b4Ev kind:function(arm,size=0x28) addr:0x207e444
_ZN7MapBase8vfunc_48Ev kind:function(arm,size=0x1c) addr:0x207e46c
_ZN7MapBase8vfunc_50Ev kind:function(arm,size=0x8) addr:0x207e488
-_ZN7MapBase8vfunc_54Ev kind:function(arm,size=0x8) addr:0x207e490
-_ZN7MapBase8vfunc_58Ev kind:function(arm,size=0x8) addr:0x207e498
+_ZN7MapBase8vfunc_54EP5Vec2b kind:function(arm,size=0x8) addr:0x207e490
+_ZN7MapBase8vfunc_58EP5Vec2bi kind:function(arm,size=0x8) addr:0x207e498
_ZN7MapBase8vfunc_5cEv kind:function(arm,size=0x8) addr:0x207e4a0
-_ZN7MapBase8vfunc_60Ev kind:function(arm,size=0x8) addr:0x207e4a8
+_ZN7MapBase8vfunc_60EPh kind:function(arm,size=0x8) addr:0x207e4a8
_ZN7MapBase8vfunc_64Ev kind:function(arm,size=0x8) addr:0x207e4b0
-_ZN7MapBase8vfunc_68Ev kind:function(arm,size=0x488) addr:0x207e4b8
+_ZN7MapBase8vfunc_68EP5Vec3pb kind:function(arm,size=0x488) addr:0x207e4b8
_ZN7MapBase18func_ov00_0207e940EPc kind:function(arm,size=0x28) addr:0x207e940
_ZN7MapBase18func_ov00_0207e968Ev kind:function(arm,size=0x4) addr:0x207e968
_ZN7MapBase18func_ov00_0207e96cEv kind:function(arm,size=0x4) addr:0x207e96c
@@ -355,11 +355,11 @@ _ZN7MapBase8vfunc_88Ev kind:function(arm,size=0x8) addr:0x207f324
_ZN7MapBase8vfunc_8cEv kind:function(arm,size=0x8) addr:0x207f32c
_ZN7MapBase8vfunc_9cEv kind:function(arm,size=0x4) addr:0x207f334
_ZN7MapBase8vfunc_a0Ev kind:function(arm,size=0x4) addr:0x207f338
-_ZN7MapBase8vfunc_a4Ev kind:function(arm,size=0x8) addr:0x207f33c
+_ZN7MapBase8vfunc_a4EPc kind:function(arm,size=0x8) addr:0x207f33c
_ZN7MapBase8vfunc_a8Ev kind:function(arm,size=0x4) addr:0x207f344
_ZN7MapBase8vfunc_acEv kind:function(arm,size=0x4) addr:0x207f348
-_ZN7MapBase8vfunc_78Ev kind:function(arm,size=0x8) addr:0x207f34c
-_ZN7MapBase8vfunc_7cEv kind:function(arm,size=0x8) addr:0x207f354
+_ZN7MapBase8vfunc_78EPb kind:function(arm,size=0x8) addr:0x207f34c
+_ZN7MapBase8vfunc_7cEiPiiPs kind:function(arm,size=0x8) addr:0x207f354
_ZN7MapBase8vfunc_80Ev kind:function(arm,size=0x8) addr:0x207f35c
_ZN7MapBase8vfunc_84Ei kind:function(arm,size=0x28) addr:0x207f364
_ZN7MapBase18func_ov00_0207f38cEPi kind:function(arm,size=0x38) addr:0x207f38c
@@ -621,7 +621,7 @@ _ZN10MapManager16MapData_vfunc_6cEiii kind:function(arm,size=0x18) addr:0x2083f8
_ZN10MapManager16MapData_vfunc_70EP5Vec3p kind:function(arm,size=0x18) addr:0x2083f98
_ZN10MapManager18func_ov00_02083fb0EPjPS_P5Vec3p kind:function(arm,size=0x74) addr:0x2083fb0
_ZN10MapManager18GetTileWorldBoundsEP5Vec2bP4AABB kind:function(arm,size=0x64) addr:0x2084024
-_ZN10MapManager16MapData_vfunc_54EPc kind:function(arm,size=0x18) addr:0x2084088
+_ZN10MapManager16MapData_vfunc_54EP5Vec2b kind:function(arm,size=0x18) addr:0x2084088
_ZN10MapManager18func_ov00_020840a0Ecci kind:function(arm,size=0x24) addr:0x20840a0
_ZN10MapManager16MapData_vfunc_78EPb kind:function(arm,size=0x18) addr:0x20840c4
_ZN10MapManager18func_ov00_020840dcEv kind:function(arm,size=0x24) addr:0x20840dc
diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt
index d7e06342..4b67f92d 100644
--- a/config/usa/arm9/overlays/ov000/symbols.txt
+++ b/config/usa/arm9/overlays/ov000/symbols.txt
@@ -336,12 +336,12 @@ _ZN7MapBase18func_ov00_0207e28cEi kind:function(arm,size=0x1b8) addr:0x207e22c
_ZN7MapBase8vfunc_b4Ev kind:function(arm,size=0x28) addr:0x207e3e4
_ZN7MapBase8vfunc_48Ev kind:function(arm,size=0x1c) addr:0x207e40c
_ZN7MapBase8vfunc_50Ev kind:function(arm,size=0x8) addr:0x207e428
-_ZN7MapBase8vfunc_54Ev kind:function(arm,size=0x8) addr:0x207e430
-_ZN7MapBase8vfunc_58Ev kind:function(arm,size=0x8) addr:0x207e438
+_ZN7MapBase8vfunc_54EP5Vec2b kind:function(arm,size=0x8) addr:0x207e430
+_ZN7MapBase8vfunc_58EP5Vec2bi kind:function(arm,size=0x8) addr:0x207e438
_ZN7MapBase8vfunc_5cEv kind:function(arm,size=0x8) addr:0x207e440
-_ZN7MapBase8vfunc_60Ev kind:function(arm,size=0x8) addr:0x207e448
+_ZN7MapBase8vfunc_60EPh kind:function(arm,size=0x8) addr:0x207e448
_ZN7MapBase8vfunc_64Ev kind:function(arm,size=0x8) addr:0x207e450
-_ZN7MapBase8vfunc_68Ev kind:function(arm,size=0x488) addr:0x207e458
+_ZN7MapBase8vfunc_68EP5Vec3pb kind:function(arm,size=0x488) addr:0x207e458
_ZN7MapBase18func_ov00_0207e940EPc kind:function(arm,size=0x28) addr:0x207e8e0
_ZN7MapBase18func_ov00_0207e968Ev kind:function(arm,size=0x4) addr:0x207e908
_ZN7MapBase18func_ov00_0207e96cEv kind:function(arm,size=0x4) addr:0x207e90c
@@ -355,11 +355,11 @@ _ZN7MapBase8vfunc_88Ev kind:function(arm,size=0x8) addr:0x207f2c4
_ZN7MapBase8vfunc_8cEv kind:function(arm,size=0x8) addr:0x207f2cc
_ZN7MapBase8vfunc_9cEv kind:function(arm,size=0x4) addr:0x207f2d4
_ZN7MapBase8vfunc_a0Ev kind:function(arm,size=0x4) addr:0x207f2d8
-_ZN7MapBase8vfunc_a4Ev kind:function(arm,size=0x8) addr:0x207f2dc
+_ZN7MapBase8vfunc_a4EPc kind:function(arm,size=0x8) addr:0x207f2dc
_ZN7MapBase8vfunc_a8Ev kind:function(arm,size=0x4) addr:0x207f2e4
_ZN7MapBase8vfunc_acEv kind:function(arm,size=0x4) addr:0x207f2e8
-_ZN7MapBase8vfunc_78Ev kind:function(arm,size=0x8) addr:0x207f2ec
-_ZN7MapBase8vfunc_7cEv kind:function(arm,size=0x8) addr:0x207f2f4
+_ZN7MapBase8vfunc_78EPb kind:function(arm,size=0x8) addr:0x207f2ec
+_ZN7MapBase8vfunc_7cEiPiiPs kind:function(arm,size=0x8) addr:0x207f2f4
_ZN7MapBase8vfunc_80Ev kind:function(arm,size=0x8) addr:0x207f2fc
_ZN7MapBase8vfunc_84Ei kind:function(arm,size=0x28) addr:0x207f304
_ZN7MapBase18func_ov00_0207f38cEPi kind:function(arm,size=0x38) addr:0x207f32c
@@ -621,7 +621,7 @@ _ZN10MapManager16MapData_vfunc_6cEiii kind:function(arm,size=0x18) addr:0x2083f2
_ZN10MapManager16MapData_vfunc_70EP5Vec3p kind:function(arm,size=0x18) addr:0x2083f38
_ZN10MapManager18func_ov00_02083fb0EPjPS_P5Vec3p kind:function(arm,size=0x74) addr:0x2083f50
_ZN10MapManager18GetTileWorldBoundsEP5Vec2bP4AABB kind:function(arm,size=0x64) addr:0x2083fc4
-_ZN10MapManager16MapData_vfunc_54EPc kind:function(arm,size=0x18) addr:0x2084028
+_ZN10MapManager16MapData_vfunc_54EP5Vec2b kind:function(arm,size=0x18) addr:0x2084028
_ZN10MapManager18func_ov00_020840a0Ecci kind:function(arm,size=0x24) addr:0x2084040
_ZN10MapManager16MapData_vfunc_78EPb kind:function(arm,size=0x18) addr:0x2084064
_ZN10MapManager18func_ov00_020840dcEv kind:function(arm,size=0x24) addr:0x208407c
diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp
index ecf92c08..1750cc6b 100644
--- a/include/Map/MapBase.hpp
+++ b/include/Map/MapBase.hpp
@@ -135,7 +135,7 @@ public:
/* 48 */ virtual void vfunc_48();
/* 4c */ virtual s32 vfunc_4c() = 0;
/* 50 */ virtual unk32 vfunc_50();
- /* 54 */ virtual unk32 vfunc_54(unk8 *param_1);
+ /* 54 */ virtual unk32 vfunc_54(Vec2b *param_1);
/* 58 */ virtual unk32 vfunc_58(Vec2b *param_1, int param_2);
/* 5c */ virtual unk32 vfunc_5c();
/* 60 */ virtual unk32 vfunc_60(u8 *param_1);
diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp
index d82694db..39e15b88 100644
--- a/include/Map/MapManager.hpp
+++ b/include/Map/MapManager.hpp
@@ -178,7 +178,7 @@ public:
unk32 MapData_vfunc_70(Vec3p *param_2);
static void func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3);
void GetTileWorldBounds(Vec2b *tile, AABB *tileBounds);
- unk32 MapData_vfunc_54(unk8 *a);
+ unk32 MapData_vfunc_54(Vec2b *a);
unk8 func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4);
unk32 MapData_vfunc_78(bool *param_1);
unk8 func_ov00_020840dc();
diff --git a/src/00_Core/Map/MapBase.cpp b/src/00_Core/Map/MapBase.cpp
index f4182b96..8672e0de 100644
--- a/src/00_Core/Map/MapBase.cpp
+++ b/src/00_Core/Map/MapBase.cpp
@@ -18,7 +18,7 @@ s32 MapBase::func_ov00_0207e28c(s32 param_2) {}
void MapBase::vfunc_b4() {}
void MapBase::vfunc_48() {}
unk32 MapBase::vfunc_50() {}
-unk32 MapBase::vfunc_54(unk8 *param_1) {}
+unk32 MapBase::vfunc_54(Vec2b *param_1) {}
unk32 MapBase::vfunc_58(Vec2b *param_1, int param_2) {}
unk32 MapBase::vfunc_5c() {}
unk32 MapBase::vfunc_60(u8 *param_1) {}
diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp
index e7e826f6..c5903854 100644
--- a/src/00_Core/Map/MapManager.cpp
+++ b/src/00_Core/Map/MapManager.cpp
@@ -252,12 +252,7 @@ ARM Vec3p *MapManager::func_ov00_02082538() {
s32 var1 = this->mMap->vfunc_4c();
Vec3p var0;
if (var1 == 2) return &this->mMap->mUnk_1a0;
- q20 x = gPlayerPos.x;
- q20 y = gPlayerPos.y;
- var0.x = x;
- var0.y = y;
- q20 z = gPlayerPos.z;
- var0.z = z;
+ var0 = gPlayerPos;
return &var0;
}
@@ -353,7 +348,11 @@ ARM void MapManager::DestroyMap() {
if (this->mMap == NULL) {
return;
}
- this->mMap->~MapBase();
+ if (this->mMap != NULL) {
+ this->mMap->~MapBase(); // 0x0 offset instead of the expected 0x4.
+ }
+ this->mMap = NULL;
+ return;
}
ARM void MapManager::MapData_vfunc_44() {
@@ -1300,7 +1299,8 @@ ARM void MapManager::func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p
iVar1 = param_2->mMap->vfunc_74(param_3);
if (iVar1 != 0) {
- *param_1 = *(unk32 *) (iVar1 + 0xc);
+ // iVar1 += 0xc;
+ *param_1 = iVar1;
return;
}
dVar2 = param_2->MapData_vfunc_70(param_3);
@@ -1324,12 +1324,12 @@ void MapManager::GetTileWorldBounds(Vec2b *tile, AABB *tileBounds) {
Vec3p_Add(&tileBounds->max, &local_20, &tileBounds->max);
}
-unk32 MapManager::MapData_vfunc_54(unk8 *a) {
+unk32 MapManager::MapData_vfunc_54(Vec2b *a) {
return this->mMap->vfunc_54(a); // what to use for this param?
}
unk8 MapManager::func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4) {
- unk8 local_8;
+ Vec2b local_8;
unk8 local_7;
unk16 uStack_6;
@@ -1383,97 +1383,63 @@ unk8 MapManager::func_ov00_02084164(Vec2b *param_2) {
unk32 uVar2;
iVar1 = this->mMap->vfunc_58(param_2, 7 /*, pcVar3, param_4*/); // Params?
- if (iVar1 == 0) {
- uVar2 = this->MapData_vfunc_54(0);
- switch (uVar2) {
- case 0: break;
- case 1: return 0;
- case 2: return 0;
- case 3: return 0;
- case 4: return 0;
- case 5: return 0;
- case 6: return 0;
- case 7: return 0;
- case 8: break;
- case 9: break;
- case 10: return 0;
- case 0xb: break;
- case 0xc: break;
- case 0xd: break;
- case 0xe: break; // I mean, honestly Ghidra.
- case 0xf: break; // What are we going to do with you?
- case 0x10: break;
- case 0x11: break;
- case 0x12: break;
- case 0x13: break;
- case 0x14: return 0;
- case 0x15: break;
- case 0x16: break;
- case 0x17: return 0;
- case 0x18: break;
- case 0x19: return 0;
- case 0x1a: break;
- case 0x1b: return 0;
- case 0x1c: return 0;
- case 0x1d: return 0;
- case 0x1e: return 0;
- case 0x1f: return 0;
- case 0x20: break;
- case 0x21: break;
- case 0x22: break;
- case 0x23: break;
- case 0x24: return 0;
- case 0x25: break;
- case 0x26: break;
- case 0x27: break;
- case 0x28: break;
- case 0x29: break;
- case 0x2a: break;
- case 0x2b: return 0;
- case 0x2c: break;
- case 0x2d: break;
- case 0x2e: break;
- case 0x2f: break;
- case 0x30: return 0;
- case 0x31: break;
- case 0x32: break;
- case 0x33: return 0;
- case 0x34: return 0;
- case 0x35: break;
- case 0x36: break;
- case 0x37: return 0;
- case 0x38: break;
- case 0x39: break;
- case 0x3a: break;
- case 0x3b: break;
- case 0x3c: break;
- case 0x3d: break;
- case 0x3e: break;
- case 0x3f: break;
- case 0x40: return 0;
- case 0x41: break;
- case 0x42: break;
- case 0x43: break;
- case 0x44: break;
- case 0x45: break;
- case 0x46: return 0;
- case 0x47: return 0;
- case 0x48: return 0;
- case 0x49: return 0;
- case 0x4a: return 0;
- case 0x4b: return 0;
- case 0x4c: return 0;
- case 0x4d: break;
- case 0x4e: return 0;
- case 0x4f: return 0;
- case 0x50: return 0;
- case 0x51: break;
- case 0x52: break;
- case 0x53: break;
- case 0x54: break;
- default: return 0;
- }
- return 1;
+ if (iVar1 != 0) {
+ return 0;
+ }
+ uVar2 = this->MapData_vfunc_54(param_2);
+ switch (uVar2) {
+ case 0:
+ case 8:
+ case 9:
+ case 0xb:
+ case 0xc:
+ case 0xd:
+ case 0xe:
+ case 0xf:
+ case 0x10:
+ case 0x11:
+ case 0x12:
+ case 0x13:
+ case 0x15:
+ case 0x16:
+ case 0x18:
+ case 0x1a:
+ case 0x20:
+ case 0x21:
+ case 0x22:
+ case 0x23:
+ case 0x25:
+ case 0x26:
+ case 0x27:
+ case 0x28:
+ case 0x29:
+ case 0x2a:
+ case 0x2c:
+ case 0x2d:
+ case 0x2e:
+ case 0x2f:
+ case 0x31:
+ case 0x32:
+ case 0x35:
+ case 0x36:
+ case 0x38:
+ case 0x39:
+ case 0x3a:
+ case 0x3b:
+ case 0x3c:
+ case 0x3d:
+ case 0x3e:
+ case 0x3f:
+ case 0x41:
+ case 0x42:
+ case 0x43:
+ case 0x44:
+ case 0x45:
+ case 0x4d:
+ case 0x51:
+ case 0x52:
+ case 0x53:
+ case 0x54: return 1;
}
return 0;
}
@@ -1714,54 +1680,30 @@ unk8 MapManager::func_ov00_020847f0() {
bool MapManager::func_ov00_02084838() {
unk32 uVar1 = this->GetMapData_Unk_38();
switch (uVar1) {
- case 0: return false;
- case 1: break;
- case 2: break;
- case 3: break;
- case 4: break;
- case 5: break;
- case 6: return false;
- case 7: return false;
- case 8: return false;
- case 9: return false;
- case 10: break;
- case 0xb: break;
- case 0xc: break;
- case 0xd: return false;
- case 0xe: return false;
- case 0xf: return false;
- case 0x10: return false;
- case 0x11: break;
- case 0x12: return false;
- case 0x13: break;
- case 0x14: break;
- case 0x15: break;
- case 0x16: break;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 10:
+ case 0xb:
+ case 0xc:
+ case 0x11:
+ case 0x13:
+ case 0x14:
+ case 0x15:
+ case 0x16: return true;
default: return false;
}
- return true;
}
bool MapManager::func_ov00_020848b8() {
unk32 uVar1 = this->func_ov00_020846a4();
switch (uVar1) {
- case 0: break;
- case 1: break;
- case 2: break;
- case 3: break;
- case 4: break;
- case 5: break;
- case 6: return true;
- case 7: break;
- case 8: break;
- case 9: break;
- case 10: break;
- case 0xb: break;
- case 0xc: return true;
- case 0xd: return true;
- case 0xe: break;
- case 0xf: return true;
- case 0x10: break;
+ case 6:
+ case 0xc:
+ case 0xd:
+ case 0xf:
case 0x11: return true;
}
return false;