mirror of https://github.com/zeldaret/tp.git
132 lines
4.0 KiB
C++
132 lines
4.0 KiB
C++
#ifndef D_EVENT_D_EVENT_MANAGER_H
|
|
#define D_EVENT_D_EVENT_MANAGER_H
|
|
|
|
#include "SSystem/SComponent/c_xyz.h"
|
|
#include "d/d_event_data.h"
|
|
#include "d/d_event_debug.h"
|
|
|
|
class fopAc_ac_c;
|
|
|
|
class dEvent_exception_c {
|
|
public:
|
|
dEvent_exception_c() { mEventInfoIdx = -1; }
|
|
~dEvent_exception_c() {}
|
|
void init();
|
|
int setStartDemo(int mapToolID);
|
|
const char* getEventName();
|
|
|
|
/* 0x0 */ int mEventInfoIdx;
|
|
/* 0x4 */ u8 field_0x4;
|
|
/* 0x5 */ u8 field_0x5;
|
|
/* 0x6 */ u8 field_0x6;
|
|
/* 0x7 */ u8 field_0x7;
|
|
/* 0x8 */ int mState;
|
|
};
|
|
|
|
#define EVT_SE_RIDDLE_A 1
|
|
#define EVT_SE_RIDDLE_B 2
|
|
|
|
class dEvent_manager_c {
|
|
public:
|
|
enum {
|
|
BASE_NULL,
|
|
BASE_KEEP,
|
|
BASE_ACTOR,
|
|
BASE_STAGE,
|
|
BASE_ROOM0,
|
|
BASE_ROOM1,
|
|
BASE_ROOM2,
|
|
BASE_ROOM3,
|
|
BASE_ROOM4,
|
|
BASE_ROOM5,
|
|
BASE_DEMO,
|
|
|
|
#if DEBUG
|
|
BASE_DEBUG,
|
|
#endif
|
|
|
|
BASE_MAX,
|
|
};
|
|
|
|
void* getSubstance(dEvDtData_c* evData, int type);
|
|
void setDbgData(const char* srcData);
|
|
dEvent_manager_c();
|
|
~dEvent_manager_c() {}
|
|
int create();
|
|
bool setObjectArchive(char* arcname);
|
|
void demoInit();
|
|
void roomInit(int roomNo);
|
|
void roomFinish(int roomNo);
|
|
int orderStartDemo();
|
|
void remove();
|
|
void startProc(dEvDtEvent_c* event);
|
|
void closeProc(dEvDtEvent_c* event);
|
|
void endProc(s16 evId, BOOL isClose);
|
|
void Sequencer();
|
|
void Experts();
|
|
dEvDtEvent_c* getEventData(s16 evCompositId);
|
|
dEvDtEvent_c* getEventData(s16 evIdx, int evType);
|
|
s16 getEventIdx(const char* eventName, u8 mapToolID, s32 roomNo);
|
|
s16 getEventIdx(fopAc_ac_c* actor, u8 mapToolID);
|
|
s16 getEventIdx(fopAc_ac_c* actor, const char* eventName, u8 mapToolID);
|
|
int isMapToolCamera(u8 mapToolID, s32 roomNo);
|
|
int order(s16 evCompositId);
|
|
int startCheck(s16 evCompositId);
|
|
int startCheckOld(const char* eventname);
|
|
int endCheck(s16 eventID);
|
|
int endCheckOld(const char* eventname);
|
|
int getMyStaffId(const char* staffName, fopAc_ac_c* actor, int tagId);
|
|
int getIsAddvance(int staffId);
|
|
int getMyActIdx(int staffId, const char* const* action, int n_action, BOOL param_3, BOOL param_4);
|
|
char* getMyNowCutName(int staffId);
|
|
dEvDtData_c* getMyDataP(int staffId, const char* dataname, BOOL isSeekStart);
|
|
void* getMySubstanceP(int staffId, const char* dataname, int datatype);
|
|
int getMySubstanceNum(int staffId, const char* dataname);
|
|
void cutEnd(int staffId);
|
|
int getEventPrio(fopAc_ac_c* actor, s16 evCompositId);
|
|
void issueStaff(const char* staffname);
|
|
void cancelStaff(const char* staffname);
|
|
void setGoal(cXyz* pos);
|
|
cXyz* getGoal();
|
|
const char* getRunEventName();
|
|
fopAc_ac_c* specialCast_Shutter(s16 actorName, BOOL param_1);
|
|
fopAc_ac_c* specialCast(const char* staffname, BOOL param_1);
|
|
int ChkPresentEnd();
|
|
int checkStartDemo();
|
|
|
|
void debugBfProc();
|
|
|
|
int setStartDemo(int mapToolId) { return mException.setStartDemo(mapToolId); }
|
|
void setCameraPlay(int status) { mCameraPlay = status; }
|
|
dEvDtBase_c& getBase() { return mEventList[mCurrentEvType]; }
|
|
void setFlag(int flag) { mFlags.flagSet(flag); }
|
|
bool dataLoaded() { return mDataLoaded; }
|
|
int flagCheck(int flag) { return mFlags.flagCheck(flag); }
|
|
int cameraPlay() { return mCameraPlay; }
|
|
|
|
event_binary_data_header* getHeader(u8 type) {return mEventList[type].getHeaderP(); }
|
|
dEvDtEvent_c* getEventList(u8 type) { return mEventList[type].getEventP(); }
|
|
|
|
dEvDtFlag_c& getFlags() { return mFlags; }
|
|
|
|
#if DEBUG
|
|
dEvM_HIO_c& getEventHIO();
|
|
#endif
|
|
|
|
private:
|
|
/* 0x000 */ dEvDtBase_c mEventList[BASE_MAX];
|
|
/* 0x18C */ int mCameraPlay;
|
|
/* 0x190 */ dEvent_exception_c mException;
|
|
/* 0x19C */ cXyz mGoal;
|
|
/* 0x1A8 */ u8 unk_0x1a8[2];
|
|
/* 0x1AA */ s16 mCurrentEvId;
|
|
/* 0x1AC */ u8 unk_0x1ac[4];
|
|
/* 0x1B0 */ int mRoomNo;
|
|
/* 0x1B4 */ int mCurrentEvType;
|
|
/* 0x1B8 */ s32 unk_0x1b8;
|
|
/* 0x1BC */ dEvDtFlag_c mFlags;
|
|
/* 0x6BC */ bool mDataLoaded;
|
|
};
|
|
|
|
#endif /* D_EVENT_D_EVENT_MANAGER_H */
|