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;