mirror of https://github.com/zeldaret/tp.git
123 lines
6.0 KiB
C++
123 lines
6.0 KiB
C++
/**
|
|
* @file d_a_e_fz.h
|
|
* @brief Freezard header file.
|
|
*
|
|
* @details This header contains information about the Mini Freezard actor.
|
|
*
|
|
*/
|
|
|
|
#ifndef D_A_E_FZ_H
|
|
#define D_A_E_FZ_H
|
|
|
|
#include "SSystem/SComponent/c_phase.h"
|
|
#include "Z2AudioLib/Z2Creature.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 "m_Do/m_Do_hostIO.h"
|
|
|
|
/**
|
|
* @enum daE_FZ_Action
|
|
* @brief Mini Freezard current action.
|
|
*
|
|
*/
|
|
enum daE_FZ_Action {
|
|
ACT_WAIT, /**< Mini Freezard is waiting. */
|
|
ACT_MOVE, /**< Mini Freezard is moving to attack. */
|
|
ACT_ATTACK, /**< Mini Freezard is attacking. */
|
|
ACT_DAMAGE, /**< Mini Freezard is damaged. */
|
|
ACT_ROLLMOVE /**< Mini Freezard is spinning around Blizzeta.
|
|
This action is only taken when actor is loaded in with parameter 3
|
|
(during the Blizzeta fight).*/
|
|
};
|
|
|
|
/**
|
|
* @ingroup actors-enemies
|
|
* @class daE_FZ_c
|
|
* @brief Mini Freezard
|
|
*
|
|
* @details Miniature Freezard enemy.
|
|
*
|
|
*/
|
|
class daE_FZ_c : public fopEn_enemy_c {
|
|
public:
|
|
s32 draw();
|
|
void setActionMode(int, int);
|
|
void setReflectAngle();
|
|
void mBoundSoundset();
|
|
void deadnextSet(bool);
|
|
void damage_check();
|
|
bool way_gake_check();
|
|
void executeWait();
|
|
void executeMove();
|
|
void executeAttack();
|
|
void executeDamage();
|
|
void executeRollMove();
|
|
void action();
|
|
void mtx_set();
|
|
void cc_set();
|
|
s32 execute();
|
|
void demoDelete();
|
|
s32 _delete();
|
|
s32 CreateHeap();
|
|
s32 create();
|
|
|
|
private:
|
|
/* 0x5AC */ request_of_phase_process_class mPhaseReq; /**< Phase request used when creating the actor. */
|
|
/* 0x5B4 */ J3DModel* mpModel; /**< Pointer to the Mini Freezard's model. */
|
|
/* 0x5B8 */ mDoExt_invisibleModel mInvisibleModel; /**< Invisible model used for the Mini Freezard. */
|
|
/* 0x5C0 */ Z2CreatureEnemy mCreature; /**< Z2CreatureEnemy class used for playing sound effects. */
|
|
/* 0x664 */ cXyz mUserWork; /**< ??? */
|
|
/* 0x670 */ cXyz field_0x670; /**< Appears unused. Set to current position on actor creation. */
|
|
/* 0x67C */ cXyz field_0x67c[4]; /**< ??? */
|
|
/* 0x6AC */ cXyz field_0x6ac[4]; /**< ??? */
|
|
/* 0x6DC */ cXyz field_0x6dc; /**< ??? */
|
|
/* 0x6E8 */ cXyz field_0x6e8; /**< ??? */
|
|
/* 0x6F4 */ s32 mActionMode; /**< Current action mode. */
|
|
/* 0x6F8 */ s32 mActionPhase; /**< Current phase of @ref mActionMode. */
|
|
/* 0x6FC */ f32 field_0x6fc; /**< ??? */
|
|
/* 0x700 */ f32 mRadiusBase; /**< Base radius value used by @ref mTgCoSph and @ref mAtSph. */
|
|
/* 0x704 */ s16 field_0x704; /**< ??? */
|
|
/* 0x706 */ s16 mAngleFromPlayer; /**< Angle the mini freezard is from the player. */
|
|
/* 0x708 */ s16 mLastWallHitAngle; /**< Angle of the last wall the mini freezard hit. */
|
|
/* 0x70C */ s32 field_0x70c; /**< ??? */
|
|
/* 0x710 */ u8 field_0x710; /**< ??? */
|
|
/* 0x711 */ u8 field_0x711; /**< ??? */
|
|
/* 0x712 */ u8 field_0x712; /**< ??? */
|
|
/* 0x713 */ u8 field_0x713; /**< ??? */
|
|
/* 0x714 */ u8 field_0x714; /**< ??? */
|
|
/* 0x715 */ u8 field_0x715; /**< ??? */
|
|
/* 0x716 */ u8 field_0x716; /**< ??? */
|
|
/* 0x717 */ u8 field_0x717; /**< ??? */
|
|
/* 0x718 */ fopAc_ac_c* mpBlizzetaActor; /**< Pointer to Blizzeta's actor (if used). Used to figure out what the mini freezard's angle and positioning should be when Blizzeta is attacking with them. */
|
|
/* 0x71C */ u32 mParticleSet[3]; /**< Particle set */
|
|
/* 0x728 */ u8 field_0x728[4]; /**< ??? */
|
|
/* 0x72C */ dBgS_AcchCir mAcchCir; /**< Checks for actor collision with background circles? */
|
|
/* 0x76C */ dBgS_ObjAcch mObjAcch; /**< Checks for actor collision with background objects. */
|
|
/* 0x944 */ dCcD_Stts mStts; /**< Track Mini Freezard collider status. */
|
|
/* 0x980 */ dCcD_Sph mTgCoSph; /**< Sphere collider used when Mini Freezard is attacked / pushed. */
|
|
/* 0xAB8 */ dCcD_Sph mAtSph; /**< Sphere collider used when Mini Freezard is attacking. */
|
|
/* 0xBF0 */ dCcU_AtInfo mAtInfo; /**< Tracks information when the Mini Freezard is attacked. */
|
|
/* 0xC14 */ u8 field_0xc14; /**< ??? */
|
|
/* 0xC15 */ u8 field_0xc15; /**< ??? */
|
|
/* 0xC16 */ u8 field_0xc16; /**< ??? */
|
|
/* 0xC17 */ u8 field_0xc17; /**< ??? */
|
|
/* 0xC18 */ u8 field_0xc18; /**< ??? */
|
|
/* 0xC19 */ u8 field_0xc19; /**< ??? */
|
|
/* 0xC1A */ u8 field_0xc1a; /**< ??? */
|
|
/* 0xC1B */ u8 field_0xc1b; /**< ??? */
|
|
/* 0xC1C */ u8 field_0xc1c; /**< ??? */
|
|
/* 0xC1D */ u8 field_0xc1d; /**< ??? */
|
|
/* 0xC1E */ u8 field_0xc1e; /**< ??? */
|
|
/* 0xC1F */ u8 field_0xc1f; /**< ??? */
|
|
/* 0xC20 */ u8 field_0xc20; /**< ??? */
|
|
/* 0xC21 */ u8 field_0xc21; /**< ??? */
|
|
/* 0xC22 */ u8 field_0xc22; /**< ??? */
|
|
/* 0xC23 */ u8 field_0xc23; /**< ??? */
|
|
};
|
|
|
|
STATIC_ASSERT(sizeof(daE_FZ_c) == 0xC24);
|
|
|
|
#endif /* D_A_E_FZ_H */
|