summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSammygoodTunes <sygamerz@gmail.com>2025-06-30 23:29:42 +0200
committerSammygoodTunes <sygamerz@gmail.com>2025-06-30 23:29:42 +0200
commit18f940fde40ed6263b82c2b7e7f9e3cd348ba750 (patch)
treeaa8be20770900712abea637df7b91ba5959d827c
parent52867bf54f57fdbb405b2940c38f13160414a289 (diff)
Update
-rw-r--r--include/DTCM/UnkStruct_027e0f64.hpp5
-rw-r--r--include/Map/MapManager.hpp2
-rw-r--r--src/00_Core/Map/MapManager.cpp36
3 files changed, 18 insertions, 25 deletions
diff --git a/include/DTCM/UnkStruct_027e0f64.hpp b/include/DTCM/UnkStruct_027e0f64.hpp
index 33728a7e..975c6818 100644
--- a/include/DTCM/UnkStruct_027e0f64.hpp
+++ b/include/DTCM/UnkStruct_027e0f64.hpp
@@ -3,7 +3,10 @@
#include "global.h"
#include "types.h"
-struct UnkStruct_027e0f64 {
+#include "Debug/DebugHierarchy.hpp"
+
+class UnkStruct_027e0f64 {
+public:
/* 0 */ DebugHierarchyBase *mUnk_0;
/* 4 */ void *mUnk_4;
/* 8 */ void *mUnk_8;
diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp
index 4ef12645..b1018279 100644
--- a/include/Map/MapManager.hpp
+++ b/include/Map/MapManager.hpp
@@ -86,7 +86,7 @@ public:
void func_ov00_02082acc();
unk32 *func_ov00_02082adc();
void func_ov00_02082af4();
- bool func_ov00_02082b3c(unk32 *param_2);
+ void func_ov00_02082b3c(unk32 *param_2, Vec2b *param3);
u8 func_ov00_02082d08();
u8 GetCurrentMapPosX();
u8 GetCurrentMapPosY();
diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp
index 6df41ea7..e26cc57e 100644
--- a/src/00_Core/Map/MapManager.cpp
+++ b/src/00_Core/Map/MapManager.cpp
@@ -8,6 +8,7 @@
#include "Actor/ActorSpawner.hpp"
#include "DTCM/UnkStruct_027e0d38.hpp"
#include "DTCM/UnkStruct_027e0fd4.hpp"
+#include "DTCM/UnkStruct_027e103c.hpp"
#include "Player/PlayerBase.hpp"
#include "Save/AdventureFlags.hpp"
#include "Unknown/UnkStruct_02037750.hpp"
@@ -54,8 +55,6 @@ extern void func_ov004_021024c4(MapManager *param_1, s32 param_2, bool param_3,
extern void func_ov004_02102770(s32 *param_1);
extern void func_ov004_02102b28(s32 *param_1);
extern void func_ov004_02102e3c(s32 *param_1);
-extern void func_ov004_02105578(ActorManager *param_1, u32 param_2);
-extern void func_ov004_02105608(ActorManager *param_1, unk32 param_2, unk32 param_3, unk32 param_4);
extern void func_ov004_02106db8(unk32 *param_1); // UnkStruct_027e0c68 doesn't exist, so using unk32
extern MapBase *func_ov012_0212b358(MapBase *param_1, unk32 param_2, unk32 param_3);
@@ -139,7 +138,7 @@ extern unk32 *data_027e0f6c;
extern unk32 *data_027e0f70;
extern unk32 *data_027e0f78;
extern unk32 *data_027e0f7c;
-extern unk32 *data_027e103c;
+extern UnkStruct_027e103c *data_027e103c;
extern unk32 *data_ov000_020e24a4;
extern MapManager_Unk2 data_ov000_020e24c8[];
@@ -567,35 +566,30 @@ ARM void MapManager::func_ov00_02082af4() {
this->mUnk_0b = false;
}
-bool MapManager::func_ov00_02082b3c(unk32 *param_2) {
+void MapManager::func_ov00_02082b3c(unk32 *param_2, Vec2b *param_3) {
u8 bVar1;
- PlayerBase *puVar2;
u16 uVar3;
u32 uVar4;
unk32 uVar5;
- u32 in_r3;
ActorManager *pAVar6;
- unk32 local_18;
+ PlayerBase *puVar2;
- local_18 = in_r3; // what's the point of that?
- this->mCourse->FindMapGridPos((Vec2b *) &local_18, this->mCourse, (u32) * (u8 *) (param_2 + 0x12));
+ this->mCourse->FindMapGridPos(param_3, this->mCourse, *(u32 *) ((unk32) param_2 + 0x12));
uVar4 = this->GetCurrentMapPosX();
- if (((((local_18 & 0xff) == uVar4) && (uVar4 = this->GetCurrentMapPosY(), (local_18 >> 8 & 0xff) == uVar4)) &&
+ if (((((param_3->x) == uVar4) && (uVar4 = this->GetCurrentMapPosY(), (param_3->y) == uVar4)) &&
((*(s32 *) (param_2 + 8) != 1 || (*(s32 *) (*(s32 *) data_027e0d38 + 0x14) != 1)))) &&
(*(char *) (param_2 + 0x15) == '\0'))
{
gAdventureFlags->func_ov00_020976c8();
- puVar2 = gPlayer;
this->mUnk_0c = *(unk32 *) (param_2 + 0x13);
- // puVar2->TeleportToEntrance(*(unk32 *) (param_2 + 0x13), false);
- // (**(code **) (**(int **) puVar2 + 0x38))(*(int **) puVar2, *(unk32 *) (param_2 + 0x13), 0);
- // func_ov004_02106db8(data_027e0c68);
+ gPlayer->TeleportToEntrance(*(unk32 *) (param_2 + 0x13), false);
+ func_ov004_02106db8(data_027e0c68);
this->mMap->vfunc_18();
} else {
gAdventureFlags->func_ov00_020976c8();
func_ov000_0208b13c(data_027e0f64);
uVar5 = this->func_ov00_02082d08();
- gActorManager->func_ov004_02105608(local_18 & 0xff, local_18 >> 8 & 0xff, uVar5);
+ gActorManager->func_ov004_02105608(param_3->x, param_3->y, uVar5);
this->mMap->vfunc_2c();
func_ov004_02102b28(data_027e0f68);
func_ov004_02102770(data_027e0f6c);
@@ -603,14 +597,12 @@ bool MapManager::func_ov00_02082b3c(unk32 *param_2) {
bVar1 = *(u8 *) (param_2 + 0x12);
uVar3 = this->mCourse->FindCurrentMapData_Unk_04();
uVar4 = this->mCourse->FindMapData_Unk_04((u32) bVar1);
- (this->mCourse->mCurrMapPos).x = (u8) local_18;
- (this->mCourse->mCurrMapPos).y = (u8) * (&local_18 + 0x4); // I assume this is what Ghidra means by "local_18._1_1_"
+ (this->mCourse->mCurrMapPos).x = (u8) param_3->x;
+ (this->mCourse->mCurrMapPos).y = (u8) param_3->y;
this->func_ov004_021024c4(param_2, uVar3 != uVar4, 0);
- func_ov004_02105578(gActorManager, (u32) * (u8 *) (param_2 + 0x12));
- // data_027e0d3c->
- // UnkStruct_027e0103c::thunk_FUN_overlay_d_0__020cf7e8(*PTR_PTR_overlay_d_0__02082cfc);
+ gActorManager->func_ov004_02105578(*(unk32 *) ((unk32) param_2 + 0x12));
+ data_027e103c->func_ov000_020cfcec();
}
- return true;
}
ARM u8 MapManager::func_ov00_02082d08() {
@@ -1257,7 +1249,6 @@ ARM void MapManager::func_ov00_02083ce8(Vec3p *param_2, u32 param_3, s32 param_4
}
local_38 = *param_2;
param_2->y = MapData_vfunc_68(&local_38, true);
- ;
}
ARM s32 MapManager::func_ov00_02083e34(unk8 param_2, unk8 param_3, unk32 param_4) {
@@ -1791,7 +1782,6 @@ u8 MapManager::func_ov00_02084a50() {
void MapManager::SpawnNPC(Vec3p *pos, unk32 param_3, unk32 param_4) {
ActorSpawnOptions actorSpawnOptions;
- // actorSpawnOptions.mUnk_00 = Actor_UnkStruct_020();
actorSpawnOptions.mUnk_1c.id = -1;
actorSpawnOptions.mUnk_1c.index = -1;
func_ov000_020c3348(&actorSpawnOptions);