mirror of https://github.com/zeldaret/tp.git
123 lines
2.9 KiB
C++
123 lines
2.9 KiB
C++
#ifndef D_A_OBJ_ITAMATO_H
|
|
#define D_A_OBJ_ITAMATO_H
|
|
|
|
#include "JSystem/JHostIO/JORFile.h"
|
|
#include "f_op/f_op_actor_mng.h"
|
|
#include "d/actor/d_a_arrow.h"
|
|
#include "d/d_cc_d.h"
|
|
|
|
/**
|
|
* @ingroup actors-objects
|
|
* @class daObj_ItaMato_c
|
|
* @brief Plank Target
|
|
*
|
|
* @details
|
|
*
|
|
*/
|
|
|
|
class daObj_ItaMato_HIO_c;
|
|
|
|
class daObj_ItaMato_c : public fopAc_ac_c {
|
|
private:
|
|
/* 0x568 */ daObj_ItaMato_HIO_c* mHIO;
|
|
/* 0x56C */ request_of_phase_process_class mPhase;
|
|
/* 0x574 */ J3DModel* mpModels[2];
|
|
/* 0x57C */ dBgS_ObjAcch mBgc;
|
|
/* 0x754 */ dCcD_Stts mStts;
|
|
/* 0x790 */ dBgS_AcchCir mAcchCir;
|
|
/* 0x7D0 */ cBgS_GndChk mGndChk;
|
|
/* 0x80C */ dCcD_Sph mSph;
|
|
/* 0x944 */ cM3dGLin mLin;
|
|
/* 0x960 */ dBgS_LinChk mLinChk;
|
|
/* 0x9D0 */ csXyz field_0x9d0[3];
|
|
/* 0x9E4 */ int mCutType;
|
|
/* 0x9E8 */ int field_0x9e8;
|
|
/* 0x9EC */ f32 mGroundH;
|
|
/* 0x9F0 */ f32 field_0x9f0[3];
|
|
/* 0x9FC */ s16 field_0x9fc[3];
|
|
/* 0xA02 */ s16 field_0xa02;
|
|
/* 0xA04 */ u32 mShadowKey;
|
|
/* 0xA08 */ u32 mPrtcls[3];
|
|
/* 0xA14 */ u8 mType;
|
|
/* 0xA15 */ u8 field_0xa15;
|
|
/* 0xA15 */ u8 field_0xa16;
|
|
/* 0xA17 */ u8 field_0xa17;
|
|
/* 0xA18 */ u8 field_0xa18;
|
|
/* 0xA19 */ u8 mFake;
|
|
|
|
public:
|
|
daObj_ItaMato_c() {}
|
|
virtual ~daObj_ItaMato_c();
|
|
cPhs__Step create();
|
|
int CreateHeap();
|
|
int Delete();
|
|
int Execute();
|
|
int Draw();
|
|
static int createHeapCallBack(fopAc_ac_c*);
|
|
static void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
|
|
const char* getResName();
|
|
void setSwayParam(fopAc_ac_c*);
|
|
void setPrtcls();
|
|
void setEnvTevColor();
|
|
void setRoomNo();
|
|
void setMtx();
|
|
|
|
u8 getBitSW2() { return (fopAcM_GetParam(this) & 0xFF0000) >> 16; }
|
|
|
|
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
|
|
|
|
int getNo() {
|
|
u8 var_r31 = fopAcM_GetParam(this) & 0xFF;
|
|
|
|
int no;
|
|
if (var_r31 == 0xFF) {
|
|
no = -1;
|
|
} else {
|
|
no = var_r31;
|
|
}
|
|
|
|
return no;
|
|
}
|
|
|
|
u8 getType() { return 0; }
|
|
|
|
void setCutType(u8 i_cutType) { mCutType = i_cutType; }
|
|
|
|
int checkCrs(fopAc_ac_c* param_0, cXyz param_1, cXyz param_2, f32 param_3) {
|
|
daArrow_c* arrow_p = (daArrow_c*)param_0;
|
|
cM3dGSph sp38;
|
|
cXyz sp2C;
|
|
cXyz sp20;
|
|
|
|
JUT_ASSERT(170, NULL != arrow_p);
|
|
|
|
if (field_0xa16 != 0 || health == 0) {
|
|
return 0;
|
|
}
|
|
|
|
sp38.Set(mSph.GetShapeP()->GetC(), mSph.GetShapeP()->GetR() + (arrow_p->getArrowAtR() * 2.0f));
|
|
if ((param_1 - current.pos).abs() < param_3) {
|
|
mLin.SetStartEnd(param_1, param_2);
|
|
if (cM3d_Cross_LinSph(&mLin, &sp38)) {
|
|
return 3;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
BOOL checkBrk() {
|
|
if (field_0xa15 != 0) {
|
|
return 4;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
void onFake() { mFake = true; }
|
|
};
|
|
|
|
STATIC_ASSERT(sizeof(daObj_ItaMato_c) == 0xa20);
|
|
|
|
#endif /* D_A_OBJ_ITAMATO_H */
|