#ifndef D_A_OBJ_LV4CHANDELIER_H #define D_A_OBJ_LV4CHANDELIER_H #include "d/d_bg_s_movebg_actor.h" #include "d/d_cc_d.h" #include "f_op/f_op_actor_mng.h" #include "d/d_model.h" /** * @ingroup actors-objects * @class daObjLv4Chan_c * @brief Arbiter's Grounds Chandelier * * @details * */ class daObjLv4Chan_c : public dBgS_MoveBgActor, public request_of_phase_process_class { public: struct ChainPos { /* 0x00 */ cXyz field_0x0; /* 0x0C */ cXyz field_0xc; /* 0x18 */ cXyz field_0x18; /* 0x24 */ f32 field_0x24; }; /* 80C63360 */ int create1st(); /* 80C634CC */ void setMtxChain(daObjLv4Chan_c::ChainPos*, dMdl_obj_c*, int); /* 80C636B4 */ void setMtx(); /* 80C639B4 */ void rideActor(fopAc_ac_c*); /* 80C63CFC */ int CreateHeap(); /* 80C63FA8 */ int Create(); /* 80C6449C */ void constraintChain(daObjLv4Chan_c::ChainPos*, int); /* 80C64668 */ void constraintBase(); /* 80C647FC */ void calcVec(daObjLv4Chan_c::ChainPos*, int); /* 80C64878 */ void chkGnd(); /* 80C648F4 */ int Execute(Mtx**); /* 80C65F04 */ int Draw(); /* 80C66114 */ int Delete(); int getArg0() { return fopAcM_GetParamBit(this, 0, 4); } int getAddChain0() { return fopAcM_GetParamBit(this, 4, 4); } int getAddChain1() { return fopAcM_GetParamBit(this, 8, 4); } int getAddChain2() { return fopAcM_GetParamBit(this, 12, 4); } int getSw() { return fopAcM_GetParamBit(this, 16, 8); } private: /* 0x05A8 */ Mtx field_0x5a8; /* 0x05D8 */ Mtx field_0x5d8; /* 0x0608 */ J3DModel* mModel; /* 0x060C */ J3DModelData* mChainModelData; /* 0x0610 */ int mChainLengths[3]; /* 0x061C */ ChainPos* mChains[3]; /* 0x0628 */ int mMdlLengths[3]; /* 0x0634 */ dMdl_obj_c* mMdls[3]; /* 0x0640 */ dCcD_Stts mStts; /* 0x067C */ dCcD_Sph mSphs1[8]; /* 0x103C */ dCcD_Sph mSphs2[8]; /* 0x19FC */ dCcD_Sph mSphs3[8]; /* 0x23BC */ cXyz field_0x23bc; /* 0x23C8 */ cXyz field_0x23c8; /* 0x23D4 */ int field_0x23d4; /* 0x23D8 */ fopAc_ac_c* field_0x23d8[8]; /* 0x23F8 */ fopAc_ac_c* field_0x23f8[8]; /* 0x2418 */ int field_0x2418; /* 0x241C */ int field_0x241c; /* 0x2420 */ f32 field_0x2420; /* 0x2424 */ int mShadowId; /* 0x2428 */ dBgS_ObjGndChk mGndChk; /* 0x247C */ f32 field_0x247c; /* 0x2480 */ int mAddChain0; /* 0x2484 */ int field_0x2484; /* 0x2488 */ u8 field_0x2488; /* 0x2489 */ u8 field_0x2489; /* 0x248A */ u8 field_0x248a; /* 0x248B */ u8 field_0x248b; /* 0x248C */ u8 field_0x248c; /* 0x248D */ u8 field_0x248d; /* 0x2490 */ f32 field_0x2490; /* 0x2494 */ f32 field_0x2494; /* 0x2498 */ u8 field_0x2498; /* 0x2499 */ u8 field_0x2499; /* 0x249C */ f32 field_0x249c; /* 0x24A0 */ f32 field_0x24a0; }; STATIC_ASSERT(sizeof(daObjLv4Chan_c) == 0x24a4); #endif /* D_A_OBJ_LV4CHANDELIER_H */