Files
dusklight/include/d/actor/d_a_obj_lv4chandelier.h
T
2025-08-24 09:52:08 +03:00

89 lines
2.8 KiB
C++

#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 */