Remangle Course

This commit is contained in:
Aetias
2024-04-28 16:38:58 +02:00
parent 04b3812395
commit dfea2bd522
23 changed files with 483 additions and 431 deletions
+58 -59
View File
@@ -3,6 +3,8 @@
#include "global.h"
#include "types.h"
#include "Map/Course_Unk_c8.hpp"
#include "Map/Course_Unk_cc.hpp"
#include "Physics/AABB.hpp"
#include "System/SysNew.hpp"
@@ -27,21 +29,18 @@ class Course : public SysObject {
/* 004 */ CourseType mType;
/* 008 */ unk32 mUnk_008;
/* 00c */ char mName[0x10];
/* 01c */ unk8 mUnk_01c;
/* 01d */ unk8 mUnk_01d;
/* 01c */ Vec2b mCurrMapPos; // position in the map grid
/* 01e */ unk8 mUnk_01e;
/* 01f */ unk8 mUnk_01f;
/* 020 */ unk8 mUnk_020[10][10];
/* 084 */ s8 mUnk_084;
/* 084 */ s8 mUnk_085;
/* 084 */ s8 mUnk_086;
/* 084 */ s8 mUnk_087;
/* 088 */ unk32 mUnk_088;
/* 08c */ unk32 mUnk_08c;
/* 020 */ unk8 mMapGrid[10][10];
/* 084 */ Vec2b mMainGrid; // part of the grid where you can walk off screen to another map
/* 086 */ Vec2b mMainGridSize;
/* 088 */ s32 mScreenMapOffsetX;
/* 08c */ s32 mScreenMapOffsetY;
/* 090 */ unk32 mUnk_090;
/* 094 */ unk32 mUnk_094;
/* 098 */ AABB mBounds;
/* 0b0 */ s8 mUnk_0b0;
/* 0b0 */ s8 mNumMaps;
/* 0b1 */ unk8 mUnk_0b1;
/* 0b2 */ unk8 mUnk_0b2;
/* 0b3 */ unk8 mUnk_0b3;
@@ -50,64 +49,64 @@ class Course : public SysObject {
/* 0bc */ unk32 mUnk_0bc;
/* 0c0 */ unk32 mUnk_0c0;
/* 0c4 */ unk32 mUnk_0c4;
/* 0c8 */ void *mUnk_0c8;
/* 0cc */ unk32 mUnk_0cc[100];
/* 0c8 */ Course_Unk_c8 *mUnk_0c8;
/* 0cc */ Course_Unk_cc *mUnk_0cc[100];
/* 25c */ bool mUnk_25c;
/* 25d */ bool mBlueWarpOpen;
/* 25e */ unk8 mUnk_25e;
/* 25f */ unk8 mUnk_25f;
/* 260 */ unk32 mNumKeys;
/* 264 */ unk32 mUnk_264;
/* 268 */ unk32 mFlags; // knows which doors are open in a dungeon
/* 260 */ unk32 mFlags0[1];
/* 268 */ unk32 mFlags1[1]; // knows which doors are open in a dungeon
/* 26c */
unk8 GetDungeonProgress(CourseProgress *param_2);
unk8 func_ov00_0207ca28(unk32 param_2, unk32 param_3, unk32 param_4);
char * SetCourseName(char *src);
static unk8 func_ov00_0207ca78();
bool func_ov00_0207caa8(unk32 param_2, unk32 param_3, unk32 param_4);
unk32 func_ov00_0207cb30(unk32 param_2);
static unk8 func_ov00_0207cb7c(unk32 param_1, Course *param_2, unk32 param_3);
Vec3p * func_ov00_0207cbd8(unk32 param_2);
void func_ov00_0207cbe8(unk32 param_2);
unk8 func_ov00_0207cc24(unk32 param_2);
unk32 func_ov00_0207cc6c();
void GetDungeonProgress(CourseProgress *param_2);
void func_ov00_0207ca28(s32 param_2, unk32 param_3, unk32 param_4);
char* SetCourseName(char *src);
void func_ov00_0207ca78(unk32 param_2, unk8 param_3, unk32 param_4);
bool func_ov00_0207caa8(s32 param_2, unk32 *param_3, unk8 *param_4);
unk32 func_ov00_0207cb30(s32 param_2);
static void FindMapGridPos(Vec2b *pos, Course *param_2, u32 map);
Vec3p* Find_Unk_cc_14(unk32 param_2);
void func_ov00_0207cbe8(s32 param_2);
unk8 func_ov00_0207cc24(s32 param_2);
unk32 Find_Unk_cc_08();
void GetMCSFilePath(unk32 buf, s32 fileIndex, unk32 fileType);
void GetMRCFilePath(unk32 param_2, unk32 buf, unk32 param_4);
unk8 func_ov00_0207ce20(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5);
static unk8 func_ov00_0207ce4c(unk8 param_1, unk8 param_2, unk8 param_3, unk8 param_4, unk32 param_5, unk32 param_6);
bool func_ov00_0207d404(unk32 param_2, unk32 param_3, unk32 param_4);
bool func_ov00_0207d47c();
bool func_ov00_0207d490(unk32 param_2, unk32 param_3);
bool func_ov00_0207d4e4(unk32 param_2);
bool func_ov00_0207d518(s32 param_2, s32 *param_3, s32 *param_4);
unk8 func_ov00_0207d5c4();
unk8 func_ov00_0207d5f0();
unk8 func_ov00_0207d61c();
unk8 GetUnk_c8_Unk_4();
bool func_ov00_0207d634(unk32 param_2);
unk8 func_ov00_0207d6ac(unk32 param_2, unk32 param_3);
static unk8 func_ov00_0207d6ec();
unk8 func_ov00_0207d738(unk32 param_2);
unk8 func_ov00_0207d758(unk32 param_2);
static unk8 func_ov00_0207d778();
static unk8 func_ov00_0207d788();
static unk8 func_ov00_0207d7a4();
void func_ov00_0207ce20(unk32 param_2, unk32 param_3, char *param_4, unk32 param_5);
void func_ov00_0207ce4c(s32 param_2, s32 param_3, unk32 param_4, char *param_5, unk32 param_6);
bool func_ov00_0207d404(s32 param_2, unk32 param_3, unk32 param_4);
bool IsCurrentMapInMainGrid();
bool IsInMainGrid(s32 x, s32 y);
bool IsMapInMainGrid(u32 map);
bool GetMapScreenPos(s32 map, s32 *x, s32 *y);
u32 GetScreenMapCellSizeX();
u32 GetScreenMapCellSizeY();
unk32 Get_Unk_c8_00();
unk32 Get_Unk_c8_04();
bool IsAdjacentMapOnMainGrid(unk32 dir);
bool HasGridMap(s32 x, s32 y);
unk8 GetAdjacentMap(unk32 dir);
u32 GetAdjacentMapX(s32 ir);
u32 GetAdjacentMapY(s32 dir);
u16 FindCurrent_Unk_cc_04();
u32 Find_Unk_cc_04(unk32 param_2);
unk32 Find_Unk_cc_0c(unk32 map);
void func_ov00_0207d7bc();
unk8 func_ov00_0207d7dc(unk32 param_2, unk32 param_3);
unk8 func_ov00_0207d828(unk32 param_2);
unk8 func_ov00_0207d848(unk32 param_2, unk32 param_3);
unk8 func_ov00_0207d894(unk32 param_2);
static unk8 func_ov00_0207d8b4();
bool func_ov00_0207d8d4(unk32 param_2);
static unk8 func_ov00_0207d8ec();
bool func_ov00_0207d90c(unk32 param_2);
static unk8 func_ov00_0207d924();
bool func_ov00_0207d944(unk32 param_2);
static unk8 func_ov00_0207d95c();
void SetFlag0(u32 index, bool value);
bool GetFlag0(u32 index);
void SetFlag1(u32 index, bool value);
bool SetFlag1(u32 index);
void SetFlag0_Unk_cc(unk32 index, bool value);
bool GetFlag0_Unk_cc(unk32 param_2);
void SetFlag1_Unk_cc(unk32 param_2, bool param_3);
bool GetFlag1_Unk_cc(unk32 param_2);
void SetFlag2_Unk_cc(unk32 param_2, bool param_3);
bool GetFlag2_Unk_cc(unk32 param_2);
void SetFlag3_Unk_cc(unk32 param_2, bool param_3);
bool func_ov00_0207d97c(unk32 param_2);
static unk8 func_ov00_0207d994();
bool func_ov00_0207d9b4(unk32 param_2);
unk32 func_ov00_0207d9cc(unk32 param_2);
s32 func_ov00_0207da14();
void func_ov00_0207d994(unk32 param_2, unk32 param_3);
bool GetFlag3_Unk_cc(unk32 param_2);
Course_Unk_cc* Find_Unk_cc(u32 map);
Course_Unk_cc* FindCurrent_Unk_cc();
};
+19
View File
@@ -0,0 +1,19 @@
#pragma once
#include "global.h"
#include "types.h"
#include "System/SysNew.hpp"
class Course_Unk_c8 : public SysObject {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk8 mUnk_0c;
/* 0d */ unk8 mUnk_0d[3];
/* 10 */ void *mUnk_10;
/* 14 */ s32 mUnk_14;
/* 18 */ u32 mUnk_18;
/* 1c */
};
+28
View File
@@ -0,0 +1,28 @@
#pragma once
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "System/SysNew.hpp"
class Course_Unk_cc : public SysObject {
public:
/* 00 */ char mUnk_00;
/* 01 */ s8 mMap;
/* 02 */ unk16 mUnk_02;
/* 04 */ u16 mUnk_04;
/* 06 */ unk8 mUnk_06[2];
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk8 mUnk_10[4];
/* 14 */ Vec3p mUnk_14;
/* 20 */ unk32 mFlags0[1];
/* 24 */ unk32 mFlags1[8];
/* 44 */ unk32 mFlags2[2];
/* 4c */ unk32 mFlags3[1];
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;
/* 58 */
};