Files
tww/include/d/actor/d_a_tbox.h
T
LagoLunatic fda4313e25 misc cleanup
2024-02-26 15:13:17 -05:00

135 lines
3.8 KiB
C++

#ifndef D_A_TBOX_H
#define D_A_TBOX_H
#include "f_op/f_op_actor.h"
#include "d/d_cc_d.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_bg_w.h"
#include "d/d_particle.h"
#include "d/d_bg_s_acch.h"
#include "f_op/f_op_actor_mng.h"
#include "m_Do/m_Do_hostIO.h"
class daTbox_c : public fopAc_ac_c {
public:
struct modelInfo {
s16 modelId;
s16 openBckId;
s16 btkId;
s16 brkId;
s16 closedColId;
s16 openColId;
};
typedef BOOL (daTbox_c::*ActionFunc)();
u8 getTboxNo() { return fopAcM_GetParam(this) >> 0x07 & 0x1F; }
int getSwNo() { return fopAcM_GetParam(this) >> 0x0C & 0xFF; }
u8 getItemNo() { return home.angle.z >> 8 & 0xFF; }
void flagOn(u16 flag) { mFlags |= flag; }
void flagOff(u16 flag) { mFlags &= ~flag; }
void flagClr() { mFlags = 0; }
BOOL flagCheck(u16 flag) { return mFlags & flag; }
request_of_phase_process_class* getPhase() { return &mPhase; }
bool action() { return (this->*mActionFunc)(); }
void setAction(ActionFunc func) { mActionFunc = func; }
void deleteProc() {} // Maybe only used in the demo
inline BOOL draw();
BOOL execute();
s32 commonShapeSet();
s32 effectShapeSet();
s32 envShapeSet();
s32 bgCheckSet();
void searchRoomNo();
void lightReady();
BOOL checkEnv();
BOOL checkOpen();
modelInfo& getModelInfo();
void clrDzb();
void setDzb();
void surfaceProc();
BOOL checkRoomDisp(int);
s32 getShapeType();
s32 getFuncType();
BOOL checkNormal();
BOOL CreateHeap();
void CreateInit();
s32 boxCheck();
void lightUpProc();
void lightDownProc();
void darkProc();
void volmProc();
void demoProcOpen();
void demoInitAppear_Tact();
void demoInitAppear();
void demoProcAppear_Tact();
void demoProcAppear();
s32 demoProc();
void OpenInit_com();
void OpenInit();
void setCollision();
BOOL actionWait();
BOOL actionDemo();
BOOL actionDemo2();
BOOL actionOpenWait();
BOOL actionSwOnWait();
BOOL actionSwOnWait2();
BOOL actionGenocide();
public:
/* 0x290 */ s32 mRoomNo;
/* 0x294 */ request_of_phase_process_class mPhase;
/* 0x29C */ J3DModel* mpChestMdl;
/* 0x2A0 */ mDoExt_bckAnm mOpenAnm;
/* 0x2B0 */ mDoExt_btkAnm* mpAppearTexAnm;
/* 0x2B4 */ mDoExt_brkAnm* mpAppearRegAnm;
/* 0x2B8 */ dBgW* mpBgWClosed;
/* 0x2BC */ dBgW* mpBgWOpen;
/* 0x2C0 */ dBgW* mpBgWVines;
/* 0x2C4 */ dBgW* mpBgWCurrent;
/* 0x2C8 */ J3DModel* mpFlashMdl;
/* 0x2CC */ mDoExt_bckAnm mFlashAnm;
/* 0x2DC */ mDoExt_btkAnm mFlashTexAnm;
/* 0x2F0 */ mDoExt_brkAnm mFlashRegAnm;
/* 0x308 */ u32 m0308;
/* 0x30C */ mDoExt_brkAnm mBrkAnm3;
/* 0x324 */ J3DModel* mpTactPlatformMdl;
/* 0x328 */ mDoExt_brkAnm mTactPlatformBrk;
/* 0x340 */ ActionFunc mActionFunc;
/* 0x34C */ f32 mInvisibleScrollVal;
/* 0x350 */ u32 mStaffId;
/* 0x354 */ Mtx mMtx;
/* 0x384 */ LIGHT_INFLUENCE mPLight;
/* 0x3A4 */ LIGHT_INFLUENCE mEfLight;
/* 0x3C4 */ dPa_smokeEcallBack mSmokeCB;
/* 0x3E4 */ JPABaseEmitter* mSmokeEmitter;
/* 0x3E8 */ f32 mAllColRatio;
/* 0x3EC */ f32 m03EC;
/* 0x3F0 */ u16 mFlags;
/* 0x3F2 */ u16 mOpenTimer;
/* 0x3F4 */ bool mHasOpenAnmFinished;
/* 0x3F5 */ bool mIsFlashPlaying;
/* 0x3F6 */ u16 mAppearTimer;
/* 0x3F8 */ u8 mGenocideDelayTimer;
/* 0x3FC */ dBgS_ObjAcch mObjAcch;
/* 0x5C0 */ dBgS_AcchCir mAcchCir;
/* 0x600 */ dCcD_Stts mColStatus;
/* 0x63C */ dCcD_Cyl mColCyl;
/* 0x76C */ u8 mOpenedSwitch;
};
class daTbox_HIO_c : public JORReflexible {
public:
daTbox_HIO_c();
virtual ~daTbox_HIO_c() { }
/* 0x04 */ s8 mHioId;
/* 0x06 */ s16 m06;
/* 0x08 */ s16 m08;
/* 0x0A */ s16 m0A;
/* 0x0C */ s16 m0C;
};
#endif /* D_A_TBOX_H */