mirror of https://github.com/zeldaret/tp.git
93 lines
2.2 KiB
C++
93 lines
2.2 KiB
C++
#ifndef D_A_E_BEE_H
|
|
#define D_A_E_BEE_H
|
|
|
|
#include "f_op/f_op_actor.h"
|
|
#include "SSystem/SComponent/c_phase.h"
|
|
#include "Z2AudioLib/Z2Creature.h"
|
|
#include "d/d_cc_d.h"
|
|
|
|
struct bee_s {
|
|
enum Action {
|
|
/* 0x0 */ ACT_DEAD,
|
|
/* 0x1 */ ACT_FLY,
|
|
/* 0x2 */ ACT_FLY_HOME_A,
|
|
/* 0x3 */ ACT_FLY_HOME_B,
|
|
/* 0x4 */ ACT_FAIL,
|
|
/* 0x5 */ ACT_START,
|
|
/* 0xA */ ACT_HOME = 10,
|
|
};
|
|
|
|
/* 80685368 */ bee_s() {}
|
|
/* 806852FC */ ~bee_s() {}
|
|
|
|
/* 0x00 */ J3DModel* mpModel1;
|
|
/* 0x04 */ J3DModel* mpModel2;
|
|
/* 0x08 */ J3DModel* mpModel3;
|
|
/* 0x0C */ J3DModel* mpModel4;
|
|
/* 0x10 */ cXyz mPos;
|
|
/* 0x1C */ cXyz mTarget;
|
|
/* 0x28 */ cXyz mSpeed;
|
|
/* 0x34 */ csXyz mAngle;
|
|
/* 0x3C */ f32 mSpeedF;
|
|
/* 0x40 */ f32 mScale;
|
|
/* 0x44 */ f32 mStartDistance;
|
|
/* 0x48 */ s16 mCounter;
|
|
/* 0x4A */ s16 mHomeTimer;
|
|
/* 0x4C */ s8 mAction;
|
|
/* 0x4D */ s8 mMode;
|
|
/* 0x4E */ s8 mIsFlying;
|
|
/* 0x4F */ u8 mTimer;
|
|
/* 0x50 */ bool mNoDraw;
|
|
/* 0x54 */ Z2SoundObjSimple mSound;
|
|
};
|
|
|
|
STATIC_ASSERT(sizeof(bee_s) == 0x74);
|
|
|
|
/**
|
|
* @ingroup actors-enemies
|
|
* @class e_bee_class
|
|
* @brief Bee
|
|
*
|
|
* @details
|
|
*
|
|
*/
|
|
class e_bee_class : public fopAc_ac_c {
|
|
public:
|
|
/* 0x0568 */ request_of_phase_process_class mPhase;
|
|
/* 0x0570 */ u8 mParam0;
|
|
/* 0x0571 */ u8 mParam1;
|
|
/* 0x0572 */ u8 mParam2;
|
|
/* 0x0574 */ Z2SoundObjBeeGroup mSound;
|
|
/* 0x0594 */ s16 mCounter;
|
|
/* 0x0596 */ u8 unused_0x596[4];
|
|
/* 0x059A */ s16 mTimers[2];
|
|
/* 0x059E */ u8 mCcSetTimer;
|
|
/* 0x059F */ u8 mHomeTimer;
|
|
/* 0x05A0 */ bee_s mBees[0x40];
|
|
/* 0x22A0 */ int mNumBees;
|
|
/* 0x22A4 */ u8 unused_0x22a4[0x30];
|
|
/* 0x22D4 */ dCcD_Stts mCcStts;
|
|
/* 0x2310 */ dCcD_Cyl mCcCyl;
|
|
/* 0x244C */ dCcD_Sph mCcSph;
|
|
/* 0x2584 */ s16 mBoomerangAngle;
|
|
/* 0x2586 */ bool mHIOInit;
|
|
/* 0x2587 */ bool mResLoaded;
|
|
};
|
|
|
|
STATIC_ASSERT(sizeof(e_bee_class) == 0x2588);
|
|
|
|
class daE_Bee_HIO_c {
|
|
public:
|
|
/* 8068286C */ daE_Bee_HIO_c();
|
|
/* 8068539C */ virtual ~daE_Bee_HIO_c() {}
|
|
|
|
/* 0x4 */ s8 field_0x4;
|
|
/* 0x8 */ f32 mScale;
|
|
/* 0xC */ bool mDelete;
|
|
/* 0xD */ bool mNoKill;
|
|
};
|
|
|
|
STATIC_ASSERT(sizeof(daE_Bee_HIO_c) == 0x10);
|
|
|
|
#endif /* D_A_E_BEE_H */
|