summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2025-10-14 06:11:30 +0300
committerGitHub <noreply@github.com>2025-10-13 20:11:30 -0700
commitd3c3fd09de1da021efff5f668ad0fc934565f6b2 (patch)
treecc25b022ffaefa5f099d3775a0c0a4e969b22dbd /include
parent678fd4d8f58cb989d24573717d2b4f6eb52c7e78 (diff)
d_a_obj_gadget OK (#2735)
Diffstat (limited to 'include')
-rw-r--r--include/d/actor/d_a_obj_gadget.h94
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;
};