|
1 | 1 | #ifndef D_A_E_SG_H |
2 | 2 | #define D_A_E_SG_H |
3 | | -#include "f_op/f_op_actor_mng.h" |
| 3 | + |
| 4 | +#include "f_op/f_op_actor.h" |
| 5 | +#include "d/d_bg_s_acch.h" |
| 6 | +#include "d/d_cc_d.h" |
| 7 | +#include "d/d_cc_uty.h" |
| 8 | +#include "d/d_jnt_col.h" |
4 | 9 |
|
5 | 10 | /** |
6 | 11 | * @ingroup actors-enemies |
7 | 12 | * @class e_sg_class |
8 | 13 | * @brief Skullfish |
9 | | - * |
| 14 | + * |
10 | 15 | * @details |
11 | | - * |
12 | | - */ |
| 16 | + * Skullfish are found in the Lakebed Temple and some caves. They attack by |
| 17 | + * chasing and biting Link, often appearing in groups. |
| 18 | + * Skullfish can also be caught with the Fishing Rod, leaving behind a Heart |
| 19 | + * when released. It will then flop on land. |
| 20 | + * */ |
13 | 21 | class e_sg_class : public fopEn_enemy_c { |
14 | | -private: |
15 | | - /* 0x5ac */ u8 field_0x5ac[0xab0 - 0x5ac]; |
| 22 | +public: |
| 23 | + /* 0x5AC */ request_of_phase_process_class mPhaseReq; |
| 24 | + /* 0x5B4 */ u8 mArg0; |
| 25 | + /* 0x5B8 */ J3DModel* mpModel; |
| 26 | + /* 0x5BC */ Z2CreatureEnemy mSound; |
| 27 | + /* 0x660 */ s16 mTimers[3]; |
| 28 | + /* 0x666 */ s16 mInvincibilityTimer; |
| 29 | + /* 0x668 */ u8 mInitTimer; |
| 30 | + /* 0x66A */ s16 mRandomSeed; |
| 31 | + /* 0x66C */ s16 mAction; |
| 32 | + /* 0x66E */ s16 mMode; |
| 33 | + /* 0x670 */ f32 mIdleMoveBound; |
| 34 | + /* 0x674 */ f32 mSearchBound; |
| 35 | + /* 0x678 */ cXyz mTargetPos; |
| 36 | + /* 0x684 */ u8 field_0x684[4]; |
| 37 | + /* 0x688 */ s16 mPlayerAngle; |
| 38 | + /* 0x68C */ f32 mPlayerDist; |
| 39 | + /* 0x690 */ f32 mTargetDist; |
| 40 | + /* 0x694 */ f32 mTargetSpeed; |
| 41 | + /* 0x698 */ f32 mStepSpeed; |
| 42 | + /* 0x69C */ s16 mSwimAngle; |
| 43 | + /* 0x69E */ s16 mSwimAngleSpeed; |
| 44 | + /* 0x6A0 */ s16 mJoints[4]; |
| 45 | + /* 0x6A8 */ f32 mJointYRot; |
| 46 | + /* 0x6AC */ f32 mJointSpeed; |
| 47 | + /* 0x6B0 */ s16 mJointAngle; |
| 48 | + /* 0x6B4 */ f32 field_0x6b4; |
| 49 | + /* 0x6B8 */ f32 mGroundY; |
| 50 | + /* 0x6BC */ f32 mKamuSpeed; |
| 51 | + /* 0x6C0 */ s16 mRotation; |
| 52 | + /* 0x6C2 */ s16 mRotationTarget; |
| 53 | + /* 0x6C4 */ s8 mStickIdx; |
| 54 | + /* 0x6C5 */ u8 mKamuTimer; |
| 55 | + /* 0x6C6 */ s16 field_0x6C6; |
| 56 | + /* 0x6C8 */ int mShadowKey; |
| 57 | + /* 0x6CC */ fpc_ProcID mTargetActorID; |
| 58 | + /* 0x6D0 */ dJntCol_c mJoint; |
| 59 | + /* 0x6E0 */ dBgS_AcchCir mAcchCir; |
| 60 | + /* 0x720 */ dBgS_ObjAcch mAcch; |
| 61 | + /* 0x8F8 */ dCcD_Stts mStts; |
| 62 | + /* 0x934 */ dCcD_Sph mSph; |
| 63 | + /* 0xA6C */ dCcU_AtInfo mAtInfo; |
| 64 | + /* 0xA90 */ s8 mAttackCollistion; |
| 65 | + /* 0xA91 */ s8 mCollisionResponse; |
| 66 | + /* 0xA92 */ u8 mInactive; |
| 67 | + /* 0xA93 */ s8 mWaterSplash; |
| 68 | + /* 0xA94 */ int mParticleKey[4]; |
| 69 | + /* 0xAA4 */ u32 mHamon; |
| 70 | + /* 0xAA8 */ u8 field_0xaa8[4]; |
| 71 | + /* 0xAAC */ bool mHioInit; |
16 | 72 | }; |
17 | 73 |
|
18 | | -STATIC_ASSERT(sizeof(e_sg_class) == 0xab0); |
| 74 | +STATIC_ASSERT(sizeof(e_sg_class) == 0xAB0); |
19 | 75 |
|
20 | 76 | class daE_SG_HIO_c { |
| 77 | +public: |
21 | 78 | /* 8078A22C */ daE_SG_HIO_c(); |
22 | | - /* 8078DC84 */ ~daE_SG_HIO_c(); |
| 79 | + /* 8078DC84 */ virtual ~daE_SG_HIO_c() {}; |
| 80 | + |
| 81 | + s8 mUnk0; |
| 82 | + f32 mScaleFactor; |
| 83 | + f32 mMovementSpeed; |
| 84 | + f32 mSearchSpeed; |
| 85 | + f32 mPlayerHeightThreshold; |
23 | 86 | }; |
24 | 87 |
|
| 88 | +STATIC_ASSERT(sizeof(daE_SG_HIO_c) == 0x18); |
25 | 89 |
|
26 | 90 | #endif /* D_A_E_SG_H */ |
0 commit comments