summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSammygoodTunes <sygamerz@gmail.com>2025-02-06 14:00:27 +0100
committerSammygoodTunes <sygamerz@gmail.com>2025-02-06 14:00:27 +0100
commit4c799ec3f32e5bd06463f88fa036d8208d6bcb02 (patch)
treeeb3eaec62a4af5c7452a2e9cf81c424be7ba3572
parentfdaf2b17909b191ea6694cc93e63aa77c6991079 (diff)
Decomp progress 29%
-rw-r--r--config/eur/arm9/overlays/ov000/symbols.txt8
-rw-r--r--config/usa/arm9/overlays/ov000/symbols.txt6
-rw-r--r--include/Map/Entrance.hpp2
-rw-r--r--include/Map/MapManager.hpp8
-rw-r--r--src/00_Core/Map/MapManager.cpp57
5 files changed, 43 insertions, 38 deletions
diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt
index 132510b3..9c5b3c4c 100644
--- a/config/eur/arm9/overlays/ov000/symbols.txt
+++ b/config/eur/arm9/overlays/ov000/symbols.txt
@@ -82,7 +82,7 @@ func_ov000_02078b0c kind:function(thumb,size=0x34) addr:0x2078b0c
_ZN18UnkStruct_027e0d3819func_ov000_02078b40Ev kind:function(arm,size=0x24) addr:0x2078b40
_ZN18UnkStruct_027e0d3819func_ov000_02078b64Ev kind:function(arm,size=0x24) addr:0x2078b64
_ZN18UnkStruct_027e0d3819func_ov000_02078b88Ev kind:function(arm,size=0x3c) addr:0x2078b88
-func_ov000_02078bc4 kind:function(thumb,size=0x2c) addr:0x2078bc4
+_Z19func_ov000_02078bc4i kind:function(thumb,size=0x2c) addr:0x2078bc4
func_ov000_02078bf0 kind:function(thumb,size=0x11c) addr:0x2078bf0
func_ov000_02078d0c kind:function(thumb,size=0x24) addr:0x2078d0c
func_ov000_02078d30 kind:function(thumb,size=0x24) addr:0x2078d30
@@ -577,7 +577,7 @@ _ZN10MapManager18func_ov00_020835f4Ei kind:function(arm,size=0x10) addr:0x20835f
_ZN10MapManager18func_ov00_02083604Ei kind:function(arm,size=0x10) addr:0x2083604
_ZN10MapManager18func_ov00_02083614Ei kind:function(arm,size=0x10) addr:0x2083614
_ZN10MapManager14GetEntrancePosEP8Entrancei kind:function(arm,size=0x40) addr:0x2083624
-_ZN10MapManager18func_ov00_02083664EP5Vec3pi kind:function(arm,size=0x58) addr:0x2083664
+_ZN10MapManager18func_ov00_02083664EP8Entrancei kind:function(arm,size=0x58) addr:0x2083664
_ZN10MapManager21GetTriggerBoundingBoxEiP4AABB kind:function(arm,size=0x10) addr:0x20836bc
_ZN10MapManager23GetTriggerBoundingBoxesEiP4AABBi kind:function(arm,size=0x10) addr:0x20836cc
_ZN10MapManager18func_ov00_020836dcEjj kind:function(arm,size=0x94) addr:0x20836dc
@@ -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_54Ev kind:function(arm,size=0x18) addr:0x2084088
+_ZN10MapManager16MapData_vfunc_54EPc 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
@@ -640,7 +640,7 @@ _ZN10MapManager18func_ov00_0208439cEP5Vec2sP5Vec3p kind:function(arm,size=0x50)
_ZN10MapManager18func_ov00_020843ecEPi kind:function(arm,size=0x2ac) addr:0x20843ec
_ZN10MapManager17GetMapData_Unk_38Ev kind:function(arm,size=0xc) addr:0x2084698
_ZN10MapManager18func_ov00_020846a4Ev kind:function(arm,size=0x5c) addr:0x20846a4
-_ZN10MapManager18func_ov00_02084700EPi kind:function(arm,size=0x40) addr:0x2084700
+_ZN10MapManager18func_ov00_02084700EPS_ kind:function(arm,size=0x40) addr:0x2084700
_ZN10MapManager18func_ov00_02084740Ev kind:function(arm,size=0xa0) addr:0x2084740
_ZN10MapManager18func_ov00_020847e0Ev kind:function(arm,size=0x10) addr:0x20847e0
_ZN10MapManager18func_ov00_020847f0Ev kind:function(arm,size=0x48) addr:0x20847f0
diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt
index 31ed1103..2589d6f6 100644
--- a/config/usa/arm9/overlays/ov000/symbols.txt
+++ b/config/usa/arm9/overlays/ov000/symbols.txt
@@ -577,7 +577,7 @@ _ZN10MapManager18func_ov00_020835f4Ei kind:function(arm,size=0x10) addr:0x208359
_ZN10MapManager18func_ov00_02083604Ei kind:function(arm,size=0x10) addr:0x20835a4
_ZN10MapManager18func_ov00_02083614Ei kind:function(arm,size=0x10) addr:0x20835b4
_ZN10MapManager14GetEntrancePosEP8Entrancei kind:function(arm,size=0x40) addr:0x20835c4
-_ZN10MapManager18func_ov00_02083664EP5Vec3pi kind:function(arm,size=0x58) addr:0x2083604
+_ZN10MapManager18func_ov00_02083664EP8Entrancei kind:function(arm,size=0x58) addr:0x2083604
_ZN10MapManager21GetTriggerBoundingBoxEiP4AABB kind:function(arm,size=0x10) addr:0x208365c
_ZN10MapManager23GetTriggerBoundingBoxesEiP4AABBi kind:function(arm,size=0x10) addr:0x208366c
_ZN10MapManager18func_ov00_020836dcEjj kind:function(arm,size=0x94) addr:0x208367c
@@ -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_54Ev kind:function(arm,size=0x18) addr:0x2084028
+_ZN10MapManager16MapData_vfunc_54EPc 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
@@ -640,7 +640,7 @@ _ZN10MapManager18func_ov00_0208439cEP5Vec2sP5Vec3p kind:function(arm,size=0x50)
_ZN10MapManager18func_ov00_020843ecEPi kind:function(arm,size=0x2ac) addr:0x208438c
_ZN10MapManager17GetMapData_Unk_38Ev kind:function(arm,size=0xc) addr:0x2084638
_ZN10MapManager18func_ov00_020846a4Ev kind:function(arm,size=0x5c) addr:0x2084644
-_ZN10MapManager18func_ov00_02084700EPi kind:function(arm,size=0x40) addr:0x20846a0
+_ZN10MapManager18func_ov00_02084700EPS_ kind:function(arm,size=0x40) addr:0x20846a0
_ZN10MapManager18func_ov00_02084740Ev kind:function(arm,size=0xa0) addr:0x20846e0
_ZN10MapManager18func_ov00_020847e0Ev kind:function(arm,size=0x10) addr:0x2084780
_ZN10MapManager18func_ov00_020847f0Ev kind:function(arm,size=0x48) addr:0x2084790
diff --git a/include/Map/Entrance.hpp b/include/Map/Entrance.hpp
index 1e09d022..1ff69575 100644
--- a/include/Map/Entrance.hpp
+++ b/include/Map/Entrance.hpp
@@ -11,7 +11,7 @@ class Entrance : public SysObject {
public:
/* 00 */ Vec3p mPos;
/* 0c */ unk16 mAngle;
- /* 0e */ s8 mId;
+ /* 0e */ u8 mId;
/* 0f */ unk8 mUnk_0f;
/* 10 */ s32 mUnk_10;
/* 14 */
diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp
index 8916d41f..12f873d1 100644
--- a/include/Map/MapManager.hpp
+++ b/include/Map/MapManager.hpp
@@ -176,9 +176,9 @@ public:
void func_ov00_02083f44(Vec3p *param_2);
unk8 MapData_vfunc_6c(unk32 param_2, unk32 param_3, unk32 param_4);
unk8 MapData_vfunc_70(Vec3p *param_2);
- static unk8 func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3);
+ static void func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3);
void GetTileWorldBounds(Vec2b *tile, AABB *tileBounds);
- unk32 MapData_vfunc_54();
+ unk32 MapData_vfunc_54(unk8 *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();
@@ -196,8 +196,8 @@ public:
unk8 func_ov00_0208439c(Vec2s *param_2, Vec3p *param_3);
void func_ov00_020843ec(s32 *param_2);
unk32 GetMapData_Unk_38();
- unk8 func_ov00_020846a4();
- static unk8 func_ov00_02084700(s32 *param_1);
+ s32 func_ov00_020846a4();
+ static s32 func_ov00_02084700(MapManager *pMapManager);
unk8 func_ov00_02084740();
unk32 func_ov00_020847e0();
unk8 func_ov00_020847f0();
diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp
index 22ec6050..708652b6 100644
--- a/src/00_Core/Map/MapManager.cpp
+++ b/src/00_Core/Map/MapManager.cpp
@@ -945,10 +945,15 @@ ARM bool MapManager::func_ov00_020836dc(u32 type, u32 actorId) {
Actor *actor;
Vec3p playerPos;
- if (!(actorId != 0 && actorId != 1)) { // what an awkward statement (as opposed to actorId < 2)
- playerPos.x = gPlayerPos->x;
- playerPos.y = gPlayerPos->y;
- playerPos.z = gPlayerPos->z;
+ if (!(actorId != 0 && actorId != 1)) { // what an awkward statement (as opposed to if (actorId < 2))
+ // below doesn't match in objdiff
+ q20 x = gPlayerPos->x;
+ q20 y = gPlayerPos->y;
+ playerPos.x = x;
+ playerPos.y = y;
+ q20 z = gPlayerPos->z;
+ playerPos.z = z;
+
} else {
actor = gActorManager->FindActorById(actorId);
if (actor == NULL) {
@@ -1210,12 +1215,14 @@ ARM void MapManager::func_ov00_02083ce8(MapManager *param_1, s32 *param_2, u32 p
}
ARM void MapManager::func_ov00_02083e34(unk8 param_2, unk8 param_3, unk32 param_4) {
- unk8 local_8; // Should this be a bool or a Vec2p or a Vec3p?
+ // Missing opcode in objdiff
+ unk8 local_8; // What type is this?
unk8 local_7; // Unused.
- unk16 uStack_6;
+ unk16 uStack_6; // Unused.
uStack_6 = (unk16) ((u32) param_4 >> 0x10);
- // _local_8 = CONCAT11(param_3, param_2); What is this?
+ local_8 = param_2;
+ local_7 = param_3;
this->mMap->vfunc_60(&local_8);
}
@@ -1227,7 +1234,7 @@ ARM bool MapManager::func_ov00_02083e70() {
int iVar1;
int iVar2;
- iVar1 = this->MapData_vfunc_54();
+ iVar1 = this->MapData_vfunc_54(0);
if (iVar1 < 0x2c) {
if ((0x2a < iVar1) || (iVar1 == 0x1b)) {
return true;
@@ -1277,7 +1284,7 @@ unk8 MapManager::MapData_vfunc_70(Vec3p *param_2) {
this->mMap->vfunc_70(param_2);
}
-unk8 MapManager::func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3) {
+ARM void MapManager::func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3) {
s32 iVar1;
unk32 dVar2;
@@ -1307,8 +1314,8 @@ void MapManager::GetTileWorldBounds(Vec2b *tile, AABB *tileBounds) {
Vec3p_Add(&tileBounds->max, &local_20, &tileBounds->max);
}
-unk32 MapManager::MapData_vfunc_54() {
- return this->mMap->vfunc_54(0); // what to use for this param?
+unk32 MapManager::MapData_vfunc_54(unk8 *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) {
@@ -1318,7 +1325,7 @@ unk8 MapManager::func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4) {
uStack_6 = (unk16) ((u32) param_4 >> 0x10);
// _local_8 = CONCAT11(param_3, param_2);
- this->MapData_vfunc_54(/*&local_8*/); // Doesn't take any params.
+ this->MapData_vfunc_54(&local_8); // Doesn't take any params.
// No calls to functions according to objdiff, why???
}
@@ -1367,7 +1374,7 @@ unk8 MapManager::func_ov00_02084164(Vec2b *param_2) {
iVar1 = this->mMap->vfunc_58(param_2, 7 /*, pcVar3, param_4*/); // Params?
if (iVar1 == 0) {
- uVar2 = this->MapData_vfunc_54();
+ uVar2 = this->MapData_vfunc_54(0);
switch (uVar2) {
case 0: break;
case 1: return 0;
@@ -1599,32 +1606,30 @@ void MapManager::func_ov00_020843ec(s32 *param_2) {
}
}
-unk32 MapManager::GetMapData_Unk_38() {
+ARM unk32 MapManager::GetMapData_Unk_38() {
return this->mMap->mUnk_038;
}
-unk8 MapManager::func_ov00_020846a4() {
+ARM s32 MapManager::func_ov00_020846a4() {
s32 iVar1 = *(s32 *) ((s32) this->mMap->mUnk_144 + 4);
if (iVar1 == 0xff) {
switch (this->mCourse->mType) {
- case CourseType_Normal: return 0;
- case CourseType_Dungeon: break;
+ case CourseType_Dungeon:
+ case CourseType_TempleOfTheOceanKing:
+ case CourseType_Battle: return 1;
case CourseType_Sea: return 2;
- case CourseType_TempleOfTheOceanKing: break;
- case CourseType_Battle: break;
+ case CourseType_Normal:
default: return 0;
}
- return 1;
}
return iVar1;
}
-unk8 MapManager::func_ov00_02084700(s32 *param_1) { // param_1 perhaps Vec2b ?
- int iVar1;
-
- iVar1 = *(int *) (param_1[1] + 0x34);
+ARM s32 MapManager::func_ov00_02084700(MapManager *pMapManager) {
+ s32 iVar1;
+ iVar1 = pMapManager->mMap->mUnk_034;
if (iVar1 == -1) {
- iVar1 = *(int *) (*param_1 + 0xc4);
+ iVar1 = pMapManager->mCourse->mUnk_0c4;
}
if ((iVar1 == 0x1b) && (gActorManager->mUnk_29 != false)) {
iVar1 = 0x1c;
@@ -2061,7 +2066,7 @@ unk32 MapManager::func_ov00_02084ebc(Vec3p *param_2) {
if (iVar2 != 0) {
return 0;
}
- iVar2 = this->MapData_vfunc_54();
+ iVar2 = this->MapData_vfunc_54(0);
if (iVar2 < 0x47) {
if (0x45 < iVar2) {
return 0;