Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1692,7 +1692,7 @@ def MatchingFor(*versions) -> bool:
ActorRel(NonMatching, "d_a_e_s1"),
ActorRel(NonMatching, "d_a_e_sb"),
ActorRel(NonMatching, "d_a_e_sf"),
ActorRel(NonMatching, "d_a_e_sg"),
ActorRel(MatchingFor("GZ2E01"), "d_a_e_sg"),
ActorRel(NonMatching, "d_a_e_sh"),
ActorRel(NonMatching, "d_a_e_sm"),
ActorRel(NonMatching, "d_a_e_sm2"),
Expand Down
80 changes: 72 additions & 8 deletions include/d/actor/d_a_e_sg.h
Original file line number Diff line number Diff line change
@@ -1,26 +1,90 @@
#ifndef D_A_E_SG_H
#define D_A_E_SG_H
#include "f_op/f_op_actor_mng.h"

#include "f_op/f_op_actor.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#include "d/d_jnt_col.h"

/**
* @ingroup actors-enemies
* @class e_sg_class
* @brief Skullfish
*
*
* @details
*
*/
* Skullfish are found in the Lakebed Temple and some caves. They attack by
* chasing and biting Link, often appearing in groups.
* Skullfish can also be caught with the Fishing Rod, leaving behind a Heart
* when released. It will then flop on land.
* */
class e_sg_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0xab0 - 0x5ac];
public:
/* 0x5AC */ request_of_phase_process_class mPhaseReq;
/* 0x5B4 */ u8 mArg0;
/* 0x5B8 */ J3DModel* mpModel;
/* 0x5BC */ Z2CreatureEnemy mSound;
/* 0x660 */ s16 mTimers[3];
/* 0x666 */ s16 mInvincibilityTimer;
/* 0x668 */ u8 mInitTimer;
/* 0x66A */ s16 mRandomSeed;
/* 0x66C */ s16 mAction;
/* 0x66E */ s16 mMode;
/* 0x670 */ f32 mIdleMoveBound;
/* 0x674 */ f32 mSearchBound;
/* 0x678 */ cXyz mTargetPos;
/* 0x684 */ u8 field_0x684[4];
/* 0x688 */ s16 mPlayerAngle;
/* 0x68C */ f32 mPlayerDist;
/* 0x690 */ f32 mTargetDist;
/* 0x694 */ f32 mTargetSpeed;
/* 0x698 */ f32 mStepSpeed;
/* 0x69C */ s16 mSwimAngle;
/* 0x69E */ s16 mSwimAngleSpeed;
/* 0x6A0 */ s16 mJoints[4];
/* 0x6A8 */ f32 mJointYRot;
/* 0x6AC */ f32 mJointSpeed;
/* 0x6B0 */ s16 mJointAngle;
/* 0x6B4 */ f32 field_0x6b4;
/* 0x6B8 */ f32 mGroundY;
/* 0x6BC */ f32 mKamuSpeed;
/* 0x6C0 */ s16 mRotation;
/* 0x6C2 */ s16 mRotationTarget;
/* 0x6C4 */ s8 mStickIdx;
/* 0x6C5 */ u8 mKamuTimer;
/* 0x6C6 */ s16 field_0x6C6;
/* 0x6C8 */ int mShadowKey;
/* 0x6CC */ fpc_ProcID mTargetActorID;
/* 0x6D0 */ dJntCol_c mJoint;
/* 0x6E0 */ dBgS_AcchCir mAcchCir;
/* 0x720 */ dBgS_ObjAcch mAcch;
/* 0x8F8 */ dCcD_Stts mStts;
/* 0x934 */ dCcD_Sph mSph;
/* 0xA6C */ dCcU_AtInfo mAtInfo;
/* 0xA90 */ s8 mAttackCollistion;
/* 0xA91 */ s8 mCollisionResponse;
/* 0xA92 */ u8 mInactive;
/* 0xA93 */ s8 mWaterSplash;
/* 0xA94 */ int mParticleKey[4];
/* 0xAA4 */ u32 mHamon;
/* 0xAA8 */ u8 field_0xaa8[4];
/* 0xAAC */ bool mHioInit;
};

STATIC_ASSERT(sizeof(e_sg_class) == 0xab0);
STATIC_ASSERT(sizeof(e_sg_class) == 0xAB0);

class daE_SG_HIO_c {
public:
/* 8078A22C */ daE_SG_HIO_c();
/* 8078DC84 */ ~daE_SG_HIO_c();
/* 8078DC84 */ virtual ~daE_SG_HIO_c() {};

s8 mUnk0;
f32 mScaleFactor;
f32 mMovementSpeed;
f32 mSearchSpeed;
f32 mPlayerHeightThreshold;
};

STATIC_ASSERT(sizeof(daE_SG_HIO_c) == 0x18);

#endif /* D_A_E_SG_H */
12 changes: 8 additions & 4 deletions include/d/actor/d_a_mg_rod.h
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
#ifndef D_A_MG_ROD_H
#define D_A_MG_ROD_H

#include "f_op/f_op_actor_mng.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/actor/d_a_mg_fish.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_msg_flow.h"
#include "d/actor/d_a_mg_fish.h"
#include "f_op/f_op_actor_mng.h"

struct mg_rod_s {
/* 0x0 */ cXyz field_0x0[16];
Expand Down Expand Up @@ -43,7 +43,9 @@ class dmg_rod_class : public fopAc_ac_c {
bool checkRodEquipPermission() { return field_0x1514 == 0; }
bool checkReelSpin() { return field_0x14f0 != 0; }

/* 0x0568 */ u8 field_0x568[0x5A4 - 0x568];
/* 0x0568 */ u8 field_0x568[0x590 - 0x568];
/* 0x0590 */ f32 field_0x590;
/* 0x0594 */ u8 field_0x594[0x5A4 - 0x594];
/* 0x05A4 */ mg_rod_s field_0x5a4;
/* 0x0664 */ u8 field_0x664[0x6AC - 0x664];
/* 0x06AC */ cXyz field_0x6ac;
Expand All @@ -66,7 +68,9 @@ class dmg_rod_class : public fopAc_ac_c {
/* 0x0F7E */ s16 field_0xf7e;
/* 0x0F80 */ u8 field_0xf80[0xFAC - 0xF80];
/* 0x0FAC */ mg_hook_s field_0xfac[2];
/* 0x0FEC */ u8 field_0xfec[0x1060 - 0xFEC];
/* 0x0FEC */ u8 field_0xfec[0x100D - 0xFEC];
/* 0x100D */ s8 field_0x100d;
/* 0x100E */ u8 field_0x100e[0x1060 - 0x100E];
/* 0x1060 */ cXyz mHookPosition;
/* 0x106C */ cXyz field_0x106c;
/* 0x1078 */ cXyz field_0x1078;
Expand Down
9 changes: 7 additions & 2 deletions include/d/actor/d_a_obj_kbox.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,13 @@
*
*/
class obj_kbox_class : public fopAc_ac_c {
private:
/* 0x568 */ u8 field_0x568[0x9f0 - 0x568];
public:
/* 0x568 */ u8 field_0x568[0x598 - 0x568];
/* 0x598 */ f32 field_0x598;
/* 0x59C */ u8 field_0x59c[0x5a8 - 0x59c];
/* 0x5A8 */ cXyz field_0x5a8;
/* 0x5B4 */ cXyz field_0x5b4;
/* 0x5C0 */ u8 field_0x5c0[0x9f0 - 0x5c0];
};

STATIC_ASSERT(sizeof(obj_kbox_class) == 0x9f0);
Expand Down
Loading