d_t_time_area_check OK (and some dTimeAreaMgr) (#29)

This commit is contained in:
robojumper
2024-09-15 20:52:25 +02:00
committed by GitHub
parent 24e10d2755
commit 63365331d8
11 changed files with 209 additions and 25 deletions
+21
View File
@@ -0,0 +1,21 @@
#ifndef D_T_TIME_AREA_CHECK_H
#define D_T_TIME_AREA_CHECK_H
#include <d/tg/d_tg.h>
class dTgTimeAreaCheck_c : public dTg_c {
public:
dTgTimeAreaCheck_c() {}
virtual ~dTgTimeAreaCheck_c() {}
virtual int create() override;
virtual int doDelete() override;
virtual int actorExecute() override;
virtual int draw() override;
private:
u8 mPastSceneFlag;
u8 mPresentSceneFlag;
};
#endif
+2
View File
@@ -24,6 +24,8 @@ public:
static SpawnInfo currentSpawnInfo;
static SpawnInfo nextSpawnInfo;
static ScGame *sInstance;
static bool isCurrentStage(const char *stageName);
};
#endif
+56
View File
@@ -0,0 +1,56 @@
#ifndef D_TIME_AREA_MGR_H
#define D_TIME_AREA_MGR_H
#include <m/m3d/m_proc.h>
#include <m/m_allocator.h>
#include <m/m_vec.h>
class dTimeAreaMgrProcA_c : public m3d::proc_c {
public:
dTimeAreaMgrProcA_c() {}
bool create(mHeapAllocator_c *alloc);
void drawOpa() override;
};
class dTimeAreaMgrProcB_c : public m3d::proc_c {
public:
dTimeAreaMgrProcB_c() {}
bool create(mHeapAllocator_c *alloc);
void drawOpa() override;
private:
/* 0x18 */ u8 field_0x18;
/* 0x19 */ u8 field_0x19;
/* 0x1A */ u8 field_0x1A;
/* 0x1B */ u8 field_0x1B;
};
class dTimeAreaMgr_c {
public:
dTimeAreaMgr_c();
virtual ~dTimeAreaMgr_c();
bool init();
void draw();
f32 checkPositionIsInPastState(s32 roomId, const mVec3_c &position, float *, float);
static dTimeAreaMgr_c *sInstance;
private:
/* 0x04 */ u8 field_0x04[0x0C - 0x04];
/* 0x0C */ mHeapAllocator_c mAllocator;
/* 0x28 */ dTimeAreaMgrProcA_c mProcA;
/* 0x40 */ dTimeAreaMgrProcB_c mProcB;
/* 0x5C */ u8 field_0x5C[0x64 - 0x5C];
/* 0x64 */ s32 field_0x64;
/* 0x68 */ u8 field_0x68[0x7B - 0x68];
/* 0x7B */ bool mIsInLanayruMiningFacility;
};
#endif