summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2025-07-01 22:04:31 +0200
committerAetias <aetias@outlook.com>2025-07-01 22:04:31 +0200
commitf3b92f5a6c57656f7b20924a6c61dbae07fa506a (patch)
tree8fbf2de0ce9c9b1d681cdbab20809e4288c9868a
parenta7f149c3af206d90f046c6e7237ea701f0ce7b41 (diff)
FIx build
-rw-r--r--config/eur/arm9/overlays/ov000/symbols.txt8
-rw-r--r--config/usa/arm9/overlays/ov000/symbols.txt8
-rw-r--r--include/Map/MapBase.hpp4
-rw-r--r--include/Map/MapManager.hpp12
-rw-r--r--include/Map/MapOverworld.hpp4
-rw-r--r--include/Player/PlayerBase.hpp2
-rw-r--r--include/lib/math.h96
-rw-r--r--src/00_Core/Actor/Actor.cpp24
-rw-r--r--src/00_Core/Actor/ActorSpawner.cpp4
-rw-r--r--src/00_Core/Map/MapBase.cpp4
-rw-r--r--src/00_Core/Map/MapManager.cpp81
-rw-r--r--src/18_Overworld/Map/MapOverworld.cpp4
12 files changed, 73 insertions, 178 deletions
diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt
index 63c5f6ac..237f2a65 100644
--- a/config/eur/arm9/overlays/ov000/symbols.txt
+++ b/config/eur/arm9/overlays/ov000/symbols.txt
@@ -609,7 +609,7 @@ _ZN10MapManager11GetTileEndXEi kind:function(arm,size=0x28) addr:0x2083bd4
_ZN10MapManager11GetTileEndZEi kind:function(arm,size=0x28) addr:0x2083bfc
_ZN10MapManager18func_ov00_02083c24Ei kind:function(arm,size=0x2c) addr:0x2083c24
_ZN10MapManager18func_ov00_02083c50Ei kind:function(arm,size=0x2c) addr:0x2083c50
-_ZN10MapManager18func_ov00_02083c7cEP5Vec3pj kind:function(arm,size=0x6c) addr:0x2083c7c
+_ZN10MapManager18func_ov00_02083c7cEP5Vec3p5Vec2b kind:function(arm,size=0x6c) addr:0x2083c7c
_ZN10MapManager18func_ov00_02083ce8EPS_Pijij kind:function(arm,size=0x14c) addr:0x2083ce8
_ZN10MapManager18func_ov00_02083e34Ecci kind:function(arm,size=0x24) addr:0x2083e34
_ZN10MapManager16MapData_vfunc_60EPh kind:function(arm,size=0x18) addr:0x2083e58
@@ -621,9 +621,9 @@ _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_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
+_ZN10MapManager16MapData_vfunc_54EP5Vec2b kind:function(arm,size=0x18) addr:0x2084088
+_ZN10MapManager18func_ov00_020840a0Ecc kind:function(arm,size=0x24) addr:0x20840a0
+_ZN10MapManager16MapData_vfunc_78EP5Vec2b kind:function(arm,size=0x18) addr:0x20840c4
_ZN10MapManager18func_ov00_020840dcEv kind:function(arm,size=0x24) addr:0x20840dc
_ZN10MapManager18func_ov00_02084100EPiPS_ kind:function(arm,size=0x14) addr:0x2084100
_ZN10MapManager17GetMapData_Unk_48Ev kind:function(arm,size=0xc) addr:0x2084114
diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt
index bf12c8db..293b51c3 100644
--- a/config/usa/arm9/overlays/ov000/symbols.txt
+++ b/config/usa/arm9/overlays/ov000/symbols.txt
@@ -609,7 +609,7 @@ _ZN10MapManager11GetTileEndXEi kind:function(arm,size=0x28) addr:0x2083b74
_ZN10MapManager11GetTileEndZEi kind:function(arm,size=0x28) addr:0x2083b9c
_ZN10MapManager18func_ov00_02083c24Ei kind:function(arm,size=0x2c) addr:0x2083bc4
_ZN10MapManager18func_ov00_02083c50Ei kind:function(arm,size=0x2c) addr:0x2083bf0
-_ZN10MapManager18func_ov00_02083c7cEP5Vec3pj kind:function(arm,size=0x6c) addr:0x2083c1c
+_ZN10MapManager18func_ov00_02083c7cEP5Vec3p5Vec2b kind:function(arm,size=0x6c) addr:0x2083c1c
_ZN10MapManager18func_ov00_02083ce8EPS_Pijij kind:function(arm,size=0x14c) addr:0x2083c88
_ZN10MapManager18func_ov00_02083e34Ecci kind:function(arm,size=0x24) addr:0x2083dd4
_ZN10MapManager16MapData_vfunc_60EPh kind:function(arm,size=0x18) addr:0x2083df8
@@ -621,9 +621,9 @@ _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_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
+_ZN10MapManager16MapData_vfunc_54EP5Vec2b kind:function(arm,size=0x18) addr:0x2084028
+_ZN10MapManager18func_ov00_020840a0Ecc kind:function(arm,size=0x24) addr:0x2084040
+_ZN10MapManager16MapData_vfunc_78EP5Vec2b kind:function(arm,size=0x18) addr:0x2084064
_ZN10MapManager18func_ov00_020840dcEv kind:function(arm,size=0x24) addr:0x208407c
_ZN10MapManager18func_ov00_02084100EPiPS_ kind:function(arm,size=0x14) addr:0x20840a0
_ZN10MapManager17GetMapData_Unk_48Ev kind:function(arm,size=0xc) addr:0x20840b4
diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp
index a99658ac..d4602640 100644
--- a/include/Map/MapBase.hpp
+++ b/include/Map/MapBase.hpp
@@ -135,7 +135,7 @@ public:
/* 48 */ virtual void vfunc_48();
/* 4c */ virtual s32 vfunc_4c() = 0;
/* 50 */ virtual unk32 vfunc_50();
- /* 54 */ virtual unk32 vfunc_54(unk8 *param_1);
+ /* 54 */ virtual unk32 vfunc_54(Vec2b *param_1);
/* 58 */ virtual unk32 vfunc_58(Vec2b *param_1, int param_2);
/* 5c */ virtual unk32 vfunc_5c();
/* 60 */ virtual unk32 vfunc_60(u8 *param_1);
@@ -144,7 +144,7 @@ public:
/* 6c */ virtual unk8 vfunc_6c(unk32 param_2, unk32 param_3, unk32 param_4);
/* 70 */ virtual unk32 vfunc_70(Vec3p *param_2);
/* 74 */ virtual s32 vfunc_74(Vec3p *param_2);
- /* 78 */ virtual unk32 vfunc_78(bool *param_1);
+ /* 78 */ virtual unk32 vfunc_78(Vec2b *param_1);
/* 7c */ virtual s32 vfunc_7c(s32 param_1, unk32 *param_2, s32 param_3, short param_4[4]);
/* 80 */ virtual unk32 vfunc_80();
/* 84 */ virtual void vfunc_84(unk32 param_2);
diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp
index d82694db..52be0786 100644
--- a/include/Map/MapManager.hpp
+++ b/include/Map/MapManager.hpp
@@ -166,7 +166,7 @@ public:
s32 GetTileEndZ(unk32 z);
s32 func_ov00_02083c24(unk32 x);
s32 func_ov00_02083c50(unk32 z);
- void func_ov00_02083c7c(Vec3p *param_2, u32 param_3);
+ void func_ov00_02083c7c(Vec3p *param_2, Vec2b param_3);
static void func_ov00_02083ce8(MapManager *param_1, s32 *param_2, u32 param_3, s32 param_4, u32 param_5);
s32 func_ov00_02083e34(unk8 param_2, unk8 param_3, unk32 param_4);
unk32 MapData_vfunc_60(u8 *param_1);
@@ -178,9 +178,9 @@ public:
unk32 MapData_vfunc_70(Vec3p *param_2);
static void func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3);
void GetTileWorldBounds(Vec2b *tile, AABB *tileBounds);
- 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);
+ unk32 MapData_vfunc_54(Vec2b *a);
+ unk32 func_ov00_020840a0(unk8 param_2, unk8 param_3);
+ unk32 MapData_vfunc_78(Vec2b *param_1);
unk8 func_ov00_020840dc();
static unk8 func_ov00_02084100(unk32 *param_1, MapManager *param_2);
u32 GetMapData_Unk_48();
@@ -232,10 +232,10 @@ public:
unk8 func_ov00_02084d24(unk8 param_2, unk8 param_3, unk32 param_4);
s32 func_ov00_02084d4c(unk32 param_2, unk32 param_3, Vec3p *param_4);
unk32 func_ov00_02084ebc(Vec3p *param_2);
- s32 func_ov00_02085108(s32 *param_2);
+ s32 func_ov00_02085108(Vec3p *param_2);
static s32 func_ov00_0208527c(MapManager *param_1, unk32 param_2, unk32 *param_3);
static s32 func_ov00_020853fc(MapManager *param_1, Vec3p *param_2, s32 *param_3);
- static unk32 func_ov00_02085594(MapManager *param_1, Vec3p *param_2, unk32 param_3, unk32 param_4);
+ unk32 func_ov00_02085594(Vec3p *param_2);
static void func_ov00_0208583c(MapManager *param_1, Vec3p *param_2, unk32 param_3);
static unk8 func_ov00_020858b0(MapManager *param_1, Vec3p *param_2, s32 param_3);
s32 func_ov00_02085a34(Vec3p *param_2, unk32 param_3);
diff --git a/include/Map/MapOverworld.hpp b/include/Map/MapOverworld.hpp
index 482b3ad1..4ce6d91a 100644
--- a/include/Map/MapOverworld.hpp
+++ b/include/Map/MapOverworld.hpp
@@ -46,7 +46,7 @@ public:
/* 1c */ virtual void vfunc_1c(bool param_2) override;
/* 20 */ virtual void vfunc_20(s32 param_2) override;
/* 2c */ virtual void vfunc_2c() override;
- /* 4c */ virtual void vfunc_4c() override;
+ /* 4c */ virtual s32 vfunc_4c() override;
/* 54 */ virtual unk32 vfunc_54() override;
/* 58 */ virtual unk32 vfunc_58() override;
/* 5c */ virtual unk32 vfunc_5c() override;
@@ -58,7 +58,7 @@ public:
/* 94 */ virtual void vfunc_94() override;
/* 98 */ virtual void vfunc_98() override;
/* a4 */ virtual unk32 vfunc_a4() override;
- /* b0 */ virtual unk8 vfunc_b0(unk32 param_2, unk32 param_3) override;
+ /* b0 */ virtual void vfunc_b0(unk32 param_2, unk32 param_3) override;
/* bc */ virtual void vfunc_bc() override;
/* c0 */ virtual void vfunc_c0() override;
/* c4 */
diff --git a/include/Player/PlayerBase.hpp b/include/Player/PlayerBase.hpp
index bb14a81f..744ff464 100644
--- a/include/Player/PlayerBase.hpp
+++ b/include/Player/PlayerBase.hpp
@@ -62,6 +62,6 @@ public:
};
extern PlayerBase *gPlayer;
-extern Vec3p *gPlayerPos;
+extern Vec3p gPlayerPos;
extern Vec3p gPlayerVel;
extern u16 gPlayerAngle;
diff --git a/include/lib/math.h b/include/lib/math.h
deleted file mode 100644
index 28e2fd0b..00000000
--- a/include/lib/math.h
+++ /dev/null
@@ -1,96 +0,0 @@
-#pragma once
-
-#include "global.h"
-#include "types.h"
-
-// Q20.12 fixed point number
-typedef s32 q20;
-// Q4.12 fixed point number
-typedef s16 q4;
-
-#define INT_TO_Q20(n) ((s32) ((n) << 12))
-#define FLOAT_TO_Q21(n) ((s32) (((n) * 8192 + 1) / 4))
-#define FLOAT_TO_Q20(n) ((s32) (((n) * 8192 + 1) / 2))
-#define FLOAT_TO_Q19(n) ((s32) (((n) * 8192 + 1)))
-#define ROUND_Q20(n) (((s32) (n) + 0x800) >> 12)
-#define MUL_Q20(a, b) (q20)((((s64) (a)) * ((s64) (b)) + 0x800) >> 12)
-
-#define DEG_TO_ANG(n) ((n) * 0x10000 / 360)
-#define SIN(n) (gSinCosTable[2 * ((n) >> 4)])
-#define COS(n) (gSinCosTable[2 * ((n) >> 4) + 1])
-
-extern "C" s32 Atan2(s32 x, s32 y);
-extern q4 gSinCosTable[];
-
-typedef struct {
- /* 0 */ s8 x;
- /* 1 */ s8 y;
- /* 2 */
-} Vec2b;
-
-typedef struct {
- /* 0 */ s16 x;
- /* 1 */ s16 y;
- /* 2 */
-} Vec2s;
-
-typedef struct {
- /* 0 */ q20 x;
- /* 4 */ q20 y;
- /* 8 */ q20 z;
- /* c */
-} Vec3p;
-
-extern const Vec3p gVec3p_ZERO;
-
-extern "C" void Vec3p_Add(Vec3p *a, Vec3p *b, Vec3p *out);
-extern "C" void Vec3p_Sub(Vec3p *a, Vec3p *b, Vec3p *out);
-extern "C" q20 Vec3p_Dot(Vec3p *a, Vec3p *b);
-extern "C" void Vec3p_Cross(Vec3p *a, Vec3p *b, Vec3p *out);
-extern "C" q20 Vec3p_Length(Vec3p *a);
-extern "C" void Vec3p_Normalize(Vec3p *vec, Vec3p *out);
-extern "C" void Vec3p_Axpy(q20 a, Vec3p *x, Vec3p *y, Vec3p *out);
-extern "C" q20 Vec3p_Distance(Vec3p *a, Vec3p *b);
-extern "C" void Vec3p_Scale(Vec3p *vec, q20 scale);
-
-inline void Vec3p_Rotate(Vec3p *vec, q20 sin, q20 cos, Vec3p *out) {
- out->x += MUL_Q20(vec->z, sin);
- out->z += MUL_Q20(vec->z, cos);
- out->x += MUL_Q20(vec->x, cos);
- out->z += MUL_Q20(vec->x, -sin);
-}
-
-inline void Vec3p_CopyXZ(Vec3p *vec, Vec3p *out) {
- q20 z = vec->z;
- q20 x = vec->x;
-
- out->x = x;
- out->y = 0;
- out->z = z;
-}
-
-inline void Vec3p_Copy(Vec3p *vec, Vec3p *out) {
- out->x = vec->x;
- out->y = vec->y;
- out->z = vec->z;
-}
-
-typedef struct {
- /* 00 */ q20 x;
- /* 04 */ q20 y;
- /* 08 */ q20 z;
- /* 0c */ q20 w;
- /* 10 */
-} Vec4p;
-
-typedef struct {
- /* 00 */ Vec3p xColumn;
- /* 0c */ Vec3p yColumn;
- /* 18 */ Vec3p zColumn;
- /* 24 */
-} Mat3p;
-
-extern "C" u32 FastDivide(u32 a, u32 b);
-extern "C" u32 Divide(u32 a, u32 b);
-extern "C" bool Approach(unk32 *src, unk32 dest, unk32 step);
-extern "C" bool Approach_thunk(unk32 *src, unk32 dest, unk32 step);
diff --git a/src/00_Core/Actor/Actor.cpp b/src/00_Core/Actor/Actor.cpp
index a6af4159..73db38f9 100644
--- a/src/00_Core/Actor/Actor.cpp
+++ b/src/00_Core/Actor/Actor.cpp
@@ -332,7 +332,7 @@ ARM bool Actor::vfunc_4c(unk32 *param1) {
}
ARM bool Actor::IsNearLink() {
- Vec3p playerPos = *gPlayerPos;
+ Vec3p playerPos = gPlayerPos;
q20 z = playerPos.z;
q20 dx = abs(playerPos.x - mPos.x);
@@ -365,7 +365,7 @@ ARM bool Actor::func_ov00_020c1da0(s32 param1, Vec3p *param2) {
if (param2) {
vec = *param2;
} else {
- Vec3p_Sub(gPlayerPos, &mPrevPos, &vec);
+ Vec3p_Sub(&gPlayerPos, &mPrevPos, &vec);
}
return gPlayer->vfunc_30(mUnk_124, &vec, param1);
@@ -379,7 +379,7 @@ ARM bool Actor::func_ov00_020c1e2c(s32 param1, Vec3p *param2) {
if (param2) {
vec = *param2;
} else {
- Vec3p_Sub(gPlayerPos, &mPrevPos, &vec);
+ Vec3p_Sub(&gPlayerPos, &mPrevPos, &vec);
}
Cylinder hitbox;
@@ -411,7 +411,7 @@ ARM bool Actor::func_ov00_020c1fc8(PlayerCollide flags) {
bool result = false;
if (mHitbox.size >= 0) {
Vec3p vecFromPlayer;
- Vec3p_Sub(&mPos, gPlayerPos, &vecFromPlayer);
+ Vec3p_Sub(&mPos, &gPlayerPos, &vecFromPlayer);
if (this->CollidesWithPlayer(flags & PlayerCollide_Sword)) {
Knockback knockback;
knockback.mUnk_00 = gPlayer->EquipItem_vfunc_2c();
@@ -459,7 +459,7 @@ ARM bool Actor::func_ov00_020c1fc8(PlayerCollide flags) {
ARM bool Actor::CollidesWithShield(Cylinder *param1) {
Vec3p vecFromPlayer;
- Vec3p_Sub(&mPos, gPlayerPos, &vecFromPlayer);
+ Vec3p_Sub(&mPos, &gPlayerPos, &vecFromPlayer);
s32 currAngle = gPlayerAngle;
s32 angle = Atan2(vecFromPlayer.x, vecFromPlayer.z);
s32 angleDiff = (s16) angle - currAngle;
@@ -631,13 +631,13 @@ ARM q20 Actor::XzDistanceTo(Vec3p *vec) {
}
ARM q20 Actor::DistanceToLink() {
- return Vec3p_Distance(&mPos, gPlayerPos);
+ return Vec3p_Distance(&mPos, &gPlayerPos);
}
ARM q20 Actor::XzDistanceToLink() {
Vec3p src;
Vec3p_CopyXZ(&mPos, &src);
- Vec3p dest = *gPlayerPos;
+ Vec3p dest = gPlayerPos;
dest.y = 0;
return Vec3p_Distance(&src, &dest);
@@ -655,7 +655,7 @@ ARM s16 Actor::GetAngleTo(Vec3p *vec) {
}
ARM s32 Actor::GetAngleToLink() {
- return this->GetAngleTo(gPlayerPos);
+ return this->GetAngleTo(&gPlayerPos);
}
extern "C" void func_0202d95c(Vec3p *param1, q20 param2);
@@ -735,7 +735,7 @@ ARM bool Actor::func_ov00_020c2c70() {
this->GetLinkPos(&pos);
Vec3p_Sub(&pos, &mPos, &vel);
} else {
- Vec3p_Sub(gPlayerPos, &mPos, &vel);
+ Vec3p_Sub(&gPlayerPos, &mPos, &vel);
}
}
Vec3p_Add(&mPos, &vel, &mPos);
@@ -777,7 +777,7 @@ ARM bool Actor::func_ov00_020c2de4() {
func_0202d95c(&vel, FLOAT_TO_Q20(1.0));
}
} else {
- Vec3p_Sub(gPlayerPos, &mPos, &vel);
+ Vec3p_Sub(&gPlayerPos, &mPos, &vel);
}
Vec3p_Add(&mPos, &vel, &mPos);
mVel = vel;
@@ -927,7 +927,7 @@ ARM void Actor::GetLinkPos(Vec3p *result) {
if (gPlayerLink != NULL && gPlayerLink->GetCurrentCharacter() != PlayerCharacter_Link) {
return this->GetLinkDummyPos(result);
}
- result = gPlayerPos;
+ *result = gPlayerPos;
}
ARM void Actor::GetLinkDummyPos(Vec3p *result) {
@@ -938,7 +938,7 @@ ARM void Actor::GetLinkDummyPos(Vec3p *result) {
*result = dummy->mPos;
return;
}
- result = gPlayerPos;
+ *result = gPlayerPos;
}
Actor_UnkStruct_09c::Actor_UnkStruct_09c() {
diff --git a/src/00_Core/Actor/ActorSpawner.cpp b/src/00_Core/Actor/ActorSpawner.cpp
index 55cf1a57..fcf8b66b 100644
--- a/src/00_Core/Actor/ActorSpawner.cpp
+++ b/src/00_Core/Actor/ActorSpawner.cpp
@@ -68,8 +68,8 @@ ARM s32 ActorSpawner::Spawn(ActorTypeId type, Vec3p *pos, ActorSpawnOptions *opt
Actor *actor2 = *actorSlot;
actor2->mPos = *pos;
actor2->mPrevPos = *pos;
- (*actorSlot)->mUnk_010 = gMapManager->GetCourseData_Unk_1c();
- (*actorSlot)->mUnk_011 = gMapManager->GetCourseData_Unk_1d();
+ (*actorSlot)->mUnk_010 = gMapManager->GetCurrentMapPosX();
+ (*actorSlot)->mUnk_011 = gMapManager->GetCurrentMapPosY();
u16 nextIndex = index + 1;
if (actorManager->mMaxActorIndex < nextIndex) {
actorManager->mMaxActorIndex = nextIndex;
diff --git a/src/00_Core/Map/MapBase.cpp b/src/00_Core/Map/MapBase.cpp
index f4182b96..960c9871 100644
--- a/src/00_Core/Map/MapBase.cpp
+++ b/src/00_Core/Map/MapBase.cpp
@@ -18,7 +18,7 @@ s32 MapBase::func_ov00_0207e28c(s32 param_2) {}
void MapBase::vfunc_b4() {}
void MapBase::vfunc_48() {}
unk32 MapBase::vfunc_50() {}
-unk32 MapBase::vfunc_54(unk8 *param_1) {}
+unk32 MapBase::vfunc_54(Vec2b *param_1) {}
unk32 MapBase::vfunc_58(Vec2b *param_1, int param_2) {}
unk32 MapBase::vfunc_5c() {}
unk32 MapBase::vfunc_60(u8 *param_1) {}
@@ -40,7 +40,7 @@ void MapBase::vfunc_a0() {}
unk32 MapBase::vfunc_a4(unk8 *param_1) {}
void MapBase::vfunc_a8() {}
void MapBase::vfunc_ac() {}
-unk32 MapBase::vfunc_78(bool *param_1) {}
+unk32 MapBase::vfunc_78(Vec2b *param_1) {}
s32 MapBase::vfunc_7c(s32 param_1, unk32 *param_2, s32 param_3, short param_4[4]) {}
unk32 MapBase::vfunc_80() {}
void MapBase::vfunc_84(unk32 param_2) {}
diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp
index 15de64f6..176ed826 100644
--- a/src/00_Core/Map/MapManager.cpp
+++ b/src/00_Core/Map/MapManager.cpp
@@ -254,12 +254,7 @@ ARM Vec3p *MapManager::func_ov00_02082538() {
s32 var1 = this->mMap->vfunc_4c();
Vec3p var0;
if (var1 != 2) {
- q20 x = gPlayerPos->x;
- q20 y = gPlayerPos->y;
- var0.x = x;
- var0.y = y;
- q20 z = gPlayerPos->z;
- var0.z = z;
+ var0 = gPlayerPos;
return &var0;
}
return &this->mMap->mUnk_1a0;
@@ -674,9 +669,9 @@ ARM void MapManager::func_ov00_0208306c(s32 *param_2, s32 *param_3) {
*param_3 = this->mCourse->mUnk_0b8;
return;
}
- local_1c.y = gPlayerPos->y;
- local_1c.x = gPlayerPos->x;
- local_1c.z = gPlayerPos->z;
+ local_1c.y = gPlayerPos.y;
+ local_1c.x = gPlayerPos.x;
+ local_1c.z = gPlayerPos.z;
// this->func_ov00_02083a1c(auStack_2c, this, &local_1c);
this->func_ov00_02082d84(auStack_2c, param_2, param_3);
}
@@ -710,9 +705,9 @@ ARM void MapManager::func_ov00_0208315c(s32 *param_2, s32 *param_3) {
*param_3 = this->mCourse->mUnk_0c0;
return;
}
- local_20.x = *(s32 *) gPlayerPos->x;
- local_20.y = *(s32 *) gPlayerPos->y;
- local_20.z = *(s32 *) gPlayerPos->z;
+ local_20.x = *(s32 *) gPlayerPos.x;
+ local_20.y = *(s32 *) gPlayerPos.y;
+ local_20.z = *(s32 *) gPlayerPos.z;
uVar1 = this->func_ov00_02082d08();
this->func_ov00_02083298(uVar1, &local_20, param_2, param_3);
}
@@ -960,10 +955,10 @@ ARM bool MapManager::func_ov00_020836dc(u32 type, u32 actorId) {
switch (actorId) {
case 0:
case 1:
- q20 y = gPlayerPos->y;
- playerPos.x = gPlayerPos->x;
+ q20 y = gPlayerPos.y;
+ playerPos.x = gPlayerPos.x;
playerPos.y = y;
- playerPos.z = gPlayerPos->z;
+ playerPos.z = gPlayerPos.z;
break;
default:
actor = gActorManager->FindActorById(actorId);
@@ -1179,11 +1174,11 @@ ARM s32 MapManager::func_ov00_02083c50(unk32 z) {
return this->GetMapCenterZ() + this->mMap->GetTileStartZ(z) + 0x800;
}
-ARM void MapManager::func_ov00_02083c7c(Vec3p *param_2, u32 param_3) {
+ARM void MapManager::func_ov00_02083c7c(Vec3p *param_2, Vec2b param_3) {
Vec3p local_28;
- q20 x = this->func_ov00_02083c24(param_3 & 0xff);
+ q20 x = this->func_ov00_02083c24(param_3.x);
// param_2->x = x;
- q20 z = this->func_ov00_02083c50(param_3 >> 8 & 0xff);
+ q20 z = this->func_ov00_02083c50(param_3.y);
// param_2->z = z;
q20 y = this->MapData_vfunc_68(&local_28, true);
// param_2->y = y;
@@ -1328,22 +1323,18 @@ void MapManager::GetTileWorldBounds(Vec2b *tile, AABB *tileBounds) {
Vec3p_Add(&tileBounds->max, &local_20, &tileBounds->max);
}
-unk32 MapManager::MapData_vfunc_54(unk8 *a) {
+unk32 MapManager::MapData_vfunc_54(Vec2b *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) {
- unk8 local_8;
- unk8 local_7;
- unk16 uStack_6;
-
- 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.
- // No calls to functions according to objdiff, why???
+unk32 MapManager::func_ov00_020840a0(unk8 param_2, unk8 param_3) {
+ Vec2b local_8;
+ local_8.x = param_2;
+ local_8.y = param_3;
+ return this->mMap->vfunc_54(&local_8);
}
-unk32 MapManager::MapData_vfunc_78(bool *param_1) { // bool* param placeholder for now, no way of knowing what the type is.
+unk32 MapManager::MapData_vfunc_78(Vec2b *param_1) {
return this->mMap->vfunc_78(param_1);
}
@@ -1669,9 +1660,9 @@ unk8 MapManager::func_ov00_02084740() {
// iVar2 = this->func_ov00_02084700(?); // what param?
// iVar3 = UnkStruct_027e0d38::FUN_overlay_d_0__02078b40(*(UnkStruct_027e0d38 **) PTR_PTR_overlay_d_0__020847d4);
if (iVar3 != 2) {
- local_1c8 = *(unk32 *) gPlayerPos->x;
- local_1c4 = *(unk32 *) gPlayerPos->y;
- local_1c0 = *(unk32 *) gPlayerPos->z;
+ local_1c8 = *(unk32 *) gPlayerPos.x;
+ local_1c4 = *(unk32 *) gPlayerPos.y;
+ local_1c0 = *(unk32 *) gPlayerPos.z;
// bVar1 = FUN_overlay_d_0__02083780(&local_1c8); // MapManager method?
if (bVar1) {
iVar2 = this->func_ov00_020847f0();
@@ -2157,7 +2148,7 @@ unk32 MapManager::func_ov00_02084ebc(Vec3p *param_2) {
return 0;
}
-s32 MapManager::func_ov00_02085108(s32 *param_2) {
+s32 MapManager::func_ov00_02085108(Vec3p *param_2) {
MapManager *puVar1;
unk32 uVar2;
int *piVar3;
@@ -2199,9 +2190,9 @@ s32 MapManager::func_ov00_02085108(s32 *param_2) {
local_2c = iVar8;
// iVar4 = func_0202b8e4(&local_34, 2);
if (iVar4 != 0) {
- *param_2 = piVar3[6];
- param_2[1] = piVar3[7];
- param_2[2] = piVar3[8];
+ param_2->x = piVar3[6];
+ param_2->y = piVar3[7];
+ param_2->z = piVar3[8];
return (int) *(char *) ((int) piVar3 + 0x12);
}
}
@@ -2338,19 +2329,19 @@ s32 MapManager::func_ov00_020853fc(MapManager *param_1, Vec3p *param_2, s32 *par
return iVar7;
}
-unk32 MapManager::func_ov00_02085594(MapManager *param_1, Vec3p *param_2, unk32 param_3, unk32 param_4) {
+unk32 MapManager::func_ov00_02085594(Vec3p *param_2) {
int *piVar1;
int iVar2;
unk32 dVar3; // dword
unk32 uVar4;
bool bVar5;
- unk32 uStack_2c;
+ Vec2b uStack_2c;
Vec2b local_28;
u32 uStack_24;
Vec3p VStack_20;
- param_1->func_ov00_02083a1c(&local_28, param_1, param_2);
- piVar1 = (int *) param_1->MapData_vfunc_78(0);
+ MapManager::func_ov00_02083a1c(&local_28, this, param_2);
+ piVar1 = (int *) this->MapData_vfunc_78(0);
bVar5 = true;
if (piVar1 != (int *) 0x0) {
param_2->x = piVar1[6];
@@ -2382,7 +2373,7 @@ unk32 MapManager::func_ov00_02085594(MapManager *param_1, Vec3p *param_2, unk32
}
}
}
- iVar2 = param_1->func_ov00_020840a0(local_28.x, local_28.y, param_4);
+ iVar2 = this->func_ov00_020840a0(local_28.x, local_28.y);
if (iVar2 < 0x47) {
if (0x45 < iVar2) {
return 0;
@@ -2445,13 +2436,13 @@ unk32 MapManager::func_ov00_02085594(MapManager *param_1, Vec3p *param_2, unk32
} else if (iVar2 == 0x50) {
return 0;
}
- iVar2 = param_1->mMap->vfunc_58(&local_28, 5); // no params
+ iVar2 = this->mMap->vfunc_58(&local_28, 5); // no params
if (iVar2 != 0) {
return 0;
}
// uStack_2c._0_2_ = CONCAT11(local_27, local_28);
- param_1->func_ov00_02083c7c(&VStack_20, uStack_2c);
- // dVar3 = param_1->MapData_vfunc_70();
+ this->func_ov00_02083c7c(&VStack_20, uStack_2c);
+ // dVar3 = this->MapData_vfunc_70();
if (dVar3 != 0xffff) {
func_ov000_02093a1c(&uStack_24, data_027e0f6c);
if ((uStack_24 >> 5 & 3) != 1) {
@@ -2505,7 +2496,7 @@ unk8 MapManager::func_ov00_020858b0(MapManager *param_1, Vec3p *param_2, s32 par
iVar3 = param_1->GetMapHeight();
local_38 = 0xffffffff;
param_1->func_ov00_02083a1c(&local_28, param_1, param_2);
- iVar6 = gPlayerPos->y; // *(int *) (PTR_gPlayerPos_overlay_d_0__02085a30 + 4);
+ iVar6 = gPlayerPos.y; // *(int *) (PTR_gPlayerPos_overlay_d_0__02085a30 + 4);
for (iVar7 = local_28.x - 1; iVar7 <= (int) (local_28.x + 1); iVar7 = iVar7 + 1) {
if ((-1 < iVar7) && (iVar1 = local_28.y - 1, iVar7 < iVar2)) {
for (; iVar1 <= (int) (local_28.y + 1); iVar1 = iVar1 + 1) {
diff --git a/src/18_Overworld/Map/MapOverworld.cpp b/src/18_Overworld/Map/MapOverworld.cpp
index 5737ea54..e2c73db7 100644
--- a/src/18_Overworld/Map/MapOverworld.cpp
+++ b/src/18_Overworld/Map/MapOverworld.cpp
@@ -25,7 +25,7 @@ void MapOverworld::vfunc_c0() {}
unk32 MapOverworld::vfunc_78() {}
unk32 MapOverworld::vfunc_7c() {}
unk32 MapOverworld::vfunc_80() {}
-unk8 MapOverworld::vfunc_b0(unk32 param_2, unk32 param_3) {}
+void MapOverworld::vfunc_b0(unk32 param_2, unk32 param_3) {}
void MapOverworld::func_ov018_0215c650() {}
void MapOverworld::func_ov018_0215c6ac() {}
void MapOverworld::func_ov018_0215c6d0() {}
@@ -35,4 +35,4 @@ void MapOverworld::func_ov018_0215c9ac() {}
void func_ov018_0215ca24(s32 param1) {}
void func_ov018_0215ca3c(s32 param1, s32 param2, unk32 param3, unk32 param4) {}
void func_ov018_0215ca8c(s32 param1) {}
-void MapOverworld::vfunc_4c() {}
+s32 MapOverworld::vfunc_4c() {}