summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/d/actor/d_a_obj_kbacket.h139
1 files changed, 119 insertions, 20 deletions
diff --git a/include/d/actor/d_a_obj_kbacket.h b/include/d/actor/d_a_obj_kbacket.h
index bb342f6819..f389534703 100644
--- a/include/d/actor/d_a_obj_kbacket.h
+++ b/include/d/actor/d_a_obj_kbacket.h
@@ -1,8 +1,46 @@
#ifndef D_A_OBJ_KBACKET_H
#define D_A_OBJ_KBACKET_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"
+struct daObj_KBacket_HIOParam
+{
+ f32 field_0x0;
+ f32 field_0x4;
+ f32 field_0x8;
+ f32 field_0xc;
+ f32 field_0x10;
+ f32 field_0x14;
+ f32 field_0x18;
+ f32 field_0x1c;
+ f32 field_0x20;
+ f32 field_0x24;
+ f32 field_0x28;
+};
+
+class daObj_KBacket_HIO_c
+#ifdef DEBUG
+ : public mDoHIO_entry_c
+#endif
+{
+public:
+#ifdef DEBUG
+ void genMessage(JORMContext*);
+
+ daObj_KBacket_HIOParam param;
+#endif
+};
+
+class daObj_KBacket_Param_c {
+public:
+ /* 80587D18 */ virtual ~daObj_KBacket_Param_c() {}
+
+ static const daObj_KBacket_HIOParam m;
+};
+
/**
* @ingroup actors-objects
* @class daObj_KBacket_c
@@ -13,35 +51,96 @@
*/
class daObj_KBacket_c : public fopAc_ac_c {
public:
- /* 80585E4C */ ~daObj_KBacket_c();
- /* 80586048 */ void create();
- /* 80586604 */ void CreateHeap();
- /* 80586704 */ void Delete();
- /* 80586738 */ void Execute();
- /* 8058742C */ void Draw();
- /* 805875A0 */ void createHeapCallBack(fopAc_ac_c*);
+ /* 0x568 */ daObj_KBacket_HIO_c* mHIO;
+ /* 0x56C */ request_of_phase_process_class field_0x56c;
+ /* 0x574 */ J3DModel* mpModel;
+ /* 0x578 */ dBgS_ObjAcch mObjAcch;
+ /* 0x750 */ dCcD_Stts mStts;
+ /* 0x78C */ dBgS_AcchCir mAcchCir;
+ /* 0x7CC */ cBgS_GndChk mGndChk;
+ /* 0x808 */ dCcD_Cyl mCyl;
+ /* 0x90C */ 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 */ u8 field_0xa08[0xa0c - 0xa08];
+ /* 0xA0C */ f32 field_0xa0c;
+ /* 0xA10 */ f32 field_0xa10;
+ /* 0xA14 */ s16 field_0xa14;
+ /* 0xA18 */ s16 field_0xa16;
+ /* 0xA18 */ s16 field_0xa18;
+ /* 0xA1A */ s16 field_0xa1a;
+ /* 0xA1A */ s16 field_0xa1c;
+ /* 0xA1A */ u8 field_0xa1e[0xa24 - 0xa1e];
+ /* 0xA24 */ u32 field_0xa24[4];
+ /* 0xA34 */ u32 field_0xa34;
+ /* 0xA38 */ u8 field_0xa38[0xa3c - 0xa38];
+ /* 0xA3C */ u32 field_0xa3c;
+ /* 0xA40 */ u32 field_0xa40;
+ /* 0xA44 */ u8 field_0xa44;
+ /* 0xA45 */ u8 field_0xa45;
+ /* 0xA46 */ u8 field_0xa46;
+ /* 0xA47 */ u8 field_0xa47;
+ /* 0xA48 */ u8 field_0xa48;
+ /* 0xA49 */ u8 field_0xa49;
+ /* 0xA49 */ u8 field_0xa4a;
+ /* 0xA4B */ u8 field_0xa4b;
+ /* 0xA4C */ u8 field_0xa4c[0xa50 - 0xa4c];
+
+ /* 80585E4C */ virtual ~daObj_KBacket_c();
+ /* 80586048 */ int create();
+ int setLaunchParam(float param_0, float param_1, short param_2) {
+ float fVar2;
+
+ s16 iVar1 = cM_deg2s(param_1);
+ speed.setall(0.0f);
+ speed.y = param_0 * cM_ssin(iVar1);
+ speedF = param_0 * cM_scos(iVar1);
+ if (field_0x9d0 == 0x0) {
+ current.angle.y = param_2 + 0x4000;
+ }
+ if (field_0x9d0 == 0x1) {
+ current.angle.y = param_2 + -0x4000;
+ }
+ shape_angle.y = param_2;
+ field_0xa18 = 0x800;
+ field_0xa44 = 1;
+ field_0xa47 = 1;
+ }
+ u8 getType() {
+ u8 param = fopAcM_GetParam(this);
+ switch (param & 0xff) {
+ case 0:
+ return 0;
+ case 1:
+ return 1;
+ default:
+ return 0;
+ }
+ }
+ /* 80586604 */ int CreateHeap();
+ /* 80586704 */ int Delete();
+ /* 80586738 */ int Execute();
+ /* 8058742C */ int Draw();
+ /* 805875A0 */ static void createHeapCallBack(fopAc_ac_c*);
/* 805875C0 */ void setEnvTevColor();
/* 8058761C */ void setRoomNo();
/* 80587660 */ void reset();
/* 80587694 */ void setMtx();
- /* 805877C4 */ void calcRollAngle(s16, int);
- /* 80587864 */ void getWallAngle(s16, s16*);
+ /* 805877C4 */ s16 calcRollAngle(s16, int);
+ /* 80587864 */ int getWallAngle(s16, s16*);
/* 805879F4 */ void setSmokePrtcl();
/* 80587A70 */ void setWaterPrtcl();
/* 80587B68 */ void setHamonPrtcl();
-
-private:
- /* 0x568 */ u8 field_0x568[0xa54 - 0x568];
};
STATIC_ASSERT(sizeof(daObj_KBacket_c) == 0xa54);
-class daObj_KBacket_Param_c {
-public:
- /* 80587D18 */ ~daObj_KBacket_Param_c();
-
- static u8 const m[44];
-};
-
-
#endif /* D_A_OBJ_KBACKET_H */