mirror of https://github.com/zeldaret/tp
147 lines
3.6 KiB
C++
147 lines
3.6 KiB
C++
#ifndef D_A_OBJ_KBACKET_H
|
|
#define D_A_OBJ_KBACKET_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"
|
|
|
|
struct daObj_KBacket_HIOParam
|
|
{
|
|
f32 field_0x0;
|
|
f32 field_0x4;
|
|
f32 field_0x8;
|
|
f32 field_0xc;
|
|
f32 field_0x10;
|
|
f32 field_0x14;
|
|
f32 field_0x18;
|
|
f32 field_0x1c;
|
|
f32 field_0x20;
|
|
f32 field_0x24;
|
|
f32 field_0x28;
|
|
};
|
|
|
|
class daObj_KBacket_HIO_c
|
|
#if DEBUG
|
|
: public mDoHIO_entry_c
|
|
#endif
|
|
{
|
|
public:
|
|
#if DEBUG
|
|
void genMessage(JORMContext*);
|
|
|
|
daObj_KBacket_HIOParam param;
|
|
#endif
|
|
};
|
|
|
|
class daObj_KBacket_Param_c {
|
|
public:
|
|
virtual ~daObj_KBacket_Param_c() {}
|
|
|
|
static const daObj_KBacket_HIOParam m;
|
|
};
|
|
|
|
/**
|
|
* @ingroup actors-objects
|
|
* @class daObj_KBacket_c
|
|
* @brief (Kakariko?) Bucket
|
|
*
|
|
* @details
|
|
*
|
|
*/
|
|
class daObj_KBacket_c : public fopAc_ac_c {
|
|
public:
|
|
/* 0x568 */ daObj_KBacket_HIO_c* mHIO;
|
|
/* 0x56C */ request_of_phase_process_class field_0x56c;
|
|
/* 0x574 */ J3DModel* mpModel;
|
|
/* 0x578 */ dBgS_ObjAcch mObjAcch;
|
|
/* 0x750 */ dCcD_Stts mStts;
|
|
/* 0x78C */ dBgS_AcchCir mAcchCir;
|
|
/* 0x7CC */ cBgS_GndChk mGndChk;
|
|
/* 0x808 */ dCcD_Cyl mCyl;
|
|
/* 0x90C */ cM3dGLin mLine;
|
|
/* 0x960 */ dBgS_LinChk mLinChk;
|
|
/* 0x9D0 */ u8 field_0x9d0;
|
|
/* 0x9D4 */ cXyz field_0x9d4;
|
|
/* 0x9E0 */ cXyz field_0x9e0;
|
|
/* 0x9EC */ csXyz field_0x9ec;
|
|
/* 0x9F4 */ int field_0x9f4;
|
|
/* 0x9F8 */ int field_0x9f8;
|
|
/* 0x9FC */ f32 field_0x9fc;
|
|
/* 0xA00 */ f32 field_0xa00;
|
|
/* 0xA04 */ f32 field_0xa04;
|
|
/* 0xA08 */ u8 field_0xa08[0xa0c - 0xa08];
|
|
/* 0xA0C */ f32 field_0xa0c;
|
|
/* 0xA10 */ f32 field_0xa10;
|
|
/* 0xA14 */ s16 field_0xa14;
|
|
/* 0xA18 */ s16 field_0xa16;
|
|
/* 0xA18 */ s16 field_0xa18;
|
|
/* 0xA1A */ s16 field_0xa1a;
|
|
/* 0xA1A */ s16 field_0xa1c;
|
|
/* 0xA1A */ u8 field_0xa1e[0xa24 - 0xa1e];
|
|
/* 0xA24 */ u32 field_0xa24[4];
|
|
/* 0xA34 */ u32 field_0xa34;
|
|
/* 0xA38 */ u8 field_0xa38[0xa3c - 0xa38];
|
|
/* 0xA3C */ u32 field_0xa3c;
|
|
/* 0xA40 */ u32 field_0xa40;
|
|
/* 0xA44 */ u8 field_0xa44;
|
|
/* 0xA45 */ u8 field_0xa45;
|
|
/* 0xA46 */ u8 field_0xa46;
|
|
/* 0xA47 */ u8 field_0xa47;
|
|
/* 0xA48 */ u8 field_0xa48;
|
|
/* 0xA49 */ u8 field_0xa49;
|
|
/* 0xA49 */ u8 field_0xa4a;
|
|
/* 0xA4B */ u8 field_0xa4b;
|
|
/* 0xA4C */ u8 field_0xa4c[0xa50 - 0xa4c];
|
|
|
|
virtual ~daObj_KBacket_c();
|
|
int create();
|
|
void setLaunchParam(float param_0, float param_1, short param_2) {
|
|
float fVar2;
|
|
|
|
s16 iVar1 = cM_deg2s(param_1);
|
|
speed.setall(0.0f);
|
|
speed.y = param_0 * cM_ssin(iVar1);
|
|
speedF = param_0 * cM_scos(iVar1);
|
|
if (field_0x9d0 == 0x0) {
|
|
current.angle.y = param_2 + 0x4000;
|
|
}
|
|
if (field_0x9d0 == 0x1) {
|
|
current.angle.y = param_2 + -0x4000;
|
|
}
|
|
shape_angle.y = param_2;
|
|
field_0xa18 = 0x800;
|
|
field_0xa44 = 1;
|
|
field_0xa47 = 1;
|
|
}
|
|
u8 getType() {
|
|
u8 param = fopAcM_GetParam(this);
|
|
switch (param & 0xff) {
|
|
case 0:
|
|
return 0;
|
|
case 1:
|
|
return 1;
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
int CreateHeap();
|
|
int Delete();
|
|
int Execute();
|
|
int Draw();
|
|
static void createHeapCallBack(fopAc_ac_c*);
|
|
void setEnvTevColor();
|
|
void setRoomNo();
|
|
void reset();
|
|
void setMtx();
|
|
s16 calcRollAngle(s16, int);
|
|
int getWallAngle(s16, s16*);
|
|
void setSmokePrtcl();
|
|
void setWaterPrtcl();
|
|
void setHamonPrtcl();
|
|
};
|
|
|
|
STATIC_ASSERT(sizeof(daObj_KBacket_c) == 0xa54);
|
|
|
|
#endif /* D_A_OBJ_KBACKET_H */
|