summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSammygoodTunes <sygamerz@gmail.com>2025-01-12 19:50:41 +0100
committerSammygoodTunes <sygamerz@gmail.com>2025-01-12 19:50:41 +0100
commita4a9bb5dfdc9d1b3c4e024f631ced1d5d22097d1 (patch)
tree45889503184d829ca25bdd75b2c738f49ab172ef
parentacc72371ed17936435d9da11b32eef383b13f8b7 (diff)
Decompile MapManager::func_ov00_020836bc
Decompile MapManager::GetTriggerBoundingBoxes Decompile MapManager::func_ov00_020836dc (60%) Decompile MapManager::IsTriggerTypeOverlapped Decompile MapManager::GetOverlappingTrigger Decompile MapManager::func_ov00_02083560 gPlayerPos type Vec3p* from Vec3p
-rw-r--r--config/eur/arm9/overlays/ov000/symbols.txt14
-rw-r--r--config/usa/arm9/overlays/ov000/symbols.txt14
-rw-r--r--include/Map/MapBase.hpp6
-rw-r--r--include/Map/MapManager.hpp12
-rw-r--r--include/Player/PlayerBase.hpp2
-rw-r--r--src/00_Core/Map/MapBase.cpp6
-rw-r--r--src/00_Core/Map/MapManager.cpp53
7 files changed, 72 insertions, 35 deletions
diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt
index e773e16d..c3b0b05f 100644
--- a/config/eur/arm9/overlays/ov000/symbols.txt
+++ b/config/eur/arm9/overlays/ov000/symbols.txt
@@ -566,23 +566,23 @@ _ZN10MapManager12GetMapCenterEP5Vec3p kind:function(arm,size=0x20) addr:0x208344
_ZN10MapManager18func_ov00_0208346cEP4AABB kind:function(arm,size=0x50) addr:0x208346c
_ZN10MapManager18func_ov00_020834bcEP5Vec3pii kind:function(arm,size=0x68) addr:0x20834bc
_ZN10MapManager18func_ov00_02083524EP5Vec3pii kind:function(arm,size=0x3c) addr:0x2083524
-_ZN10MapManager18func_ov00_02083560EiPS_j kind:function(arm,size=0x10) addr:0x2083560
+_ZN10MapManager18func_ov00_02083560EP5Vec2bPS_j kind:function(arm,size=0x10) addr:0x2083560
_ZN10MapManager18func_ov00_02083570Eii kind:function(arm,size=0x18) addr:0x2083570
_ZN10MapManager18func_ov00_02083588Ev kind:function(arm,size=0x1c) addr:0x2083588
_ZN10MapManager18func_ov00_020835a4Ev kind:function(arm,size=0x10) addr:0x20835a4
_ZN10MapManager18func_ov00_020835b4Ev kind:function(arm,size=0x10) addr:0x20835b4
_ZN10MapManager18func_ov00_020835c4Eii kind:function(arm,size=0x20) addr:0x20835c4
-_ZN10MapManager18func_ov00_020835e4EiPiS0_ kind:function(arm,size=0x10) addr:0x20835e4
+_ZN10MapManager18func_ov00_020835e4EiPiPc kind:function(arm,size=0x10) addr:0x20835e4
_ZN10MapManager18func_ov00_020835f4Ei kind:function(arm,size=0x10) addr:0x20835f4
_ZN10MapManager18func_ov00_02083604Ei kind:function(arm,size=0x10) addr:0x2083604
_ZN10MapManager18func_ov00_02083614Ei kind:function(arm,size=0x10) addr:0x2083614
_ZN10MapManager14GetEntrancePosEP5Vec3pi kind:function(arm,size=0x40) addr:0x2083624
_ZN10MapManager18func_ov00_02083664EP5Vec3pi kind:function(arm,size=0x58) addr:0x2083664
-_ZN10MapManager18func_ov00_020836bcEjPi kind:function(arm,size=0x10) addr:0x20836bc
-_ZN10MapManager23GetTriggerBoundingBoxesEjP4AABBj kind:function(arm,size=0x10) addr:0x20836cc
-_ZN10MapManager18func_ov00_020836dcEii kind:function(arm,size=0x94) addr:0x20836dc
-_ZN10MapManager18func_ov00_02083770Eji kind:function(arm,size=0x10) addr:0x2083770
-_ZN10MapManager18func_ov00_02083780Ei kind:function(arm,size=0x10) addr:0x2083780
+_ZN10MapManager18func_ov00_020836bcEiP4AABB 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
+_ZN10MapManager23IsTriggerTypeOverlappedEjP5Vec3p kind:function(arm,size=0x10) addr:0x2083770
+_ZN10MapManager21GetOverlappingTriggerEP5Vec3p kind:function(arm,size=0x10) addr:0x2083780
_ZN10MapManager18func_ov00_02083790Ei kind:function(arm,size=0xb0) addr:0x2083790
_ZN10MapManager18func_ov00_02083840Ei kind:function(arm,size=0x88) addr:0x2083840
_ZN10MapManager18func_ov00_020838c8Ei kind:function(arm,size=0x10) addr:0x20838c8
diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt
index 6debf1e9..de8a07cf 100644
--- a/config/usa/arm9/overlays/ov000/symbols.txt
+++ b/config/usa/arm9/overlays/ov000/symbols.txt
@@ -566,23 +566,23 @@ _ZN10MapManager12GetMapCenterEP5Vec3p kind:function(arm,size=0x20) addr:0x20833e
_ZN10MapManager18func_ov00_0208346cEP4AABB kind:function(arm,size=0x50) addr:0x208340c
_ZN10MapManager18func_ov00_020834bcEP5Vec3pii kind:function(arm,size=0x68) addr:0x208345c
_ZN10MapManager18func_ov00_02083524EP5Vec3pii kind:function(arm,size=0x3c) addr:0x20834c4
-_ZN10MapManager18func_ov00_02083560EiPS_j kind:function(arm,size=0x10) addr:0x2083500
+_ZN10MapManager18func_ov00_02083560EP5Vec2bPS_j kind:function(arm,size=0x10) addr:0x2083500
_ZN10MapManager18func_ov00_02083570Eii kind:function(arm,size=0x18) addr:0x2083510
_ZN10MapManager18func_ov00_02083588Ev kind:function(arm,size=0x1c) addr:0x2083528
_ZN10MapManager18func_ov00_020835a4Ev kind:function(arm,size=0x10) addr:0x2083544
_ZN10MapManager18func_ov00_020835b4Ev kind:function(arm,size=0x10) addr:0x2083554
_ZN10MapManager18func_ov00_020835c4Eii kind:function(arm,size=0x20) addr:0x2083564
-_ZN10MapManager18func_ov00_020835e4EiPiS0_ kind:function(arm,size=0x10) addr:0x2083584
+_ZN10MapManager18func_ov00_020835e4EiPiPc kind:function(arm,size=0x10) addr:0x2083584
_ZN10MapManager18func_ov00_020835f4Ei kind:function(arm,size=0x10) addr:0x2083594
_ZN10MapManager18func_ov00_02083604Ei kind:function(arm,size=0x10) addr:0x20835a4
_ZN10MapManager18func_ov00_02083614Ei kind:function(arm,size=0x10) addr:0x20835b4
_ZN10MapManager14GetEntrancePosEP5Vec3pi kind:function(arm,size=0x40) addr:0x20835c4
_ZN10MapManager18func_ov00_02083664EP5Vec3pi kind:function(arm,size=0x58) addr:0x2083604
-_ZN10MapManager18func_ov00_020836bcEjPi kind:function(arm,size=0x10) addr:0x208365c
-_ZN10MapManager23GetTriggerBoundingBoxesEjP4AABBj kind:function(arm,size=0x10) addr:0x208366c
-_ZN10MapManager18func_ov00_020836dcEii kind:function(arm,size=0x94) addr:0x208367c
-_ZN10MapManager18func_ov00_02083770Eji kind:function(arm,size=0x10) addr:0x2083710
-_ZN10MapManager18func_ov00_02083780Ei kind:function(arm,size=0x10) addr:0x2083720
+_ZN10MapManager18func_ov00_020836bcEiP4AABB 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
+_ZN10MapManager23IsTriggerTypeOverlappedEjP5Vec3p kind:function(arm,size=0x10) addr:0x2083710
+_ZN10MapManager21GetOverlappingTriggerEP5Vec3p kind:function(arm,size=0x10) addr:0x2083720
_ZN10MapManager18func_ov00_02083790Ei kind:function(arm,size=0xb0) addr:0x2083730
_ZN10MapManager18func_ov00_02083840Ei kind:function(arm,size=0x88) addr:0x20837e0
_ZN10MapManager18func_ov00_020838c8Ei kind:function(arm,size=0x10) addr:0x2083868
diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp
index 2ca7a8ef..1ed55f8f 100644
--- a/include/Map/MapBase.hpp
+++ b/include/Map/MapBase.hpp
@@ -201,9 +201,9 @@ public:
unk8 func_ov00_0207f934();
unk8 func_ov00_0207f948(unk32 param_2);
void AddTrigger(TriggerParams *param_2);
- s32 GetTriggerBoundingBox(unk32 param_2, AABB *param_3);
- unk8 GetTriggerBoundingBoxes(unk32 param_2, AABB *param_3, unk32 param_4);
- unk32 GetOverlappingTrigger(Vec3p *param_2);
+ s32 GetTriggerBoundingBox(s32 param_2, AABB *param_3);
+ s32 GetTriggerBoundingBoxes(s32 param_2, AABB *param_3, s32 param_4);
+ bool GetOverlappingTrigger(Vec3p *param_2);
unk8 FindTrigger(unk32 type);
unk8 GetOverlappingTriggers(Vec3p *param_2, TriggerBase **triggers, unk32 capacity);
bool IsTriggerTypeOverlapped(unk32 type, Vec3p *param_3);
diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp
index cd3a3187..d95417c1 100644
--- a/include/Map/MapManager.hpp
+++ b/include/Map/MapManager.hpp
@@ -118,7 +118,7 @@ public:
void func_ov00_0208346c(AABB *param_2);
void func_ov00_020834bc(Vec3p *param_2, unk32 param_3, unk32 param_4);
void func_ov00_02083524(Vec3p *param_2, unk32 param_3, unk32 param_4);
- static void func_ov00_02083560(unk32 param_1, MapManager *param_2, u32 param_3);
+ static void func_ov00_02083560(Vec2b *param_1, MapManager *param_2, u32 param_3);
u8 func_ov00_02083570(unk32 param_2, unk32 param_3);
unk32 func_ov00_02083588();
unk32 func_ov00_020835a4();
@@ -130,11 +130,11 @@ public:
unk8 func_ov00_02083614(s32 param_2);
bool GetEntrancePos(Vec3p *param_2, unk32 entranceId);
bool func_ov00_02083664(Vec3p *param_2, unk32 entranceId);
- s32 func_ov00_020836bc(u32 param_2, unk32 *param_3);
- s32 GetTriggerBoundingBoxes(u32 param_2, AABB *param_3, u32 param_4);
- unk8 func_ov00_020836dc(unk32 param_2, unk32 param_3);
- bool func_ov00_02083770(u32 param_2, unk32 param_3);
- bool func_ov00_02083780(unk32 param_2);
+ s32 func_ov00_020836bc(s32 param_2, AABB *param_3);
+ s32 GetTriggerBoundingBoxes(s32 param_2, AABB *param_3, s32 param_4);
+ bool func_ov00_020836dc(u32 param_2, u32 actorId);
+ bool IsTriggerTypeOverlapped(u32 param_2, Vec3p *param_3);
+ bool GetOverlappingTrigger(Vec3p *param_2);
bool func_ov00_02083790(unk32 param_2);
unk8 func_ov00_02083840(unk32 param_2);
bool func_ov00_020838c8(s32 param_2);
diff --git a/include/Player/PlayerBase.hpp b/include/Player/PlayerBase.hpp
index 578f3e27..84a7040b 100644
--- a/include/Player/PlayerBase.hpp
+++ b/include/Player/PlayerBase.hpp
@@ -60,6 +60,6 @@ public:
};
extern PlayerBase *gPlayer;
-extern Vec3p gPlayerPos;
+extern Vec3p *gPlayerPos;
extern Vec3p gPlayerVel;
extern s16 gPlayerAngle;
diff --git a/src/00_Core/Map/MapBase.cpp b/src/00_Core/Map/MapBase.cpp
index 50ba0ab8..99fdb7c6 100644
--- a/src/00_Core/Map/MapBase.cpp
+++ b/src/00_Core/Map/MapBase.cpp
@@ -68,10 +68,10 @@ unk8 MapBase::func_ov00_0207f934() {}
unk8 MapBase::func_ov00_0207f948(unk32 param_2) {}
void MapBase::AddTrigger(TriggerParams *param_2) {}
void TriggerBase::vfunc_08() {}
-s32 MapBase::GetTriggerBoundingBox(unk32 param_2, AABB *param_3) {}
+s32 MapBase::GetTriggerBoundingBox(s32 param_2, AABB *param_3) {}
bool TriggerBase::GetBoundingBox() {}
-unk8 MapBase::GetTriggerBoundingBoxes(unk32 param_2, AABB *param_3, unk32 param_4) {}
-unk32 MapBase::GetOverlappingTrigger(Vec3p *param_2) {}
+s32 MapBase::GetTriggerBoundingBoxes(s32 param_2, AABB *param_3, s32 param_4) {}
+bool MapBase::GetOverlappingTrigger(Vec3p *param_2) {}
bool TriggerBase::Overlaps() {}
unk8 MapBase::FindTrigger(unk32 type) {}
unk8 MapBase::GetOverlappingTriggers(Vec3p *param_2, TriggerBase **triggers, unk32 capacity) {}
diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp
index 81c13c35..656be1c8 100644
--- a/src/00_Core/Map/MapManager.cpp
+++ b/src/00_Core/Map/MapManager.cpp
@@ -1,4 +1,7 @@
#include "Map/MapManager.hpp"
+#include "Actor/Actor.hpp"
+#include "Actor/ActorManager.hpp"
+#include "Player/PlayerBase.hpp"
void MapManager::func_ov00_020820ec(unk32 *param_2) {}
void MapManager::func_ov00_020820fc(s32 param_2, unk32 param_3, unk32 param_4) {}
@@ -183,7 +186,9 @@ ARM void MapManager::func_ov00_02083524(Vec3p *param_2, unk32 param_3, unk32 par
param_2->z = mapCenter->z;
}
-void MapManager::func_ov00_02083560(unk32 param_1, MapManager *param_2, u32 param_3) {}
+void MapManager::func_ov00_02083560(Vec2b *param_1, MapManager *param_2, u32 param_3) {
+ param_2->mCourse->FindMapGridPos(param_1, param_2->mCourse, param_3);
+}
ARM u8 MapManager::func_ov00_02083570(unk32 param_2, unk32 param_3) {
return this->mCourse->mMapGrid[param_2][param_3];
@@ -223,8 +228,8 @@ ARM unk8 MapManager::func_ov00_02083614(s32 param_2) {
ARM bool MapManager::GetEntrancePos(Vec3p *pos, unk32 entranceId) {
Vec3p *entrancePos = (Vec3p *) this->mMap->FindEntrance(entranceId);
- int y = entrancePos->y;
- int z = entrancePos->z;
+ s32 y = entrancePos->y;
+ s32 z = entrancePos->z;
pos->x = entrancePos->x;
pos->y = y;
pos->z = z;
@@ -245,11 +250,43 @@ ARM bool MapManager::func_ov00_02083664(Vec3p *param_2, unk32 entranceId) {
return false;
}
-s32 MapManager::func_ov00_020836bc(u32 param_2, unk32 *param_3) {}
-s32 MapManager::GetTriggerBoundingBoxes(u32 param_2, AABB *param_3, u32 param_4) {}
-unk8 MapManager::func_ov00_020836dc(unk32 param_2, unk32 param_3) {}
-bool MapManager::func_ov00_02083770(u32 param_2, unk32 param_3) {}
-bool MapManager::func_ov00_02083780(unk32 param_2) {}
+ARM s32 MapManager::func_ov00_020836bc(s32 param_2, AABB *param_3) {
+ return this->mMap->GetTriggerBoundingBox(param_2, param_3);
+}
+
+ARM s32 MapManager::GetTriggerBoundingBoxes(s32 param_2, AABB *param_3, s32 param_4) {
+ return this->mMap->GetTriggerBoundingBoxes(param_2, param_3, param_4);
+}
+
+ARM bool MapManager::func_ov00_020836dc(u32 type, u32 actorId) {
+ bool state;
+ Actor *actor;
+ Vec3p playerPos;
+
+ if (actorId < 2) {
+ playerPos.x = gPlayerPos->x;
+ playerPos.y = gPlayerPos->y;
+ playerPos.z = gPlayerPos->z;
+ } else {
+ actor = gActorManager->FindActorById(actorId);
+ if (actor == NULL) {
+ return false;
+ }
+ playerPos.x = *(s32 *) (actor + 0x48);
+ playerPos.y = *(s32 *) (actor + 0x4c);
+ playerPos.z = *(s32 *) (actor + 0x50);
+ }
+ return this->IsTriggerTypeOverlapped(type, &playerPos);
+}
+
+ARM bool MapManager::IsTriggerTypeOverlapped(u32 type, Vec3p *pos) {
+ return this->mMap->IsTriggerTypeOverlapped(type, pos);
+}
+
+ARM bool MapManager::GetOverlappingTrigger(Vec3p *param_2) {
+ return this->mMap->GetOverlappingTrigger(param_2);
+}
+
bool MapManager::func_ov00_02083790(unk32 param_2) {}
unk8 MapManager::func_ov00_02083840(unk32 param_2) {}
bool MapManager::func_ov00_020838c8(s32 param_2) {}