#ifndef D_A_OBJ_YEL_BAG_H #define D_A_OBJ_YEL_BAG_H #include "SSystem/SComponent/c_cc_d.h" #include "d/d_bg_s_acch.h" #include "d/d_cc_d.h" #include "f_op/f_op_actor_mng.h" struct daObj_YBag_HIOParam { /* 0x00 */ f32 field_0x00; /* 0x04 */ f32 field_0x04; /* 0x08 */ f32 field_0x08; /* 0x0C */ f32 field_0x0c; /* 0x10 */ f32 field_0x10; /* 0x14 */ f32 field_0x14; /* 0x18 */ f32 field_0x18; /* 0x1C */ f32 field_0x1c; /* 0x20 */ f32 field_0x20; /* 0x24 */ f32 field_0x24; /* 0x28 */ f32 field_0x28; }; class daObj_YBag_Param_c { public: virtual ~daObj_YBag_Param_c() {} static daObj_YBag_HIOParam const m; }; #if DEBUG class daObj_YBag_HIO_c : public mDoHIO_entry_c { public: daObj_YBag_HIO_c(); void listenPropertyEvent(const JORPropertyEvent*); void genMessage(JORMContext*); daObj_YBag_HIOParam m; }; #define OBJ_YBAG_HIO_CLASS daObj_YBag_HIO_c #else #define OBJ_YBAG_HIO_CLASS daObj_YBag_Param_c #endif /** * @ingroup actors-objects * @class daObj_YBag_c * @brief Ilia's Bag * * @details * */ class daObj_YBag_c : public fopAc_ac_c { private: /* 0x568 */ request_of_phase_process_class mPhases[3]; /* 0x580 */ J3DModel* mModel; /* 0x584 */ OBJ_YBAG_HIO_CLASS* mpHIO; /* 0x588 */ dBgS_ObjAcch mAcch; /* 0x760 */ dCcD_Stts mStts; /* 0x79C */ dBgS_AcchCir mAcchCir; /* 0x7DC */ dCcD_Cyl mCyl; /* 0x918 */ cBgS_GndChk mGndChk; /* 0x954 */ dBgS_LinChk mLinChk; /* 0x9C4 */ cXyz field_0x9c4; /* 0x9C4 */ cXyz field_0x9d0; /* 0x9DC */ csXyz field_0x9dc; /* 0x9E4 */ int field_0x9e4; /* 0x9E8 */ int field_0x9e8; /* 0x9EC */ f32 field_0x9ec; /* 0x9F0 */ f32 field_0x9f0; /* 0x9F4 */ f32 field_0x9f4; /* 0x9F8 */ f32 field_0x9f8; /* 0x9FC */ f32 field_0x9fc; /* 0xA00 */ s16 field_0xa00; /* 0xA02 */ s16 field_0xa02; /* 0xA04 */ s16 field_0xa04; /* 0xA06 */ s16 field_0xa06; /* 0xA08 */ s16 field_0xa08; /* 0xA0C */ int mShadowId; /* 0xA10 */ u32 field_0xa10; /* 0xA14 */ u32 field_0xa14; /* 0xA14 */ int mWaterParticles[4]; /* 0xA14 */ u32 field_0xa28[2]; /* 0xA30 */ u8 mType; /* 0xA31 */ u8 field_0xa31; /* 0xA32 */ u8 field_0xa32; /* 0xA33 */ u8 field_0xa33; /* 0xA34 */ u8 field_0xa34; public: daObj_YBag_c(); virtual ~daObj_YBag_c(); int create(); int CreateHeap(); int Delete(); int Execute(); int Draw(); static int createHeapCallBack(fopAc_ac_c*); int getTypeFromParam(); int isDelete(); void setEnvTevColor(); void setRoomNo(); void reset(); void setMtx(); s16 calcRollAngle(s16, int); int getWallAngle(s16, s16*); void setSmokePrtcl(); void setWaterPrtcl(); void setHamonPrtcl(); static dCcD_SrcGObjInf const mCcDObjInfo; static dCcD_SrcCyl mCcDCyl; }; STATIC_ASSERT(sizeof(daObj_YBag_c) == 0xa3c); #endif /* D_A_OBJ_YEL_BAG_H */