diff options
Diffstat (limited to 'include/Map/MapBase.hpp')
| -rw-r--r-- | include/Map/MapBase.hpp | 237 |
1 files changed, 237 insertions, 0 deletions
diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp new file mode 100644 index 00000000..c9497a0a --- /dev/null +++ b/include/Map/MapBase.hpp @@ -0,0 +1,237 @@ +#pragma once + +#include <vector> + +#include "global.h" +#include "types.h" + +#include "lib/math.h" + +#include "Map/Course.hpp" +#include "Map/Entrance.hpp" +#include "Map/TriggerBase.hpp" +#include "Map/Exit.hpp" +#include "Map/CameraViewpoint.hpp" +#include "System/SysNew.hpp" + +#define MAX_ENTRANCES 0x40 +#define MAX_TRIGGERS 0x40 +#define MAX_EXITS 0x40 +#define MAX_VIEWPOINTS 8 +#define MAX_MAP_UNK_130 0x20 + +struct MapBase_Unk_180 { + /* 0 */ unk32 mUnk_0; + /* 4 */ + + ~MapBase_Unk_180(); +}; + +struct MapBase_Unk1 { + /* 00 */ s32 mUnk_00; + /* 04 */ Exit mExit_04; + /* 1c */ Exit mExit_1c; + /* 34 */ + + void func_ov00_02080324(s32 param_2, s32 param_3, s32 param_4); +}; + +struct MapBase_Unk2 { + /* 00 */ TriggerBase **mTrigger; + /* 04 */ Vec3p mVec; + /* 10 */ + + void func_ov00_02080ad0(TriggerBase **param_2, TriggerBase **param_3); +}; + +class MapBase : public SysObject { +public: + /* 000 (vtable) */ + /* 004 */ unk8 mUnk_004; + /* 005 */ unk8 mUnk_005; + /* 006 */ unk8 mUnk_006; + /* 007 */ unk8 mUnk_007; + /* 008 */ unk8 mUnk_008; + /* 009 */ unk8 mUnk_009; + /* 00a */ unk8 mUnk_00a; + /* 00b */ unk8 mUnk_00b; + /* 00c */ unk8 mUnk_00c; + /* 00d */ unk8 mUnk_00d; + /* 00e */ unk8 mUnk_00e; + /* 00f */ unk8 mUnk_00f; + /* 010 */ unk8 mUnk_010; + /* 011 */ unk8 mUnk_011; + /* 012 */ unk8 mUnk_012; + /* 013 */ unk8 mUnk_013; + /* 014 */ unk8 mUnk_014; + /* 015 */ unk8 mUnk_015; + /* 016 */ unk8 mUnk_016[2]; + /* 018 */ unk8 mUnk_018[2]; + /* 01a */ unk8 mUnk_01a; + /* 01b */ unk8 mUnk_01b; + /* 01c */ unk8 mUnk_01c; + /* 01d */ unk8 mUnk_01d; + /* 01e */ unk8 mUnk_01e; + /* 01f */ unk8 mUnk_01f; + /* 020 */ unk32 mUnk_020; + /* 024 */ unk32 mUnk_024; + /* 028 */ s16 mUnk_028; + /* 02a */ s16 mUnk_02a; + /* 02c */ unk16 mUnk_02c; + /* 02e */ unk16 mUnk_02e; + /* 030 */ s16 mUnk_030; + /* 032 */ unk8 mUnk_032[2]; + /* 034 */ unk32 mUnk_034; + /* 038 */ unk32 mUnk_038; + /* 03c */ unk32 mUnk_03c; + /* 040 */ unk32 mUnk_040; + /* 044 */ unk32 mUnk_044; + /* 048 */ u32 mUnk_048; + /* 04c */ unk32 mUnk_04c; + /* 050 */ unk8 mUnk_050[0x80]; + /* 0d0 */ Vec3p mUnk_0d0; + /* 0dc */ Vec3p mUnk_0dc; + /* 0e8 */ Vec3p mUnk_0e8; + /* 0f4 */ Vec3p mUnk_0f4; + /* 100 */ std::vector<Entrance> mEntrances; + /* 10c */ std::vector<TriggerBase*> mTriggers; + /* 118 */ std::vector<Exit> mExits; + /* 124 */ std::vector<CameraViewpoint> mViewpoints; + /* 130 */ std::vector<TriggerBase*> mUnk_130; + /* 13c */ unk32 mUnk_13c; + /* 140 */ unk32 mUnk_140; + /* 144 */ void *mUnk_144; + /* 148 */ s32 mUnk_148; + /* 14c */ s32 mUnk_14c; + /* 150 */ unk32 mUnk_150; + /* 154 */ unk32 mUnk_154; + /* 158 */ unk8 mUnk_158[8]; + /* 160 */ unk32 mUnk_160; + /* 164 */ unk8 mUnk_164[0x1c]; + /* 180 */ MapBase_Unk_180 mUnk_180[2]; + /* 188 */ unk8 mUnk_188[0x14]; + /* 19c */ unk32 mUnk_19c; + /* 1a0 */ unk8 mUnk_1a0[0xc]; + /* 1ac */ s16 mUnk_1ac; + /* 1ae */ unk8 mUnk_1ae[2]; + /* 1b0 */ + + /* 00 */ virtual ~MapBase(); + /* 08 */ virtual void vfunc_08(u32 param_2, u32 param_3, Course *param_4); + /* 0c */ virtual void vfunc_0c(Course *param_2); + /* 10 */ virtual void vfunc_10(); + /* 14 */ virtual void vfunc_14(); + /* 18 */ virtual void vfunc_18(); + /* 1c */ virtual void vfunc_1c(bool param_2); + /* 20 */ virtual void vfunc_20(s32 param_2); + /* 24 */ virtual void vfunc_24(); + /* 28 */ virtual void vfunc_28(s32 param_2); + /* 2c */ virtual void vfunc_2c(); + /* 30 */ virtual void vfunc_30(s32 param_2); + /* 34 */ virtual bool vfunc_34(char *param_2); + /* 38 */ virtual void vfunc_38(); + /* 3c */ virtual void vfunc_3c(); + /* 40 */ virtual void vfunc_40(); + /* 44 */ virtual void vfunc_44(); + /* 48 */ virtual void vfunc_48(); + /* 4c */ virtual void vfunc_4c() = 0; + /* 50 */ virtual unk32 vfunc_50(); + /* 54 */ virtual unk32 vfunc_54(); + /* 58 */ virtual unk32 vfunc_58(); + /* 5c */ virtual unk32 vfunc_5c(); + /* 60 */ virtual unk32 vfunc_60(); + /* 64 */ virtual unk32 vfunc_64(); + /* 68 */ virtual unk8 vfunc_68(unk32 param_2, unk32 param_3); + /* 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(); + /* 7c */ virtual unk32 vfunc_7c(); + /* 80 */ virtual unk32 vfunc_80(); + /* 84 */ virtual void vfunc_84(unk32 param_2); + /* 88 */ virtual unk32 vfunc_88(); + /* 8c */ virtual unk32 vfunc_8c(); + /* 90 */ virtual unk8 vfunc_90(unk32 param_2, unk32 param_3, unk32 param_4); + /* 94 */ virtual void vfunc_94(); + /* 98 */ virtual void vfunc_98(); + /* 9c */ virtual void vfunc_9c(); + /* a0 */ virtual void vfunc_a0(); + /* a4 */ virtual unk32 vfunc_a4(); + /* a8 */ virtual void vfunc_a8(); + /* ac */ virtual void vfunc_ac(); + /* b0 */ virtual unk8 vfunc_b0(unk32 param_2, unk32 param_3); + /* b4 */ virtual void vfunc_b4(); + /* b8 */ virtual unk32 vfunc_b8(); + /* bc */ virtual void vfunc_bc(); + /* c0 */ virtual void vfunc_c0(); + /* c4 */ + + void SetBounds(unk32 map, unk32 course); + void GetMapFilePath(char *courseName, unk32 num1, unk32 buf); + void func_ov00_0207ddf8(bool param_2); + void func_ov00_0207de68(unk32 param_2); + void func_ov00_0207de88(); + void func_ov00_0207dea0(bool param_2); + bool func_ov00_0207e08c(unk32 param_2, unk32 param_3); + s32 func_ov00_0207e0f0(unk32 param_2); + s32 func_ov00_0207e28c(unk32 param_2); + static unk8 func_ov00_0207e940(unk8 *param_1); + static unk8 func_ov00_0207e968(); + static unk8 func_ov00_0207e96c(); + static unk8 func_ov00_0207f100(); + bool func_ov00_0207f104(unk32 param_2, unk32 param_3); + unk32 func_ov00_0207f1f4(Vec3p *param_2, unk32 *param_3); + unk8 func_ov00_0207f38c(unk32 param_2); + void func_ov00_0207f4a4(Vec2s *param_2, unk32 param_3); + static void func_ov00_0207f53c(Vec2s *param_1, MapBase *param_2, Vec3p *param_3); + static void func_ov00_0207f588(Vec2s *param_1, MapBase *param_2, Vec2b *param_3, unk32 param_4); + void func_ov00_0207f630(Vec2s *param_2, Vec3p *param_3); + unk8 GetTileStartX(unk32 x); + unk8 GetTileStartZ(unk32 z); + s32 GetTileEndX(unk32 x); + s32 GetTileEndZ(unk32 z); + void GetTileBounds(Vec2b *tilePos, AABB *bounds); + unk8 GetClampedTileX(unk32 worldX); + unk8 GetClampedTileY(unk32 worldZ); + unk8 GetTileX(unk32 worldX); + unk8 GetTileY(unk32 worldZ); + bool IsInBounds(Vec3p *tileWorldPos); + s32 AddEntrance(Entrance *param_2); + unk8 FindEntrance(unk32 id); + unk8 func_ov00_0207f924(unk32 param_2); + unk8 func_ov00_0207f934(); + unk8 func_ov00_0207f948(unk32 param_2); + void AddTrigger(TriggerParams *param_2); + s32 GetTriggerBoundingBox(unk32 param_2, AABB *param_3); + unk8 GetTriggerBoundingBoxes(unk32 param_2, AABB *param_3, unk32 param_4); + unk32 GetOverlappingTrigger(Vec3p *param_2); + unk8 FindTrigger(unk32 type); + unk8 GetOverlappingTriggers(Vec3p *param_2, TriggerBase * *triggers, unk32 capacity); + bool IsTriggerTypeOverlapped(unk32 type, Vec3p *param_3); + bool AnyTrigger_func_0c(unk32 type); + unk8 Trigger_vfunc_08(); + bool AddTrigger(unk32 param_2); + bool func_ov00_0207ff88(unk32 param_2); + void func_ov00_0208005c(s32 param_2, s32 param_3, unk32 param_4); + void func_ov00_0208006c(unk32 param_2, s32 param_3); + void func_ov00_0208007c(s32 param_2, s32 param_3); + void func_ov00_0208008c(u32 param_2); + unk8 AddExit(Exit *param_2); + unk8 func_ov00_02080140(Exit *param_2); + bool FindExit(unk32 param_2, Exit *param_3); + unk8 AddCameraViewpoint(CameraViewpoint *param_2); + bool FindViewpoint_Unk_4(unk8 id, CameraViewpoint *param_3); + bool FindViewpoint_Unk_0(unk32 param_2, CameraViewpoint *param_3); + void GetCurrentViewpoint(CameraViewpoint *param_2, unk32 param_3); + unk8 GetCurrentViewpoint_Unk_00(s32 param_2); + bool func_ov00_02080824(unk32 param_2, unk32 param_3); + bool AddUnk_130(unk32 param_2); + bool func_ov00_020809b8(unk32 param_2); + unk8 func_ov00_02080a78(Vec3p *param_2); + unk8 func_ov00_02080b24(Vec2b *param_2); + void func_ov00_02080d08(unk32 param_2); + bool TriggerOfType_vfunc_10(unk32 type); + void func_ov00_02080de4(); + unk8 func_ov00_02080de8(unk32 param_2); + void func_ov00_02080edc(); +}; |
