mirror of https://github.com/zeldaret/tp.git
164 lines
4.1 KiB
C++
164 lines
4.1 KiB
C++
#ifndef D_A_OBJ_KAGO_H
|
|
#define D_A_OBJ_KAGO_H
|
|
|
|
#include "SSystem/SComponent/c_math.h"
|
|
#include "d/d_bg_s_acch.h"
|
|
#include "d/d_cc_d.h"
|
|
#include "f_op/f_op_actor_mng.h"
|
|
|
|
/**
|
|
* @ingroup actors-objects
|
|
* @class daObj_Kago_c
|
|
* @brief Basket
|
|
*
|
|
* @details
|
|
*
|
|
*/
|
|
class daObj_Kago_c : public fopAc_ac_c {
|
|
public:
|
|
cPhs__Step create();
|
|
int CreateHeap();
|
|
int Delete();
|
|
int Execute();
|
|
int Draw();
|
|
static int createHeapCallBack(fopAc_ac_c*);
|
|
BOOL isDelete();
|
|
void setEnvTevColor();
|
|
void setRoomNo();
|
|
void reset();
|
|
void setMtx();
|
|
int getWallAngle(s16, s16*);
|
|
void setGoalPosAndAngle();
|
|
void setSmokePrtcl();
|
|
void setWaterPrtcl();
|
|
void setHamonPrtcl();
|
|
|
|
u8 getType() {
|
|
int iVar1 = fopAcM_GetParam(this) & 0xFF;
|
|
u8 rv;
|
|
|
|
switch ((argument & 127)) {
|
|
case 0:
|
|
switch (iVar1) {
|
|
case 0:
|
|
return 0;
|
|
}
|
|
break;
|
|
|
|
case 1:
|
|
switch (iVar1) {
|
|
case 0:
|
|
return 1;
|
|
|
|
case 1:
|
|
return 2;
|
|
|
|
case 2:
|
|
return 3;
|
|
}
|
|
}
|
|
|
|
return 4;
|
|
}
|
|
|
|
void setMtx(Mtx param_1) {
|
|
cXyz sp18;
|
|
field_0xba2 = 1;
|
|
mDoMtx_stack_c::copy(param_1);
|
|
mDoMtx_stack_c::multVecZero(&sp18);
|
|
current.pos = sp18;
|
|
old.pos = current.pos;
|
|
field_0x574->setBaseTRMtx(param_1);
|
|
}
|
|
|
|
void popup(f32 param_1, f32 param_2, cXyz* param_3) {
|
|
if (param_3 != NULL) {
|
|
current.pos = *param_3;
|
|
old.pos = current.pos;
|
|
}
|
|
|
|
int iVar1 = cM_deg2s(param_2);
|
|
speed.setall(0.0f);
|
|
speed.y = param_1 * cM_ssin(iVar1);
|
|
speedF = param_1 * cM_scos(iVar1);
|
|
field_0xb44 = 6;
|
|
field_0xb70 = 0x4000;
|
|
field_0xb9e = 1;
|
|
field_0xb68 = 0.0f;
|
|
}
|
|
|
|
private:
|
|
/* 0x568 */ u8 field_0x568[0x56c - 0x568];
|
|
/* 0x56C */ request_of_phase_process_class mPhase;
|
|
/* 0x574 */ J3DModel* field_0x574;
|
|
/* 0x578 */ dBgS_ObjAcch mObjAcch;
|
|
/* 0x750 */ dCcD_Stts mStts;
|
|
/* 0x78C */ dBgS_AcchCir mAcchCir;
|
|
/* 0x7CC */ cBgS_GndChk field_0x7cc;
|
|
/* 0x808 */ dCcD_Cyl field_0x808[2];
|
|
/* 0xA80 */ cM3dGLin field_0xa80;
|
|
/* 0xA9C */ dBgS_LinChk field_0xa9c;
|
|
/* 0xB0C */ f32 field_0xb0c;
|
|
/* 0xB10 */ u8 mType;
|
|
/* 0xB14 */ cXyz field_0xb14;
|
|
/* 0xB20 */ cXyz field_0xb20;
|
|
/* 0xB2C */ csXyz field_0xb2c;
|
|
/* 0xB32 */ u8 field_0xb32[0xb44 - 0xb32];
|
|
/* 0xB44 */ int field_0xb44;
|
|
/* 0xB48 */ int field_0xb48;
|
|
/* 0xB4C */ int field_0xb4c;
|
|
/* 0xB50 */ f32 field_0xb50;
|
|
/* 0xB54 */ f32 mGroundH;
|
|
/* 0xB58 */ f32 mWaterY;
|
|
/* 0xB5C */ u8 field_0xb5c[0xb64 - 0xb5c];
|
|
/* 0xB64 */ f32 field_0xb64;
|
|
/* 0xB68 */ f32 field_0xb68;
|
|
/* 0xB6C */ s16 field_0xb6c;
|
|
/* 0xB6E */ s16 field_0xb6e;
|
|
/* 0xB70 */ s16 field_0xb70;
|
|
/* 0xB72 */ u8 field_0xb72[0xb74 - 0xb72];
|
|
/* 0xB74 */ s16 field_0xb74;
|
|
/* 0xB76 */ s16 field_0xb76;
|
|
/* 0xB78 */ u32 field_0xb78;
|
|
/* 0xB7C */ u32 mWaterPrtcls[4];
|
|
/* 0xB8C */ u32 mHamonPrtcl;
|
|
/* 0xB90 */ u8 field_0xb90[0xb94 - 0xb90];
|
|
/* 0xB94 */ u32 field_0xb94;
|
|
/* 0xB98 */ u32 field_0xb98;
|
|
/* 0xB9C */ u8 field_0xb9c;
|
|
/* 0xB9D */ u8 field_0xb9d;
|
|
/* 0xB9E */ u8 field_0xb9e;
|
|
/* 0xB9F */ u8 field_0xb9f;
|
|
/* 0xBA0 */ u8 field_0xba0;
|
|
/* 0xBA1 */ u8 field_0xba1;
|
|
/* 0xBA2 */ u8 field_0xba2;
|
|
/* 0xBA3 */ u8 field_0xba3;
|
|
// vtable
|
|
virtual ~daObj_Kago_c();
|
|
};
|
|
|
|
STATIC_ASSERT(sizeof(daObj_Kago_c) == 0xba8);
|
|
|
|
class daObj_Kago_Param_c {
|
|
public:
|
|
virtual ~daObj_Kago_Param_c() {}
|
|
|
|
struct Data {
|
|
/* 0x00 */ f32 field_0x00;
|
|
/* 0x04 */ f32 mGravity;
|
|
/* 0x08 */ f32 field_0x08;
|
|
/* 0x0C */ f32 field_0x0c;
|
|
/* 0x10 */ f32 mWeight;
|
|
/* 0x14 */ f32 field_0x14;
|
|
/* 0x18 */ f32 mWallH;
|
|
/* 0x1C */ f32 mWallR;
|
|
/* 0x20 */ f32 field_0x20;
|
|
/* 0x24 */ f32 field_0x24;
|
|
/* 0x28 */ f32 field_0x28;
|
|
};
|
|
static const Data m;
|
|
};
|
|
|
|
|
|
#endif /* D_A_OBJ_KAGO_H */
|