mirror of https://github.com/zeldaret/tp.git
118 lines
2.7 KiB
C++
118 lines
2.7 KiB
C++
#ifndef D_EVENT_D_EVENT_DATA_H
|
|
#define D_EVENT_D_EVENT_DATA_H
|
|
|
|
#include "d/d_stage.h"
|
|
#include "d/save/d_save.h"
|
|
#include "dolphin/types.h"
|
|
|
|
struct event_binary_data_header {};
|
|
|
|
struct dEvDtData_c {};
|
|
|
|
class dEvDtCut_c {
|
|
public:
|
|
void startCheck();
|
|
|
|
private:
|
|
/* 0x00 */ u8 field_0x0[0x20];
|
|
/* 0x20 */ u32 mTagID;
|
|
/* 0x28 */ int field_0x28[3];
|
|
/* 0x34 */ u32 mFlagId;
|
|
/* 0x38 */ u32 mDataTop;
|
|
/* 0x3C */ u32 mNext;
|
|
};
|
|
|
|
class dEvDtStaff_c {
|
|
public:
|
|
void specialProc_WaitStart(int);
|
|
void specialProc_WaitProc(int);
|
|
void specialProc();
|
|
void init();
|
|
void advanceCut(int);
|
|
void specialProcLight();
|
|
void specialProcMessage();
|
|
void specialProcSound();
|
|
void specialProcCreate();
|
|
void specialProcDirector();
|
|
void specialProcPackage();
|
|
void specialProcTimekeeper();
|
|
void specialProcEffect();
|
|
|
|
private:
|
|
/* 0x00 */ u8 field_0x00[4];
|
|
/* 0x04 */ void* field_0x04;
|
|
/* 0x08 */ u32 field_0x08;
|
|
/* 0x0C */ int field_0x0c;
|
|
/* 0x10 */ u32 field_0x10;
|
|
/* 0x14 */ u8 field_0x14[0xC];
|
|
/* 0x20 */ u32 mTagID;
|
|
/* 0x24 */ u32 field_0x24;
|
|
/* 0x28 */ u8 field_0x28[4];
|
|
/* 0x2C */ int mType;
|
|
/* 0x30 */ u32 mStartCut;
|
|
/* 0x34 */ u8 field_0x34[2];
|
|
/* 0x36 */ s16 field_0x36;
|
|
/* 0x38 */ int mCurrentCut;
|
|
/* 0x3C */ u32 field_0x3c;
|
|
/* 0x40 */ u8 field_0x40;
|
|
/* 0x41 */ u8 field_0x41;
|
|
/* 0x42 */ s16 field_0x42;
|
|
/* 0x44 */ s16 mSoundWait;
|
|
/* 0x46 */ u8 field_0x46[4];
|
|
/* 0x4A */ int field_0x4a;
|
|
};
|
|
|
|
class dEvDtEvent_c {
|
|
public:
|
|
void finishCheck();
|
|
void forceFinish();
|
|
void specialStaffProc(dEvDtStaff_c*);
|
|
|
|
/* 0x00 */ s32 mEventNum;
|
|
/* 0x04 */ u8 field_0x4[0xA0];
|
|
/* 0xA4 */ int field_0xa4;
|
|
};
|
|
|
|
class dEvDtFlag_c {
|
|
public:
|
|
dEvDtFlag_c() {}
|
|
void flagCheck(int);
|
|
void flagSet(int);
|
|
bool flagMaxCheck(int);
|
|
void init();
|
|
|
|
#define FlagMax 0x2800
|
|
|
|
private:
|
|
u32 mFlags[320];
|
|
}; // Size = 0x500
|
|
|
|
class dEvDtBase_c {
|
|
public:
|
|
dEvDtBase_c();
|
|
~dEvDtBase_c() {}
|
|
void init();
|
|
void init(char*, int);
|
|
void advanceCut(dEvDtEvent_c*);
|
|
void advanceCutLocal(dEvDtStaff_c*);
|
|
|
|
event_binary_data_header* getHeaderP() { return mHeaderP; }
|
|
s32 getEventNum() { return mEventP->mEventNum; }
|
|
s32 roomNo() { return mRoomNo; }
|
|
|
|
private:
|
|
/* 0x00 */ event_binary_data_header* mHeaderP;
|
|
/* 0x04 */ dEvDtEvent_c* mEventP;
|
|
/* 0x08 */ dEvDtStaff_c* mStaffP;
|
|
/* 0x0C */ dEvDtCut_c* mCutP;
|
|
/* 0x10 */ dEvDtData_c* mDataP;
|
|
/* 0x14 */ float* mFDataP;
|
|
/* 0x18 */ s32* mIDataP;
|
|
/* 0x1C */ char* mSDataP;
|
|
/* 0x20 */ s32 mRoomNo;
|
|
}; // Size = 0x24
|
|
|
|
STATIC_ASSERT(sizeof(dEvDtBase_c) == 0x24);
|
|
|
|
#endif /* D_EVENT_D_EVENT_DATA_H */
|