mirror of
https://github.com/encounter/ph.git
synced 2026-03-30 11:34:37 -07:00
125 lines
4.3 KiB
C++
125 lines
4.3 KiB
C++
#pragma once
|
|
|
|
#include "global.h"
|
|
#include "types.h"
|
|
|
|
#include "Map/Course_Unk_c8.hpp"
|
|
#include "Map/MapData.hpp"
|
|
#include "Physics/AABB.hpp"
|
|
#include "System/SysNew.hpp"
|
|
|
|
#define MAX_KEYS 8
|
|
|
|
typedef unk32 CourseType;
|
|
enum CourseType_ {
|
|
CourseType_Normal = 0,
|
|
CourseType_Dungeon = 1,
|
|
CourseType_Sea = 2,
|
|
CourseType_TempleOfTheOceanKing = 3,
|
|
CourseType_Battle = 4,
|
|
};
|
|
|
|
struct CourseProgress {
|
|
/* 0 */ unk32 flags;
|
|
/* 4 */ s8 numKeys;
|
|
/* 5 */ bool blueWarpOpen;
|
|
/* 6 */
|
|
};
|
|
|
|
class Course : public SysObject {
|
|
public:
|
|
/* 000 */ s32 mIndex;
|
|
/* 004 */ CourseType mType;
|
|
/* 008 */ unk32 mUnk_008;
|
|
/* 00c */ char mName[0x10];
|
|
/* 01c */ Vec2b mCurrMapPos; // position in the map grid
|
|
/* 01e */ unk8 mUnk_01e;
|
|
/* 01f */ unk8 mUnk_01f;
|
|
/* 020 */ u8 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 */ u8 mNumMaps;
|
|
/* 0b1 */ u8 mUnk_0b1;
|
|
/* 0b2 */ unk8 mUnk_0b2;
|
|
/* 0b3 */ unk8 mUnk_0b3;
|
|
/* 0b4 */ unk32 mUnk_0b4;
|
|
/* 0b8 */ unk32 mUnk_0b8;
|
|
/* 0bc */ unk32 mUnk_0bc;
|
|
/* 0c0 */ unk32 mUnk_0c0;
|
|
/* 0c4 */ unk32 mUnk_0c4;
|
|
/* 0c8 */ Course_Unk_c8 *mUnk_0c8;
|
|
/* 0cc */ MapData *mMapData[100];
|
|
/* 25c */ bool mUnk_25c;
|
|
/* 25d */ bool mBlueWarpOpen;
|
|
/* 25e */ unk8 mUnk_25e;
|
|
/* 25f */ unk8 mUnk_25f;
|
|
/* 260 */ unk32 mNumKeys;
|
|
/* 264 */ unk32 mFlags0[1];
|
|
/* 268 */ unk32 mFlags1[1]; // knows which doors are open in a dungeon
|
|
/* 26c */
|
|
|
|
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 *FindMapCenter(unk32 map);
|
|
void func_ov00_0207cbe8(s32 param_2);
|
|
unk8 func_ov00_0207cc24(s32 param_2);
|
|
unk32 FindMapData_Unk_08(unk32 map);
|
|
void GetMCSFilePath(unk32 buf, s32 fileIndex, unk32 fileType);
|
|
void GetMRCFilePath(unk32 param_2, unk32 buf, unk32 param_4);
|
|
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, unk32 param_5);
|
|
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 FindCurrentMapData_Unk_04();
|
|
u32 FindMapData_Unk_04(unk32 param_2);
|
|
unk32 FindMapData_Unk_0c(unk32 map);
|
|
void func_ov00_0207d7bc();
|
|
void SetFlag0(u32 index, bool value);
|
|
bool GetFlag0(u32 index);
|
|
void SetFlag1(u32 index, bool value);
|
|
bool SetFlag1(u32 index);
|
|
void SetMapDataFlag0(unk32 index, bool value);
|
|
bool GetMapDataFlag0(unk32 param_2);
|
|
void SetMapDataFlag1(unk32 param_2, bool param_3);
|
|
bool GetMapDataFlag1(unk32 param_2);
|
|
void SetMapDataFlag2(unk32 param_2, bool param_3);
|
|
bool GetMapDataFlag2(unk32 param_2);
|
|
void SetMapDataFlag3(unk32 param_2, bool param_3);
|
|
bool GetMapDataFlag3(unk32 param_2);
|
|
void SetMapDataFlag4(unk32 param_2, bool param_3);
|
|
bool GetMapDataFlag4(unk32 param_2);
|
|
MapData *FindMapData(u32 map);
|
|
MapData *FindCurrentMapData();
|
|
|
|
Course();
|
|
~Course();
|
|
bool func_ov004_0210ee84(char *param1);
|
|
unk32 func_ov004_0210ef90(unk32 param1);
|
|
void func_ov004_0210f010();
|
|
void LoadMapData(u8 *map, s32 x, s32 y, char param4, unk32 param5);
|
|
bool func_ov004_0210f0fc(unk32 param1, unk16 *param2, s32 param3);
|
|
void func_ov004_0210f140(s32 param1);
|
|
};
|