tp/include/d/actor/d_a_e_sm2.h

113 lines
2.9 KiB
C++

#ifndef D_A_E_SM2_H
#define D_A_E_SM2_H
#include "f_op/f_op_actor_mng.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
enum daE_SM2_TYPE {
TYPE_GREEN,
TYPE_RED,
TYPE_BLUE,
TYPE_YELLOW,
TYPE_PURPLE,
TYPE_RARE,
TYPE_BLACK,
TYPE_RANDOM,
};
enum daE_SM2_ACTION {
ACTION_NORMAL_MOVE,
ACTION_ATTACK,
ACTION_COMBINE,
ACTION_ROOF = 10,
ACTION_WATER,
ACTION_FAIL = 20,
};
/**
* @ingroup actors-enemies
* @class e_sm2_class
* @brief Chuchu 2
*
* @details
*
*/
class e_sm2_class {
public:
bool checkYellow() { return type == TYPE_YELLOW; }
/* 0x000 */ fopEn_enemy_c enemy;
/* 0x5AC */ request_of_phase_process_class phase;
/* 0x5B4 */ u8 field_0x5b4;
/* 0x5B5 */ u8 field_0x5b5;
/* 0x5B6 */ u8 field_0x5b6;
/* 0x5B7 */ u8 type;
/* 0x5B8 */ int field_0x5b8;
/* 0x5BC */ mDoExt_McaMorfSO* modelMorf;
/* 0x5C0 */ mDoExt_invisibleModel invisModel;
/* 0x5C8 */ mDoExt_btkAnm* pbtk;
/* 0x5CC */ mDoExt_McaMorfSO* pieceModelMorf;
/* 0x5D0 */ mDoExt_invisibleModel pieceInvisModel;
/* 0x5D8 */ s8 isPiece;
/* 0x5DC */ Z2CreatureEnemy sound;
/* 0x680 */ s16 counter;
/* 0x682 */ s16 action;
/* 0x684 */ s16 mode;
/* 0x686 */ s16 timers[3];
/* 0x68C */ s16 invulernabilityTimer;
/* 0x68E */ s16 combine_off_timer;
/* 0x690 */ s16 angle_to_pl;
/* 0x694 */ f32 dist_to_pl;
/* 0x698 */ cXyz field_0x698;
/* 0x6A4 */ s16 mCurrentAngleYTarget;
/* 0x6A6 */ s16 mCurrentAngleYTargetStep;
/* 0x6A8 */ s8 field_0x6a8;
/* 0x6A9 */ u8 field_0x6a9;
/* 0x6AA */ u8 field_0x6aa;
/* 0x6AC */ f32 field_0x6ac;
/* 0x6B0 */ f32 field_0x6b0;
/* 0x6B4 */ u32 shadowId;
/* 0x6B8 */ f32 color_R;
/* 0x6BC */ f32 color_G;
/* 0x6C0 */ f32 color_B;
/* 0x6C4 */ f32 color_alpha;
/* 0x6C8 */ f32 field_0x6c8[8];
/* 0x6E8 */ f32 field_0x6e8[8];
/* 0x708 */ cXyz field_0x708[8];
/* 0x768 */ csXyz field_0x768[8];
/* 0x798 */ cXyz jnt_pos[8];
/* 0x7F8 */ csXyz field_0x7f8[8];
/* 0x828 */ s16 field_0x828;
/* 0x82C */ f32 field_0x82c;
/* 0x830 */ f32 field_0x830;
/* 0x834 */ f32 size;
/* 0x838 */ f32 field_0x838;
/* 0x83C */ u8 sizetype;
/* 0x83D */ u8 is_roof;
/* 0x83E */ u8 field_0x83e;
/* 0x83F */ s8 field_0x83f;
/* 0x840 */ cXyz field_0x840;
/* 0x84C */ csXyz field_0x84c;
/* 0x854 */ dBgS_AcchCir acchcir;
/* 0x894 */ dBgS_ObjAcch acch;
/* 0xA6C */ dCcD_Stts ccStts;
/* 0xAA8 */ dCcD_Sph ccSph[4];
/* 0xF88 */ s8 field_0xf88;
/* 0xF8C */ dCcU_AtInfo atInfo;
/* 0xFB0 */ u32 field_0xfb0[4][2];
/* 0xFD0 */ fpc_ProcID combine_actor_pid;
/* 0xFD4 */ s8 field_0xfd4;
/* 0xFD8 */ u32 field_0xfd8;
/* 0xFDC */ u8 field_0xfdc[0xFF0 - 0xFDC];
};
STATIC_ASSERT(sizeof(e_sm2_class) == 0xff0);
#endif /* D_A_E_SM2_H */