mirror of https://github.com/zeldaret/tp.git
103 lines
3.0 KiB
C++
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 */
|