#ifndef D_A_OBJ_GADGET_H #define D_A_OBJ_GADGET_H #include "SSystem/SComponent/c_math.h" #include "f_op/f_op_actor_mng.h" /** * @ingroup actors-objects * @class daObj_Gadget_c * @brief Gadget * * @details * */ class daObj_Gadget_c : public fopAc_ac_c { public: /* 80BF2D2C */ ~daObj_Gadget_c(); /* 80BF2F28 */ void create(); /* 80BF3478 */ void CreateHeap(); /* 80BF3504 */ void Delete(); /* 80BF3538 */ void Execute(); /* 80BF3FAC */ void Draw(); /* 80BF4130 */ void createHeapCallBack(fopAc_ac_c*); /* 80BF4150 */ void setEnvTevColor(); /* 80BF41AC */ void setRoomNo(); /* 80BF41F0 */ void reset(); /* 80BF424C */ void setMtx(); /* 80BF4354 */ void calcRollAngle(s16, int); /* 80BF43F4 */ void getWallAngle(s16, s16*); /* 80BF4584 */ void setSmokePrtcl(); /* 80BF4600 */ void setWaterPrtcl(); /* 80BF4728 */ void setHamonPrtcl(); u32 getType() { return fopAcM_GetParam(this) & 0xFF; } void setCoNone() { field_0xa40 = 1; } void offHide() { mHide = 0; } void onHide() { mHide = 1; } void popup(f32 param_1, f32 param_2, cXyz* param_3) { if (param_3 != NULL) { current.pos = *param_3; old.pos = current.pos; } int iVar1 = cM_deg2s(param_2); speed.setall(0.0f); speed.y = param_1 * cM_ssin(iVar1); speedF = param_1 * cM_scos(iVar1); field_0xa14 = 0x4000; field_0xa43 = 1; } private: /* 0x568 */ u8 field_0x568[0xa14 - 0x568]; /* 0xA14 */ s16 field_0xa14; /* 0xA16 */ u8 field_0xa16[0xa40 - 0xa16]; /* 0xA40 */ u8 field_0xa40; /* 0xA41 */ u8 field_0xa41[0xa43 - 0xa41]; /* 0xA43 */ u8 field_0xa43; /* 0xA44 */ u8 mHide; /* 0xA45 */ u8 field_0xa45[0xa4c - 0xa45]; }; STATIC_ASSERT(sizeof(daObj_Gadget_c) == 0xa4c); class daObj_Gadget_Param_c { public: /* 80BF48D8 */ ~daObj_Gadget_Param_c(); static u8 const m[44]; }; #endif /* D_A_OBJ_GADGET_H */