tp/include/d/actor/d_a_cstatue.h

103 lines
3.0 KiB
C++

#ifndef D_A_CSTATUE_H
#define D_A_CSTATUE_H
#include "Z2AudioLib/Z2Creature.h"
#include "d/d_particle_copoly.h"
#include "f_op/f_op_actor.h"
/**
* @ingroup actors-unsorted
* @class daCstatue_c
* @brief Dominion Rod Statue (small?)
*
* @details
*
*/
class daCstatue_c : public fopAc_ac_c {
public:
/* 806636AC */ void atHitCallback(fopAc_ac_c*);
/* 806636EC */ void createHeap();
/* 80663D28 */ void create();
/* 80664840 */ ~daCstatue_c();
/* 80664AA0 */ void setRoomInfo();
/* 80664B38 */ void setMatrix();
/* 80664C9C */ void posMove();
/* 8066555C */ void setCollision();
/* 80665E14 */ void checkHammerReverse();
/* 80665F80 */ void setDemo();
/* 80666390 */ void setAnime();
/* 80666B80 */ void initBrk(u16);
/* 80666BF8 */ void initStopBrkBtk();
/* 80666C38 */ void initStartBrkBtk();
/* 80666DE8 */ void execute();
/* 80667438 */ void draw();
bool checkNormalType() const { return mType == 0; }
bool checkNotSmallType() const { return mType == 1; }
bool checkBossType() const { return mType == 4 || mType == 3; }
cXyz& getBallPos() { return mBallPos; }
void onWarpGround(const cXyz& pos) {
field_0xb14 = pos;
field_0xae1 = 3;
}
void warpStart(const cXyz& pos) {
field_0xb14 = pos;
field_0xae1 = 1;
}
void onStateFlg0(int flg) {
mStateFlg0 |= flg;
}
void warpDelete() {
onStateFlg0(1);
field_0xae1 = 1;
}
static u8 const m_bckIdxTable[70 + 2 /* padding */];
private:
/* 0x568 */ char* mResName;
/* 0x56C */ request_of_phase_process_class mPhaseReq;
/* 0x574 */ J3DModel* field_0x574;
/* 0x578 */ mDoExt_McaMorfSO* field_0x578;
/* 0x57C */ mDoExt_btkAnm field_0x57c;
/* 0x594 */ mDoExt_brkAnm field_0x594;
/* 0x5AC */ dBgS_AcchCir field_0x5ac[4];
/* 0x6AC */ dBgS_StatueAcch field_0x6ac;
/* 0x884 */ dCcD_Stts field_0x884;
/* 0x8C0 */ dCcD_Cyl field_0x8c0;
/* 0x9FC */ dCcD_Cyl* field_0x9fc;
/* 0xA00 */ dCcD_Cps* field_0xa00;
/* 0xA04 */ dCcD_Cps* field_0xa04;
/* 0xA08 */ dCcD_Sph* field_0xa08;
/* 0xA0C */ mDoExt_invisibleModel field_0xa0c;
/* 0xA14 */ Z2Creature field_0xa14;
/* 0xAA4 */ dPaPo_c field_0xaa4;
/* 0xADC */ u8 mReverb;
/* 0xADD */ u8 mType;
/* 0xADE */ u8 field_0xade;
/* 0xADF */ u8 field_0xadf;
/* 0xAE0 */ u8 field_0xae0;
/* 0xAE1 */ u8 field_0xae1;
/* 0xAE2 */ u8 field_0xae2;
/* 0xAE3 */ u8 field_0xae3;
/* 0xAE4 */ u8 field_0xae4;
/* 0xAE5 */ u8 mBossAtGndHit;
/* 0xAE6 */ u8 field_0xae6[0xAE8 - 0xAE6];
/* 0xAE8 */ s16 field_0xae8;
/* 0xAEA */ s16 field_0xaea;
/* 0xAEC */ u32 mStateFlg0;
/* 0xAF0 */ u32 field_0xaf0;
/* 0xAF4 */ f32 field_0xaf4;
/* 0xAF8 */ f32 field_0xaf8;
/* 0xAFC */ f32 field_0xafc;
/* 0xB00 */ f32 field_0xb00;
/* 0xB04 */ f32 field_0xb04;
/* 0xB08 */ cXyz field_0xb08;
/* 0xB14 */ cXyz field_0xb14;
/* 0xB20 */ cXyz mBallPos;
};
STATIC_ASSERT(sizeof(daCstatue_c) == 0xB2C);
#endif /* D_A_CSTATUE_H */