Decomp progress 38%

This commit is contained in:
SammygoodTunes
2025-04-29 22:12:35 +02:00
parent 2025fdf460
commit a9af655856
10 changed files with 151 additions and 179 deletions
+8 -8
View File
@@ -83,7 +83,7 @@ _ZN18UnkStruct_027e0d3819func_ov000_02078b40Ev kind:function(arm,size=0x24) addr
_ZN18UnkStruct_027e0d3819func_ov000_02078b64Ev kind:function(arm,size=0x24) addr:0x2078b64
_ZN18UnkStruct_027e0d3819func_ov000_02078b88Ev kind:function(arm,size=0x3c) addr:0x2078b88
_Z19func_ov000_02078bc4i kind:function(thumb,size=0x2c) addr:0x2078bc4
_Z19func_ov000_02078bf0Pii kind:function(thumb,size=0x11c) addr:0x2078bf0
_Z19func_ov000_02078bf0PiS_ 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
func_ov000_02078d54 kind:function(thumb,size=0x3c) addr:0x2078d54
@@ -313,7 +313,7 @@ _ZN6Course15SetMapDataFlag2Eib kind:function(arm,size=0x20) addr:0x207d924
_ZN6Course15GetMapDataFlag2Ei kind:function(arm,size=0x18) addr:0x207d944
_ZN6Course15SetMapDataFlag3Eib kind:function(arm,size=0x20) addr:0x207d95c
_ZN6Course15GetMapDataFlag3Ei kind:function(arm,size=0x18) addr:0x207d97c
_ZN6Course15SetMapDataFlag4Eii kind:function(arm,size=0x20) addr:0x207d994
_ZN6Course15SetMapDataFlag4Eib kind:function(arm,size=0x20) addr:0x207d994
_ZN6Course15GetMapDataFlag4Ei kind:function(arm,size=0x18) addr:0x207d9b4
_ZN6Course11FindMapDataEj kind:function(arm,size=0x48) addr:0x207d9cc
_ZN6Course18FindCurrentMapDataEv kind:function(arm,size=0x24) addr:0x207da14
@@ -535,7 +535,7 @@ _ZN10MapManager17GetCurrentMapPosXEv kind:function(arm,size=0xc) addr:0x2082d28
_ZN10MapManager17GetCurrentMapPosYEv kind:function(arm,size=0xc) addr:0x2082d34
_ZN10MapManager18func_ov00_02082d40Ev kind:function(arm,size=0x34) addr:0x2082d40
_ZN10MapManager18func_ov00_02082d74Ei kind:function(arm,size=0x10) addr:0x2082d74
_ZN10MapManager18func_ov00_02082d84EPcPiS1_ kind:function(arm,size=0x98) addr:0x2082d84
_ZN10MapManager18func_ov00_02082d84EP5Vec2bPiS2_ kind:function(arm,size=0x98) addr:0x2082d84
_ZN10MapManager18func_ov00_02082e1cEPiS0_ kind:function(arm,size=0x250) addr:0x2082e1c
_ZN10MapManager18func_ov00_0208306cEPiS0_ kind:function(arm,size=0xf0) addr:0x208306c
_ZN10MapManager18func_ov00_0208315cEPiS0_ kind:function(arm,size=0xe8) addr:0x208315c
@@ -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_02083c7cEP5Vec3pP5Vec2b 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
@@ -665,11 +665,11 @@ _ZN10MapManager18func_ov00_02084b38Eiii kind:function(arm,size=0xa8) addr:0x2084
_ZN10MapManager18func_ov00_02084be0Eji kind:function(arm,size=0x7c) addr:0x2084be0
_ZN10MapManager15SetMapDataFlag1Eib kind:function(arm,size=0x10) addr:0x2084c5c
_ZN10MapManager15GetMapDataFlag1Ei kind:function(arm,size=0x10) addr:0x2084c6c
_ZN10MapManager18func_ov00_02084c7cEi kind:function(arm,size=0x18) addr:0x2084c7c
_ZN10MapManager18func_ov00_02084c7cEib kind:function(arm,size=0x18) addr:0x2084c7c
_ZN10MapManager18func_ov00_02084c94Ei kind:function(arm,size=0x1c) addr:0x2084c94
_ZN10MapManager18func_ov00_02084cb0Ei kind:function(arm,size=0x18) addr:0x2084cb0
_ZN10MapManager18func_ov00_02084cb0Eib kind:function(arm,size=0x18) addr:0x2084cb0
_ZN10MapManager18func_ov00_02084cc8Ei kind:function(arm,size=0x1c) addr:0x2084cc8
_ZN10MapManager18func_ov00_02084ce4Ei kind:function(arm,size=0x18) addr:0x2084ce4
_ZN10MapManager18func_ov00_02084ce4Eib kind:function(arm,size=0x18) addr:0x2084ce4
_ZN10MapManager18func_ov00_02084cfcEi kind:function(arm,size=0x1c) addr:0x2084cfc
_ZN10MapManager17GetMapData_Unk_09Ev kind:function(arm,size=0xc) addr:0x2084d18
_ZN10MapManager18func_ov00_02084d24Eccs kind:function(arm,size=0x28) addr:0x2084d24
@@ -1091,7 +1091,7 @@ func_ov000_0209394c kind:function(arm,size=0xc) addr:0x209394c
func_ov000_02093958 kind:function(arm,size=0x10) addr:0x2093958
func_ov000_02093968 kind:function(arm,size=0x78) addr:0x2093968
func_ov000_020939e0 kind:function(arm,size=0x3c) addr:0x20939e0
_Z19func_ov000_02093a1cPjPi kind:function(arm,size=0x20) addr:0x2093a1c
_Z19func_ov000_02093a1cPjPii kind:function(arm,size=0x20) addr:0x2093a1c
func_ov000_02093a3c kind:function(arm,size=0x10) addr:0x2093a3c
func_ov000_02093a4c kind:function(arm,size=0x10) addr:0x2093a4c
func_ov000_02093a5c kind:function(arm,size=0x94) addr:0x2093a5c
+1 -1
View File
@@ -665,7 +665,7 @@ func_ov012_0212b31c kind:function(arm,size=0x20) addr:0x212b31c
func_ov012_0212b33c kind:function(arm,size=0xc) addr:0x212b33c
func_ov012_0212b348 kind:function(arm,size=0x8) addr:0x212b348
func_ov012_0212b350 kind:function(arm,size=0x8) addr:0x212b350
func_ov012_0212b358 kind:function(arm,size=0xf8) addr:0x212b358
_Z19func_ov012_0212b358P7MapBaseii kind:function(arm,size=0xf8) addr:0x212b358
func_ov012_0212b450 kind:function(arm,size=0x88) addr:0x212b450
func_ov012_0212b4d8 kind:function(arm,size=0x90) addr:0x212b4d8
func_ov012_0212b568 kind:function(arm,size=0x94) addr:0x212b568
+1 -1
View File
@@ -253,7 +253,7 @@ func_ov015_02128b9c kind:function(arm,size=0x90) addr:0x2128b9c
func_ov015_02128c2c kind:function(arm,size=0x140) addr:0x2128c2c
func_ov015_02128d6c kind:function(arm,size=0x20) addr:0x2128d6c
func_ov015_02128d8c kind:function(arm,size=0x4c) addr:0x2128d8c
func_ov015_02128dd8 kind:function(arm,size=0xac) addr:0x2128dd8
_Z19func_ov015_02128dd8P7MapBaseii kind:function(arm,size=0xac) addr:0x2128dd8
func_ov015_02128e84 kind:function(arm,size=0xcc) addr:0x2128e84
func_ov015_02128f50 kind:function(arm,size=0xd4) addr:0x2128f50
func_ov015_02129024 kind:function(arm,size=0x220) addr:0x2129024
+2 -2
View File
@@ -1,6 +1,6 @@
func_ov017_0215b4a0 kind:function(arm,size=0x2c) addr:0x215b4a0
_Z19func_ov017_0215b4a0P7MapBaseii kind:function(arm,size=0x2c) addr:0x215b4a0
func_ov017_0215b4cc kind:function(arm,size=0x1c) addr:0x215b4cc
func_ov017_0215b4e8 kind:function(thumb,size=0xf0) addr:0x215b4e8
_Z19func_ov017_0215b4e8P7MapBaseii kind:function(thumb,size=0xf0) addr:0x215b4e8
func_ov017_0215b5d8 kind:function(thumb,size=0x94) addr:0x215b5d8
func_ov017_0215b66c kind:function(thumb,size=0x9c) addr:0x215b66c
func_ov017_0215b708 kind:function(thumb,size=0x5c) addr:0x215b708
+1 -1
View File
@@ -108,7 +108,7 @@ public:
bool GetMapDataFlag2(unk32 param_2);
void SetMapDataFlag3(unk32 param_2, bool param_3);
bool GetMapDataFlag3(unk32 param_2);
void SetMapDataFlag4(unk32 param_2, unk32 param_3);
void SetMapDataFlag4(unk32 param_2, bool param_3);
bool GetMapDataFlag4(unk32 param_2);
MapData *FindMapData(u32 map);
MapData *FindCurrentMapData();
+1 -1
View File
@@ -133,7 +133,7 @@ public:
/* 40 */ virtual void vfunc_40();
/* 44 */ virtual void vfunc_44();
/* 48 */ virtual void vfunc_48();
/* 4c */ virtual s32 vfunc_4c() = 0;
/* 4c */ virtual s32 vfunc_4c();
/* 50 */ virtual unk32 vfunc_50();
/* 54 */ virtual unk32 vfunc_54(Vec2b *param_1);
/* 58 */ virtual unk32 vfunc_58(Vec2b *param_1, int param_2);
+8 -8
View File
@@ -92,7 +92,7 @@ public:
u8 GetCurrentMapPosY();
u8 func_ov00_02082d40();
u32 func_ov00_02082d74(unk32 param_2);
void func_ov00_02082d84(unk8 *param_2, s32 *param_3, s32 *param_4);
void func_ov00_02082d84(Vec2b *param_2, s32 *param_3, s32 *param_4);
bool func_ov00_02082e1c(s32 *param_2, s32 *param_3);
void func_ov00_0208306c(s32 *param_2, s32 *param_3);
void func_ov00_0208315c(s32 *param_2, s32 *param_3);
@@ -166,14 +166,14 @@ 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);
bool func_ov00_02083e70();
unk32 MapData_vfunc_68(Vec3p *param_1, bool param_2);
s32 func_ov00_02083ef8(Vec3p *param_2, Vec3p *param_3);
void func_ov00_02083f44(Vec3p *param_2);
unk32 func_ov00_02083f44(Vec3p *param_2);
unk8 MapData_vfunc_6c(unk32 param_2, unk32 param_3, unk32 param_4);
unk32 MapData_vfunc_70(Vec3p *param_2);
static void func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3);
@@ -181,7 +181,7 @@ public:
unk32 MapData_vfunc_54(Vec2b *a);
unk32 func_ov00_020840a0(unk8 param_2, unk8 param_3, unk16 param_4);
unk32 *MapData_vfunc_78(Vec2b *param_1);
unk8 func_ov00_020840dc(Vec2b *param_1);
unk32 func_ov00_020840dc(Vec2b *param_1);
static unk8 func_ov00_02084100(unk32 *param_1, MapManager *param_2);
u32 GetMapData_Unk_48();
unk32 GetMapData_Unk_4c();
@@ -192,7 +192,7 @@ public:
u8 GetMapData_Unk_0a();
u8 GetMapData_Unk_0b();
unk8 MapData_vfunc_a4(unk8 *param_1);
unk8 func_ov00_0208433c(Vec3p *param_2, Vec2s *param_3);
void func_ov00_0208433c(Vec3p *param_2, Vec2s *param_3);
unk8 func_ov00_0208439c(Vec2s *param_2, Vec3p *param_3);
void func_ov00_020843ec(s32 *param_2);
unk32 GetMapData_Unk_38();
@@ -222,11 +222,11 @@ public:
bool func_ov00_02084be0(u32 param_2, unk32 param_3);
void SetMapDataFlag1(unk32 param_2, bool param_3);
bool GetMapDataFlag1(unk32 param_2);
void func_ov00_02084c7c(unk32 param_2);
void func_ov00_02084c7c(unk32 param_2, bool param_3);
bool func_ov00_02084c94(unk32 param_2);
void func_ov00_02084cb0(unk32 param_2);
void func_ov00_02084cb0(unk32 param_2, bool param_3);
bool func_ov00_02084cc8(unk32 param_2);
void func_ov00_02084ce4(unk32 param_2);
void func_ov00_02084ce4(unk32 param_2, bool param_3);
bool func_ov00_02084cfc(unk32 param_2);
u8 GetMapData_Unk_09();
void func_ov00_02084d24(unk8 param_2, unk8 param_3, unk16 param_4);
+2 -1
View File
@@ -4,7 +4,8 @@
struct UnkStruct_0202e894 {
/* 00 */ u32 mId;
/* 04 */ unk8 mUnk_04[0x28];
/* 04 */ u32 *mUnk_04;
/* 08 */ unk8 mUnk_08[0x24];
/* 2c */
};
+1 -1
View File
@@ -45,7 +45,7 @@ void Course::SetMapDataFlag2(unk32 param_2, bool param_3) {}
bool Course::GetMapDataFlag2(unk32 param_2) {}
void Course::SetMapDataFlag3(unk32 param_2, bool param_3) {}
bool Course::GetMapDataFlag3(unk32 param_2) {}
void Course::SetMapDataFlag4(unk32 param_2, unk32 param_3) {}
void Course::SetMapDataFlag4(unk32 param_2, bool param_3) {}
bool Course::GetMapDataFlag4(unk32 param_2) {}
MapData *Course::FindMapData(u32 map) {}
MapData *Course::FindCurrentMapData() {}
+126 -155
View File
@@ -5,16 +5,18 @@
#include "Map/MapManager.hpp"
#include "Actor/Actor.hpp"
#include "Actor/ActorManager.hpp"
#include "Actor/ActorSpawner.hpp"
#include "DTCM/UnkStruct_027e0d38.hpp"
#include "DTCM/UnkStruct_027e0fd4.hpp"
#include "Player/PlayerBase.hpp"
#include "Save/AdventureFlags.hpp"
#include "Unknown/UnkStruct_02037750.hpp"
#include "stdio.h"
extern bool func_01ffbe78(Vec3p *param1, Vec3p *param2, Vec3p *param3, Vec4p *param4);
extern u32 func_ov000_02078bc4(unk32 param_1);
extern void func_ov000_02078bf0(s32 *param_1, unk32 param_2);
extern void func_ov000_02078bf0(s32 *param_1, unk32 *param_2);
extern s32 func_ov000_02078fe8(s32 *param_1);
extern void func_ov000_0207920c(s32 *param_1, Vec3p *param_2, s32 *param_3, s32 *param_4);
extern void func_ov000_020792a0(s32 *param_1, s32 param_2, unk32 param_3, unk32 param_4);
@@ -36,12 +38,13 @@ extern s32 func_ov000_0208e6f0(Vec3p *param_1);
extern s32 func_ov000_0208e704(Vec3p *param_1);
extern s32 func_ov000_0208e87c(AABB *param_1, Vec3p *param_2, Vec3p *param_3);
extern void func_ov000_0208ed74(AABB *param_1, Vec3p *param_2);
extern void func_ov000_02093a1c(u32 *param_1, s32 *param_2);
extern void func_ov000_02093a1c(u32 *param_1, unk32 *param_2, unk32 param_3);
extern void func_ov000_02096324(s32 *param_1, s32 param_2);
extern s32 *func_ov000_02096418(s32 *param_1);
extern void func_ov000_0209d6e8(s32 param_1, s32 param_2);
extern s32 func_ov000_0209d71c(s32 *param_1, s32 param_2);
extern unk32 func_ov000_020a5e9c(unk32 *param_1);
extern void func_ov000_020c3348(unk32 *param_1);
extern void func_ov004_021024c4(MapManager *param_1, s32 param_2, bool param_3, s32 param_4);
extern void func_ov004_02102770(s32 *param_1);
@@ -58,9 +61,12 @@ extern bool func_ov015_02129c24(MapBase *param_1, Vec3p *param_2, Vec3p *param_3
extern bool func_ov015_02129c34(MapBase *param_1, s32 param_2);
extern bool func_ov015_02129c44(MapBase *param_1, s32 param_2);
extern MapBase *func_ov017_0215b4a0(MapBase *param_1, unk32 param_2, unk32 param_3);
extern MapBase *func_ov017_0215b4e8(MapBase *param_1, unk32 param_2, unk32 param_3);
extern MapBase *func_ov018_0215b4a0(MapBase *param_1, unk32 param_2, unk32 param_3);
// extern MapBase *func_ov018_0215b4a0(MapBase *param_1, unk32 param_2, unk32 param_3);
struct astruct_16 {}; // What is this struct?
struct UnkStruct_02082348 {
/* 00 */ unk32 mUnk_00;
@@ -68,13 +74,35 @@ struct UnkStruct_02082348 {
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk16 mUnk_10;
/* 12 */ unk8 mUnk_12[0x4];
/* 12 */ u8 mUnk_12[0x4];
/* 16 */
};
class Case_0 : public MapBase {
public:
char pad[0x790 - 0x1B0];
Case_0(u32 param1, u32 param2);
virtual ~Case_0() override;
};
class Case_4 : public MapBase {
public:
char pad[0x1DC - 0x1B0];
Case_4(u32 param1, u32 param2);
virtual ~Case_4() override;
};
class Case_Default : public MapBase {
public:
char pad[0x790 - 0x1B0];
Case_Default(u32 param1, u32 param2);
virtual ~Case_Default() override;
};
extern unk32 *data_027e0c68;
extern u32 *data_027e0ce4;
extern u32 *data_027e0ce0[];
extern unk32 *data_027e0d3c;
extern unk32 *data_027e0f64;
extern unk32 data_027e0f64[];
extern unk32 *data_027e0f68;
extern unk32 *data_027e0f6c;
extern unk32 *data_027e0f70;
@@ -84,6 +112,10 @@ extern unk32 *data_027e103c;
extern unk32 *data_ov000_020e24a4;
MapManager::MapManager() {}
MapManager::~MapManager() {}
ARM void MapManager::GetCourseDungeonProgress(CourseProgress *param_2) {
this->mCourse->GetDungeonProgress(param_2);
}
@@ -192,14 +224,14 @@ ARM void MapManager::func_ov00_02082348(unk32 *param_2) {
unkStruct.mUnk_00 = 0x47;
unkStruct.mUnk_04 = 0;
unkStruct.mUnk_08 = 0;
unkStruct.mUnk_0c = 0;
unkStruct.mUnk_0c = -2;
unkStruct.mUnk_10 = 0;
unkStruct.mUnk_12[0] = 0xff;
unkStruct.mUnk_12[0] = -1;
unkStruct.mUnk_12[1] = 0;
unkStruct.mUnk_12[2] = 0;
unkStruct.mUnk_12[3] = 0;
this->func_ov00_0208230c((s32 *) &unkStruct);
func_ov000_02078bf0((s32 *) &unkStruct, *param_2);
func_ov000_02078bf0((s32 *) &unkStruct, param_2);
}
ARM void MapManager::func_ov00_020823a4(unk32 param_2) {
@@ -289,7 +321,7 @@ ARM void MapManager::func_ov00_020825ac() {
}
ARM s32 MapManager::GetCourseFilePath(char *courseName, char *buf) {
s32 var = sprintf(buf, "Map/%s/course.bin", courseName);
s32 var = sprintf(buf, "Map/%s/course.bin\0\0", courseName);
return var;
}
@@ -328,39 +360,15 @@ ARM void MapManager::func_ov00_020826a0(unk32 param_2, unk32 param_3) {
ARM void MapManager::CreateMap(unk32 mapType, unk32 param_3, unk32 param_4) {
MapBase *mapBase;
if (this->mMap == NULL) {
switch (mapType) {
case 0:
// data_027e0ce4 (data_027e0ce0) of type UnkStruct_0202e894
SysObject::operator new(0x1dc, data_027e0ce4, 4);
if (mapBase != NULL) {
mapBase = (MapBase *) func_ov018_0215b4a0(mapBase, param_3, param_4); // Does not exist.
}
this->mMap = mapBase;
return;
case 1: break;
case 2:
mapBase = (MapBase *) SysObject::operator new(0x1b0, data_027e0ce4, 4);
if (mapBase != NULL) {
mapBase = (MapBase *) func_ov015_02128dd8(mapBase, param_3, param_4); // Does not exist.
}
this->mMap = mapBase;
return;
case 3: break;
case 4:
mapBase = (MapBase *) SysObject::operator new(0x790, data_027e0ce4, 4);
if (mapBase != NULL) {
mapBase = (MapBase *) func_ov012_0212b358(mapBase, param_3, param_4); // Does not exist.
}
this->mMap = mapBase;
return;
case 4: this->mMap = new(data_027e0ce0[1], 4) Case_0(param_3, param_4); break;
case 2: this->mMap = new(data_027e0ce0[1], 4) MapBase(param_3, param_4); break;
case 0: this->mMap = new(data_027e0ce0[1], 4) Case_4(param_3, param_4); break;
case 1:
case 3:
default: this->mMap = new(data_027e0ce0[1], 4) Case_Default(param_3, param_4); break;
}
mapBase = (MapBase *) SysObject::operator new(0x790, data_027e0ce4, 4);
if (mapBase != NULL) {
mapBase = (MapBase *) func_ov017_0215b4e8(mapBase, param_3, param_4); // Does not exist.
}
this->mMap = mapBase;
}
}
@@ -582,15 +590,17 @@ ARM u32 MapManager::func_ov00_02082d74(unk32 param_2) {
return func_ov000_02078bc4(param_2);
}
ARM void MapManager::func_ov00_02082d84(unk8 *param_2, s32 *param_3, s32 *param_4) {
ARM void MapManager::func_ov00_02082d84(Vec2b *param_2, s32 *param_3, s32 *param_4) {
s32 mapWidth = this->GetMapWidth();
u32 uVar3 = CoDivide64By32(0x100000, mapWidth << 0xc);
s32 mapHeight = this->GetMapHeight();
u32 uVar4 = CoDivide64By32(0xc0000, mapHeight << 0xc);
s64 lVar1 = (s64) (s32) ((u32) *param_2 << 0xc);
*param_3 = (s32) (((u32) lVar1 >> 0xc | (s32) ((u64) lVar1 >> 0x20) * 0x100000) + ((s32) uVar4 >> 1) + 0x800) >> 0xc;
lVar1 = (s64) (s32) ((u32) param_2[1] << 0xc) * (s64) (s32) uVar4 + 0x800;
*param_4 = (s32) (((u32) lVar1 >> 0xc | (s32) ((u64) lVar1 >> 0x20) * 0x100000) + ((s32) uVar4 >> 1) + 0x800) >> 0xc;
// something related to x or width
s64 lVar1 = (s64) ((u8) param_2->x << 0xc) * (s32) uVar3 + 0x800;
*param_3 = (s32) (((s32) (lVar1 >> 0xc)) + ((s32) uVar3 >> 1) + 0x800) >> 0xc;
// something related to y or height
lVar1 = (s64) ((u8) param_2->y << 0xc) * (s32) uVar4 + 0x800;
*param_4 = (s32) (((s32) (lVar1 >> 0xc)) + ((s32) uVar4 >> 1) + 0x800) >> 0xc;
}
ARM bool MapManager::func_ov00_02082e1c(s32 *param_2, s32 *param_3) {
@@ -663,7 +673,7 @@ ARM void MapManager::func_ov00_0208306c(s32 *param_2, s32 *param_3) {
MapManager *pMVar1;
s32 iVar2;
MapManager *pMVar3;
unk8 auStack_2c[18];
Vec2b auStack_2c[18];
s32 local_28; // This has to be a Vec3p, but uncertain as of now.
unk32 local_24; // Unused.
unk32 local_20; // Unused.
@@ -1018,25 +1028,21 @@ ARM bool MapManager::func_ov00_02083790(s32 param_2) {
}
ARM bool MapManager::func_ov00_02083840(s32 param_2) {
s32 *puVar1;
s32 *puVar2;
bool bVar3;
s32 iVar4;
puVar2 = data_027e0d3c;
puVar1 = data_027e0f64;
if (param_2 != 0) {
*(unk32 *) (*(int *) (*(int *) data_027e0f64 + 8) + 0x1b4) = 0xffffffff;
*(unk32 *) (*(int *) (*(int *) puVar1 + 4) + 0x1b4) = 0xffffffff;
iVar4 = func_ov000_02078fe8(puVar2);
if (-1 < iVar4) {
func_ov000_020798bc(data_027e0d3c, 0x10);
gActorManager->func_ov00_020c3ce8(param_2, false);
}
bVar3 = this->mMap->TriggerOfType_vfunc_10(param_2);
return bVar3;
if (param_2 == 0) {
return true;
}
return true;
*(unk32 *) (*(unk32 *) (*(unk32 *) data_027e0f64 + 8) + 0x1b4) = -1;
*(unk32 *) (*(unk32 *) (*(unk32 *) data_027e0f64 + 4) + 0x1b4) = -1;
iVar4 = func_ov000_02078fe8(data_027e0d3c);
if (0 <= iVar4) {
func_ov000_020798bc(data_027e0d3c, 0x10);
gActorManager->func_ov00_020c3ce8(param_2, false);
}
bVar3 = this->mMap->TriggerOfType_vfunc_10(param_2);
return bVar3;
}
ARM bool MapManager::AddTrigger(s32 param_2) {
@@ -1188,14 +1194,14 @@ 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) {
q20 x;
q20 z;
q20 y;
Vec3p local_28;
x = this->func_ov00_02083c24(param_3 & 0xff);
x = this->func_ov00_02083c24(param_3->x);
param_2->x = x;
z = this->func_ov00_02083c50(param_3 >> 8 & 0xff);
z = this->func_ov00_02083c50(param_3->y);
param_2->z = z;
y = this->MapData_vfunc_68(&local_28, true);
param_2->y = y;
@@ -1291,13 +1297,12 @@ ARM s32 MapManager::func_ov00_02083ef8(Vec3p *param_2, Vec3p *param_3) {
return iVar1;
}
ARM void MapManager::func_ov00_02083f44(Vec3p *param_2) {
ARM unk32 MapManager::func_ov00_02083f44(Vec3p *param_2) {
Vec3p local_18;
local_18.z = param_2->z;
local_18.x = param_2->x;
local_18.y = *(data_ov000_020e24a4 + 0x10);
this->func_ov00_02083ef8(param_2, &local_18);
local_18 = *param_2;
local_18.y = *(data_ov000_020e24a4 + 0x8);
return this->func_ov00_02083ef8(param_2, &local_18);
}
unk8 MapManager::MapData_vfunc_6c(unk32 param_2, unk32 param_3, unk32 param_4) {
@@ -1309,17 +1314,17 @@ ARM unk32 MapManager::MapData_vfunc_70(Vec3p *param_2) {
}
ARM void MapManager::func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3) {
Vec4p *iVar1;
Vec4p *iVar1; // Unsure
s32 dVar2;
iVar1 = (Vec4p *) param_2->mMap->vfunc_74(param_3);
if (iVar1 != NULL) {
*param_1 = iVar1->w;
*param_1 = iVar1->w; // offset 0xc
return;
}
dVar2 = param_2->MapData_vfunc_70(param_3);
if (dVar2 != 0xffff) {
func_ov000_02093a1c(param_1, data_027e0f6c);
func_ov000_02093a1c(param_1, data_027e0f6c, dVar2);
return;
}
*param_1 = 0;
@@ -1354,13 +1359,14 @@ unk32 *MapManager::MapData_vfunc_78(Vec2b *param_1) {
return this->mMap->vfunc_78(param_1);
}
unk8 MapManager::func_ov00_020840dc(Vec2b *param_1) {
UnkStruct_027e0fd4 *piVar1;
unk32 MapManager::func_ov00_020840dc(Vec2b *param_1) {
UnkStruct_02037750 *piVar1; // placeholder struct until I can find the real struct
piVar1 = (UnkStruct_027e0fd4 *) this->MapData_vfunc_78(param_1);
piVar1 = (UnkStruct_02037750 *) this->MapData_vfunc_78(param_1);
if (piVar1 != NULL) {
piVar1->vfunc_1c();
return piVar1->vfunc_1c();
}
return -1;
}
unk8 MapManager::func_ov00_02084100(unk32 *param_1, MapManager *param_2) {
@@ -1467,12 +1473,11 @@ unk8 MapManager::MapData_vfunc_a4(unk8 *param_1) {
this->mMap->vfunc_a4(param_1);
}
unk8 MapManager::func_ov00_0208433c(Vec3p *param_2, Vec2s *param_3) {
Vec2s local_28;
ARM void MapManager::func_ov00_0208433c(Vec3p *param_2, Vec2s *param_3) {
Vec3p local_18 = *param_2;
Vec3p VStack_24;
Vec3p local_18;
Vec2s local_28;
local_18 = *param_2;
this->GetMapMinBounds(&VStack_24);
Vec3p_Sub(&local_18, &VStack_24, &local_18);
this->mMap->func_ov00_0207f53c(&local_28, this->mMap, &local_18);
@@ -1787,15 +1792,13 @@ u8 MapManager::func_ov00_02084a50() {
}
void MapManager::SpawnNPC(Vec3p *param_2, unk32 param_3, unk32 param_4) {
// astruct_16 aStack_3c;
// Actor_UnkStruct_020((Actor_UnkStruct_020 *) &aStack_3c);
// aStack_3c.field24_0x1c = 0xffffffff;
// aStack_3c.field25_0x20 = 0xffffffff;
// astruct_16::astruct_16(&aStack_3c);
// aStack_3c.field26_0x24 = param_3;
// aStack_3c.field27_0x28 = param_4;
// spawnNpc(*(undefined4 *) PTR_DWORD_overlay_d_0__02084abc, s_CIVE_overlay_d_0__02084ac0, param_2, &aStack_3c,
// (ActorRef *) 0x0);
astruct_16 aStack_3c; // = Actor_UnkStruct_020();
// aStack_3c. = 0xffffffff;
// aStack_3c.field25_0x20 = 0xffffffff;
func_ov000_020c3348((unk32 *) &aStack_3c);
// aStack_3c.field26_0x24 = param_3;
// aStack_3c.field27_0x28 = param_4;
gActorSpawner->Spawn(ActorTypeId_EVIC, param_2, &aStack_3c, NULL);
}
ARM bool MapManager::func_ov00_02084ac4(u32 actorId) {
@@ -1874,13 +1877,11 @@ bool MapManager::GetMapDataFlag1(unk32 param_2) {
return this->mCourse->GetMapDataFlag1(param_2);
}
void MapManager::func_ov00_02084c7c(unk32 param_2) {
bool in_r2; // not defined.
void MapManager::func_ov00_02084c7c(unk32 param_2, bool param_3) {
if (param_2 < 0) {
return;
}
this->mCourse->SetMapDataFlag2(param_2, in_r2);
this->mCourse->SetMapDataFlag2(param_2, param_3);
}
bool MapManager::func_ov00_02084c94(unk32 param_2) {
@@ -1893,13 +1894,11 @@ bool MapManager::func_ov00_02084c94(unk32 param_2) {
return false;
}
void MapManager::func_ov00_02084cb0(unk32 param_2) {
bool in_r2; // not defined.
void MapManager::func_ov00_02084cb0(unk32 param_2, bool param_3) {
if (param_2 < 0) {
return;
}
this->mCourse->SetMapDataFlag3(param_2, in_r2);
this->mCourse->SetMapDataFlag3(param_2, param_3);
}
bool MapManager::func_ov00_02084cc8(unk32 param_2) {
@@ -1912,13 +1911,11 @@ bool MapManager::func_ov00_02084cc8(unk32 param_2) {
return false;
}
void MapManager::func_ov00_02084ce4(unk32 param_2) {
unk32 in_r2; // not defined.
void MapManager::func_ov00_02084ce4(unk32 param_2, bool param_3) {
if (param_2 < 0) {
return;
}
this->mCourse->SetMapDataFlag4(param_2, in_r2);
this->mCourse->SetMapDataFlag4(param_2, param_3);
}
bool MapManager::func_ov00_02084cfc(unk32 param_2) {
@@ -1938,7 +1935,7 @@ u8 MapManager::GetMapData_Unk_09() {
ARM void MapManager::func_ov00_02084d24(unk8 param_2, unk8 param_3, unk16 param_4) {
// Matches, but param types unsure.
// param_2 and param_3 aren't both part of a Vec2b *
// param_3 short or int?
// param_4 short or int?
Vec2b vec;
vec.x = param_2;
vec.y = param_3;
@@ -2078,7 +2075,7 @@ unk32 MapManager::func_ov00_02084ebc(Vec3p *param_2) {
}
// dVar3 = this->MapData_vfunc_70(); // Missing param.
if (dVar3 != 0xffff) {
func_ov000_02093a1c(&uStack_14, data_027e0f6c);
func_ov000_02093a1c(&uStack_14, data_027e0f6c, dVar3);
if ((uStack_14 >> 5 & 3) != 1) {
return 0;
}
@@ -2274,7 +2271,7 @@ unk32 MapManager::func_ov00_02085594(MapManager *param_1, Vec3p *param_2, unk32
unk32 dVar3; // dword
unk32 uVar4;
bool bVar5;
unk32 uStack_2c;
Vec2b uStack_2c[2];
Vec2b local_28;
u32 uStack_24;
Vec3p VStack_20;
@@ -2313,59 +2310,32 @@ 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);
if (iVar2 < 0x47) {
if (0x45 < iVar2) {
return 0;
}
if (iVar2 < 0x46) {
if (iVar2 < 0x2a) {
switch (iVar2) {
case 0: break;
case 1: return 0;
case 2: return 0;
case 3: return 0;
case 4: return 0;
case 5: return 0;
case 6: return 0;
case 7: break;
case 8: return 0;
case 9: return 0;
case 10: break;
case 0xb: break;
case 0xc: break;
case 0xd: break;
case 0xe: break;
case 0xf: break;
case 0x10: break;
case 0x11: break;
case 0x12: break;
case 0x13: break;
case 0x14: return 0;
case 0x15: break;
case 0x16: return 0;
case 0x17: return 0;
case 0x18: break;
case 0x19: return 0;
case 0x1a: break;
case 0x1b: break;
case 0x1c: break;
case 0x1d: return 0;
case 0x1e: return 0;
case 0x1f: return 0;
case 0x20: break;
case 0x21: break;
case 0x22: break;
case 0x23: break;
case 0x24: break;
case 0x25: break;
case 0x26: break;
case 0x27: return 0;
case 0x28: return 0;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 8:
case 9:
case 0x14:
case 0x16:
case 0x17:
case 0x19:
case 0x1d:
case 0x1e:
case 0x1f:
case 0x27:
case 0x28:
case 0x29: return 0;
}
} else if (iVar2 == 0x37) {
return 0;
}
} else if (iVar2 < 0x49) {
} else if (iVar2 < 0x48) {
if (0x47 < iVar2) {
return 0;
}
@@ -2375,15 +2345,16 @@ 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 = param_1->mMap->vfunc_58(&local_28, 5);
if (iVar2 != 0) {
return 0;
}
// uStack_2c._0_2_ = CONCAT11(local_27, local_28);
uStack_2c[0].y = local_28.y;
uStack_2c[0].x = local_28.x;
param_1->func_ov00_02083c7c(&VStack_20, uStack_2c);
// dVar3 = param_1->MapData_vfunc_70();
dVar3 = param_1->MapData_vfunc_70(&VStack_20);
if (dVar3 != 0xffff) {
func_ov000_02093a1c(&uStack_24, data_027e0f6c);
func_ov000_02093a1c(&uStack_24, data_027e0f6c, dVar3);
if ((uStack_24 >> 5 & 3) != 1) {
return 0;
}
@@ -2401,7 +2372,7 @@ void MapManager::func_ov00_0208583c(MapManager *param_1, Vec3p *param_2, unk32 p
s32 *piVar1;
Vec2b auStack_10[2];
// param_1->func_ov00_02083a1c(auStack_10, param_1, param_2); // Should auStack_10 be pointer type or not ?
param_1->func_ov00_02083a1c(auStack_10, param_1, param_2);
piVar1 = (unk32 *) param_1->MapData_vfunc_78(auStack_10);
if (piVar1 == (unk32 *) 0x0) {
return;