diff options
| author | SammygoodTunes <sygamerz@gmail.com> | 2025-01-12 19:50:41 +0100 |
|---|---|---|
| committer | SammygoodTunes <sygamerz@gmail.com> | 2025-01-12 19:50:41 +0100 |
| commit | a4a9bb5dfdc9d1b3c4e024f631ced1d5d22097d1 (patch) | |
| tree | 45889503184d829ca25bdd75b2c738f49ab172ef /src/00_Core | |
| parent | acc72371ed17936435d9da11b32eef383b13f8b7 (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
Diffstat (limited to 'src/00_Core')
| -rw-r--r-- | src/00_Core/Map/MapBase.cpp | 6 | ||||
| -rw-r--r-- | src/00_Core/Map/MapManager.cpp | 53 |
2 files changed, 48 insertions, 11 deletions
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) {} |
