|
1 | 1 | #ifndef D_A_OBJ_KBACKET_H |
2 | 2 | #define D_A_OBJ_KBACKET_H |
3 | 3 |
|
| 4 | +#include "SSystem/SComponent/c_math.h" |
| 5 | +#include "d/d_bg_s_acch.h" |
| 6 | +#include "d/d_cc_d.h" |
4 | 7 | #include "f_op/f_op_actor_mng.h" |
5 | 8 |
|
| 9 | +struct daObj_KBacket_HIOParam |
| 10 | +{ |
| 11 | + f32 field_0x0; |
| 12 | + f32 field_0x4; |
| 13 | + f32 field_0x8; |
| 14 | + f32 field_0xc; |
| 15 | + f32 field_0x10; |
| 16 | + f32 field_0x14; |
| 17 | + f32 field_0x18; |
| 18 | + f32 field_0x1c; |
| 19 | + f32 field_0x20; |
| 20 | + f32 field_0x24; |
| 21 | + f32 field_0x28; |
| 22 | +}; |
| 23 | + |
| 24 | +class daObj_KBacket_HIO_c |
| 25 | +#ifdef DEBUG |
| 26 | + : public mDoHIO_entry_c |
| 27 | +#endif |
| 28 | +{ |
| 29 | +public: |
| 30 | +#ifdef DEBUG |
| 31 | + void genMessage(JORMContext*); |
| 32 | + |
| 33 | + daObj_KBacket_HIOParam param; |
| 34 | +#endif |
| 35 | +}; |
| 36 | + |
| 37 | +class daObj_KBacket_Param_c { |
| 38 | +public: |
| 39 | + /* 80587D18 */ virtual ~daObj_KBacket_Param_c() {} |
| 40 | + |
| 41 | + static const daObj_KBacket_HIOParam m; |
| 42 | +}; |
| 43 | + |
6 | 44 | /** |
7 | 45 | * @ingroup actors-objects |
8 | 46 | * @class daObj_KBacket_c |
|
13 | 51 | */ |
14 | 52 | class daObj_KBacket_c : public fopAc_ac_c { |
15 | 53 | public: |
16 | | - /* 80585E4C */ ~daObj_KBacket_c(); |
17 | | - /* 80586048 */ void create(); |
18 | | - /* 80586604 */ void CreateHeap(); |
19 | | - /* 80586704 */ void Delete(); |
20 | | - /* 80586738 */ void Execute(); |
21 | | - /* 8058742C */ void Draw(); |
22 | | - /* 805875A0 */ void createHeapCallBack(fopAc_ac_c*); |
| 54 | + /* 0x568 */ daObj_KBacket_HIO_c* mHIO; |
| 55 | + /* 0x56C */ request_of_phase_process_class field_0x56c; |
| 56 | + /* 0x574 */ J3DModel* mpModel; |
| 57 | + /* 0x578 */ dBgS_ObjAcch mObjAcch; |
| 58 | + /* 0x750 */ dCcD_Stts mStts; |
| 59 | + /* 0x78C */ dBgS_AcchCir mAcchCir; |
| 60 | + /* 0x7CC */ cBgS_GndChk mGndChk; |
| 61 | + /* 0x808 */ dCcD_Cyl mCyl; |
| 62 | + /* 0x90C */ cM3dGLin mLine; |
| 63 | + /* 0x960 */ dBgS_LinChk mLinChk; |
| 64 | + /* 0x9D0 */ u8 field_0x9d0; |
| 65 | + /* 0x9D4 */ cXyz field_0x9d4; |
| 66 | + /* 0x9E0 */ cXyz field_0x9e0; |
| 67 | + /* 0x9EC */ csXyz field_0x9ec; |
| 68 | + /* 0x9F4 */ int field_0x9f4; |
| 69 | + /* 0x9F8 */ int field_0x9f8; |
| 70 | + /* 0x9FC */ f32 field_0x9fc; |
| 71 | + /* 0xA00 */ f32 field_0xa00; |
| 72 | + /* 0xA04 */ f32 field_0xa04; |
| 73 | + /* 0xA08 */ u8 field_0xa08[0xa0c - 0xa08]; |
| 74 | + /* 0xA0C */ f32 field_0xa0c; |
| 75 | + /* 0xA10 */ f32 field_0xa10; |
| 76 | + /* 0xA14 */ s16 field_0xa14; |
| 77 | + /* 0xA18 */ s16 field_0xa16; |
| 78 | + /* 0xA18 */ s16 field_0xa18; |
| 79 | + /* 0xA1A */ s16 field_0xa1a; |
| 80 | + /* 0xA1A */ s16 field_0xa1c; |
| 81 | + /* 0xA1A */ u8 field_0xa1e[0xa24 - 0xa1e]; |
| 82 | + /* 0xA24 */ u32 field_0xa24[4]; |
| 83 | + /* 0xA34 */ u32 field_0xa34; |
| 84 | + /* 0xA38 */ u8 field_0xa38[0xa3c - 0xa38]; |
| 85 | + /* 0xA3C */ u32 field_0xa3c; |
| 86 | + /* 0xA40 */ u32 field_0xa40; |
| 87 | + /* 0xA44 */ u8 field_0xa44; |
| 88 | + /* 0xA45 */ u8 field_0xa45; |
| 89 | + /* 0xA46 */ u8 field_0xa46; |
| 90 | + /* 0xA47 */ u8 field_0xa47; |
| 91 | + /* 0xA48 */ u8 field_0xa48; |
| 92 | + /* 0xA49 */ u8 field_0xa49; |
| 93 | + /* 0xA49 */ u8 field_0xa4a; |
| 94 | + /* 0xA4B */ u8 field_0xa4b; |
| 95 | + /* 0xA4C */ u8 field_0xa4c[0xa50 - 0xa4c]; |
| 96 | + |
| 97 | + /* 80585E4C */ virtual ~daObj_KBacket_c(); |
| 98 | + /* 80586048 */ int create(); |
| 99 | + int setLaunchParam(float param_0, float param_1, short param_2) { |
| 100 | + float fVar2; |
| 101 | + |
| 102 | + s16 iVar1 = cM_deg2s(param_1); |
| 103 | + speed.setall(0.0f); |
| 104 | + speed.y = param_0 * cM_ssin(iVar1); |
| 105 | + speedF = param_0 * cM_scos(iVar1); |
| 106 | + if (field_0x9d0 == 0x0) { |
| 107 | + current.angle.y = param_2 + 0x4000; |
| 108 | + } |
| 109 | + if (field_0x9d0 == 0x1) { |
| 110 | + current.angle.y = param_2 + -0x4000; |
| 111 | + } |
| 112 | + shape_angle.y = param_2; |
| 113 | + field_0xa18 = 0x800; |
| 114 | + field_0xa44 = 1; |
| 115 | + field_0xa47 = 1; |
| 116 | + } |
| 117 | + u8 getType() { |
| 118 | + u8 param = fopAcM_GetParam(this); |
| 119 | + switch (param & 0xff) { |
| 120 | + case 0: |
| 121 | + return 0; |
| 122 | + case 1: |
| 123 | + return 1; |
| 124 | + default: |
| 125 | + return 0; |
| 126 | + } |
| 127 | + } |
| 128 | + /* 80586604 */ int CreateHeap(); |
| 129 | + /* 80586704 */ int Delete(); |
| 130 | + /* 80586738 */ int Execute(); |
| 131 | + /* 8058742C */ int Draw(); |
| 132 | + /* 805875A0 */ static void createHeapCallBack(fopAc_ac_c*); |
23 | 133 | /* 805875C0 */ void setEnvTevColor(); |
24 | 134 | /* 8058761C */ void setRoomNo(); |
25 | 135 | /* 80587660 */ void reset(); |
26 | 136 | /* 80587694 */ void setMtx(); |
27 | | - /* 805877C4 */ void calcRollAngle(s16, int); |
28 | | - /* 80587864 */ void getWallAngle(s16, s16*); |
| 137 | + /* 805877C4 */ s16 calcRollAngle(s16, int); |
| 138 | + /* 80587864 */ int getWallAngle(s16, s16*); |
29 | 139 | /* 805879F4 */ void setSmokePrtcl(); |
30 | 140 | /* 80587A70 */ void setWaterPrtcl(); |
31 | 141 | /* 80587B68 */ void setHamonPrtcl(); |
32 | | - |
33 | | -private: |
34 | | - /* 0x568 */ u8 field_0x568[0xa54 - 0x568]; |
35 | 142 | }; |
36 | 143 |
|
37 | 144 | STATIC_ASSERT(sizeof(daObj_KBacket_c) == 0xa54); |
38 | 145 |
|
39 | | -class daObj_KBacket_Param_c { |
40 | | -public: |
41 | | - /* 80587D18 */ ~daObj_KBacket_Param_c(); |
42 | | - |
43 | | - static u8 const m[44]; |
44 | | -}; |
45 | | - |
46 | | - |
47 | 146 | #endif /* D_A_OBJ_KBACKET_H */ |
0 commit comments