diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2025-10-14 06:11:30 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-13 20:11:30 -0700 |
| commit | d3c3fd09de1da021efff5f668ad0fc934565f6b2 (patch) | |
| tree | cc25b022ffaefa5f099d3775a0c0a4e969b22dbd /include | |
| parent | 678fd4d8f58cb989d24573717d2b4f6eb52c7e78 (diff) | |
d_a_obj_gadget OK (#2735)
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/actor/d_a_obj_gadget.h | 94 |
1 files changed, 72 insertions, 22 deletions
diff --git a/include/d/actor/d_a_obj_gadget.h b/include/d/actor/d_a_obj_gadget.h index 63c6688c66..a9c64ae298 100644 --- a/include/d/actor/d_a_obj_gadget.h +++ b/include/d/actor/d_a_obj_gadget.h @@ -2,8 +2,12 @@ #define D_A_OBJ_GADGET_H #include "SSystem/SComponent/c_math.h" +#include "d/d_bg_s_acch.h" +#include "d/d_cc_d.h" #include "f_op/f_op_actor_mng.h" +class daObj_Gadget_HIO_c; + /** * @ingroup actors-objects * @class daObj_Gadget_c @@ -13,25 +17,67 @@ * */ class daObj_Gadget_c : public fopAc_ac_c { +private: + /* 0x568 */ daObj_Gadget_HIO_c* field_0x568; + /* 0x56C */ request_of_phase_process_class mPhase; + /* 0x574 */ J3DModel* mModel; + /* 0x578 */ dBgS_ObjAcch mAcch; + /* 0x750 */ dCcD_Stts mStts; + /* 0x78C */ dBgS_AcchCir mAcchCir; + /* 0x7CC */ cBgS_GndChk mGndChk; + /* 0x808 */ dCcD_Cyl mCyl; + /* 0x944 */ cM3dGLin mLine; + /* 0x960 */ dBgS_LinChk mLinChk; + /* 0x9D0 */ u8 field_0x9d0; + /* 0x9D4 */ cXyz field_0x9d4; + /* 0x9E0 */ cXyz field_0x9e0; + /* 0x9EC */ csXyz field_0x9ec; + /* 0x9F4 */ int field_0x9f4; + /* 0x9F8 */ int field_0x9f8; + /* 0x9FC */ f32 field_0x9fc; + /* 0xA00 */ f32 field_0xa00; + /* 0xA04 */ f32 field_0xa04; + /* 0xA08 */ f32 field_0xa08; + /* 0xA0C */ f32 field_0xa0c; + /* 0xA10 */ s16 field_0xa10; + /* 0xA12 */ s16 field_0xa12; + /* 0xA14 */ s16 field_0xa14; + /* 0xA16 */ s16 field_0xa16; + /* 0xA18 */ s16 field_0xa18; + /* 0xA1A */ u8 field_0xa1a[0xa20 - 0xa1a]; + /* 0xA20 */ u32 field_0xa20[4]; + /* 0xA30 */ u32 field_0xa30; + /* 0xA34 */ u32 field_0xa34; + /* 0xA38 */ u32 field_0xa38; + /* 0xA3C */ u32 field_0xa3c; + /* 0xA40 */ u8 field_0xa40; + /* 0xA41 */ u8 field_0xa41; + /* 0xA42 */ u8 field_0xa42; + /* 0xA43 */ u8 field_0xa43; + /* 0xA44 */ u8 mHide; + /* 0xA45 */ u8 field_0xa45; + /* 0xA46 */ u8 field_0xa46; + /* 0xA47 */ u8 field_0xa47; + 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*); + /* 80BF2D2C */ virtual ~daObj_Gadget_c(); + /* 80BF2F28 */ int create(); + /* 80BF3478 */ int CreateHeap(); + /* 80BF3504 */ int Delete(); + /* 80BF3538 */ int Execute(); + /* 80BF3FAC */ int Draw(); + /* 80BF4130 */ static int 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*); + /* 80BF4354 */ s16 calcRollAngle(s16, int); + /* 80BF43F4 */ BOOL getWallAngle(s16, s16*); /* 80BF4584 */ void setSmokePrtcl(); /* 80BF4600 */ void setWaterPrtcl(); /* 80BF4728 */ void setHamonPrtcl(); - u32 getType() { return fopAcM_GetParam(this) & 0xFF; } + u8 getType() { return fopAcM_GetParam(this); } void setCoNone() { field_0xa40 = 1; } void offHide() { mHide = 0; } void onHide() { mHide = 1; } @@ -49,25 +95,29 @@ public: 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); +struct daObj_Gadget_HIOParam { + /* 0x00 */ f32 focus_offset; + /* 0x04 */ f32 gravity; + /* 0x08 */ f32 scale; + /* 0x0C */ f32 real_shadow_size; + /* 0x10 */ f32 weight; + /* 0x14 */ f32 height; + /* 0x18 */ f32 knee_length; + /* 0x1C */ f32 width; + /* 0x20 */ f32 fire_rate; + /* 0x24 */ f32 launch_angle; + /* 0x28 */ f32 floating_offset; +}; + class daObj_Gadget_Param_c { public: - /* 80BF48D8 */ ~daObj_Gadget_Param_c(); + /* 80BF48D8 */ virtual ~daObj_Gadget_Param_c() {} - static u8 const m[44]; + static daObj_Gadget_HIOParam const m; }; |
