#ifndef D_A_E_RDY_H
#define D_A_E_RDY_H

#include "JSystem/JHostIO/JORReflexible.h"
#include "SSystem/SComponent/c_phase.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"
#include "d/d_msg_flow.h"
#include "d/d_path.h"
#include "f_op/f_op_actor.h"

/**
 * @ingroup actors-enemies
 * @class e_rdy_class
 * @brief Shadow Bulblin
 * 
 * @details 
 * 
 */
class e_rdy_class {
public:
    e_rdy_class();

    /* 0x0000 */ fopEn_enemy_c actor;
    /* 0x05AC */ request_of_phase_process_class mPhase;
    /* 0x05B4 */ s16 mMode;
    /* 0x05B6 */ u8 field_0x5b6;
    /* 0x05B7 */ u8 field_0x5b7;
    /* 0x05B8 */ u8 field_0x5b8;
    /* 0x05B9 */ u8 mSwBit;
    /* 0x05BA */ u8 mWeaponType;
    /* 0x05BB */ s8 field_0x5bb;
    /* 0x05BC */ cXyz field_0x5bc;
    /* 0x05C8 */ s16 mTargetAngleY;
    /* 0x05CC */ mDoExt_McaMorfSO* mpMorf;
    /* 0x05D0 */ Z2CreatureEnemy mSound;
    /* 0x0674 */ char DUSK_CONST* mpArcName;
    /* 0x0678 */ int mAnm;
    /* 0x067C */ u8 field_0x67c[0x680 - 0x67c];
    /* 0x0680 */ dJntCol_c mJntCol;
    /* 0x0690 */ J3DModel* mpWeaponModel;
    /* 0x0694 */ mDoExt_McaMorfSO* mpBowMorf;
    /* 0x0698 */ J3DModel* mpHawkGrassModel;
    /* 0x069C */ s8 mIsHoldingGrass;
    /* 0x06A0 */ dKy_tevstr_c mHawkGrassTevStr;
    /* 0x0A28 */ J3DModel* mpEyeModel[2];
    /* 0x0A30 */ f32 mEyeScale;
    /* 0x0A34 */ f32 mTargetEyeScale;
    /* 0x0A38 */ s8 mIsDying;
    /* 0x0A3C */ f32 mDyingTevColor;
    /* 0x0A40 */ s16 mCounter;
    /* 0x0A42 */ s16 mAction;
    /* 0x0A44 */ s16 mPrevAction;
    /* 0x0A48 */ f32 mPlayerDist;
    /* 0x0A4C */ s16 mPlayerAngle;
    /* 0x0A50 */ f32 mPlayerCheckDist;
    /* 0x0A54 */ f32 mWaterHeight;
    /* 0x0A58 */ u32 mShadowKey;
    /* 0x0A5C */ fpc_ProcID mKargarokID;
    /* 0x0A60 */ s16 mTimer[4];
    /* 0x0A68 */ s16 mIFrameTimer;
    /* 0x0A6A */ u8 field_0xa6a[0xa6c - 0xa6a];
    /* 0x0A6C */ s16 field_0xa6c;
    /* 0x0A6E */ s16 field_0xa6e;
    /* 0x0A70 */ u8 field_0xa70;
    /* 0x0A71 */ s8 field_0xa71;
    /* 0x0A72 */ s8 mHasArrow;
    /* 0x0A73 */ s8 mArrowFired;
    /* 0x0A74 */ s8 field_0xa74;
    /* 0x0A76 */ s16 mBowRotationTimer;
    /* 0x0A78 */ s16 mBowRotation;
    /* 0x0A7A */ u8 field_0xa7a[0xa7b - 0xa7a];
    /* 0x0A7B */ s8 field_0xa7b;
    /* 0x0A7C */ s8 field_0xa7c;
    /* 0x0A7D */ s8 mCollisionEnabled;
    /* 0x0A7E */ u8 mFadeTimer;
    /* 0x0A80 */ cXyz mKargarokPos;
    /* 0x0A8C */ s8 mRideState;
    /* 0x0A8D */ u8 field_0xa8d[0xa8e - 0xa8d];
    /* 0x0A8E */ s8 field_0xa8e;
    /* 0x0A8F */ s8 field_0xa8f;
    /* 0x0A90 */ f32 mJumpHeight;
    /* 0x0A94 */ f32 mJumpSpeed;
    /* 0x0A98 */ s8 field_0xa98;
    /* 0x0A9A */ s16 field_0xa9a;
    /* 0x0A9C */ s16 field_0xa9c;
    /* 0x0A9E */ s16 field_0xa9e;
    /* 0x0AA0 */ s16 field_0xaa0;
    /* 0x0AA4 */ cXyz mArrowTarget;
    /* 0x0AB0 */ cXyz field_0xab0;
    /* 0x0ABC */ f32 field_0xabc;
    /* 0x0AC0 */ f32 mKnockback;
    /* 0x0AC4 */ s16 mHitDirection;
    /* 0x0AC6 */ s16 field_0xac6;
    /* 0x0AC8 */ s8 field_0xac8;
    /* 0x0ACC */ cXyz field_0xacc;
    /* 0x0AD8 */ u8 field_0xad8[0xadc - 0xad8];
    /* 0x0ADC */ csXyz field_0xadc;
    /* 0x0AE2 */ csXyz field_0xae2;
    /* 0x0AE8 */ csXyz field_0xae8;
    /* 0x0AEE */ s8 field_0xaee;
    /* 0x0AEF */ s8 mIsUpsideDown;
    /* 0x0AF0 */ u32 field_0xaf0;
    /* 0x0AF4 */ f32 field_0xaf4;
    /* 0x0AF8 */ s16 field_0xaf8;
    /* 0x0AFC */ f32 field_0xafc;
    /* 0x0B00 */ s16 field_0xb00;
    /* 0x0B02 */ csXyz field_0xb02[11];
    /* 0x0B44 */ csXyz field_0xb44[11];
    /* 0x0B88 */ f32 field_0xb88;
    /* 0x0B8C */ s16 field_0xb8c[11];
    /* 0x0BA2 */ s16 field_0xba2[4];
    /* 0x0BAA */ s16 field_0xbaa;
    /* 0x0BAC */ s16 field_0xbac;
    /* 0x0BAE */ csXyz field_0xbae;
    /* 0x0BB4 */ csXyz field_0xbb4;
    /* 0x0BBC */ f32 field_0xbbc;
    /* 0x0BC0 */ s16 field_0xbc0;
    /* 0x0BC2 */ u8 field_0xbc2[0xbc8 - 0xbc2];
    /* 0x0BC8 */ s16 field_0xbc8;
    /* 0x0BCA */ s8 field_0xbca;
    /* 0x0BCB */ s8 mKargarokDeleteTimer;
    /* 0x0BCC */ dPath* mpPath;
    /* 0x0BD0 */ s8 mPathIndex;
    /* 0x0BD1 */ s8 mPathDirection;
    /* 0x0BD4 */ dBgS_AcchCir mAcchCir;
    /* 0x0C14 */ dBgS_ObjAcch mAcch;
    /* 0x0DEC */ dCcD_Stts mCcStts;
    /* 0x0E28 */ dCcD_Sph mCcSph[3];
    /* 0x11D0 */ dCcD_Sph mAtSph;
    /* 0x1308 */ dCcU_AtInfo mAtInfo;
    /* 0x132C */ bool mHIOInit;
    /* 0x132D */ s8 mGroundHit;
    /* 0x1330 */ u32 mSmokeKey1;
    /* 0x1334 */ u32 mSmokeKey2;
    /* 0x1338 */ u32 mWaterParticleKey[3];
    /* 0x1344 */ u32 mFireParticleKey[2];
    /* 0x134C */ cXyz field_0x134c;
    /* 0x1358 */ cXyz field_0x1358;
    /* 0x1364 */ s8 mInWater;
    /* 0x1365 */ s8 field_0x1365;
    /* 0x1366 */ s8 field_0x1366;
    /* 0x1367 */ s8 mDrawEyeModel;
    /* 0x1368 */ u8 field_0x1368;
    /* 0x1369 */ s8 field_0x1369;
    /* 0x136A */ u8 field_0x136a[0x136b - 0x136a];
    /* 0x136B */ s8 mParticleTimer;
    /* 0x136C */ int mSwBit2;
    /* 0x1370 */ s16 mDemoMode;
    /* 0x1372 */ s16 mDemoTimer;
    /* 0x1374 */ s16 mCamBankPhase;
    /* 0x1378 */ cXyz mCamEye;
    /* 0x1384 */ cXyz mCamCenter;
    /* 0x1390 */ cXyz mCamEyeTarget;
    /* 0x139C */ cXyz mCamCenterTarget;
    /* 0x13A8 */ cXyz mCamEyeSpeed;
    /* 0x13B4 */ cXyz mCamCenterSpeed;
    /* 0x13C0 */ f32 mCamDist;
    /* 0x13C4 */ u8 field_0x13c4[0x13c8 - 0x13c4];
    /* 0x13C8 */ f32 mCamFovy;
    /* 0x13CC */ f32 mCamBank;
    /* 0x13D0 */ f32 mCamSpeed;
    /* 0x13D4 */ s16 field_0x13d4;
    /* 0x13D6 */ u8 field_0x13d6[0x13e0 - 0x13d6];
    /* 0x13E0 */ dMsgFlow_c mMsgFlow;
};

STATIC_ASSERT(sizeof(e_rdy_class) == 0x142C);

#endif /* D_A_E_RDY_H */
