tp/include/d/actor/d_a_obj_tks.h

107 lines
3.1 KiB
C++

#ifndef D_A_OBJ_TKS_H
#define D_A_OBJ_TKS_H
#include "f_op/f_op_actor_mng.h"
#include "d/actor/d_a_npc.h"
struct daObjTks_HIOParam {
/* 0x00 */ daNpcF_HIOParam common;
/* 0x6C */ f32 offset_x;
/* 0x70 */ f32 offset_y;
/* 0x74 */ f32 offset_z;
/* 0x78 */ f32 spring_factor;
/* 0x7C */ f32 spring_atten;
};
class daObjTks_Param_c {
public:
/* 80D126D0 */ virtual ~daObjTks_Param_c() {}
static const daObjTks_HIOParam m;
};
/**
* @ingroup actors-objects
* @class daObjTks_c
* @brief Ooccoo Jr. (small)
*
* @details
*
*/
class daObjTks_c : public daNpcF_c {
public:
/* 80D0F28C */ daObjTks_c();
/* 80D0F480 */ virtual ~daObjTks_c();
/* 80D0F640 */ int Create();
/* 80D0F904 */ int CreateHeap();
/* 80D0FD34 */ int Delete();
/* 80D0FD68 */ int Execute();
/* 80D0FE60 */ int Draw();
/* 80D0FED0 */ int ctrlJoint(J3DJoint*, J3DModel*);
/* 80D10094 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80D100B4 */ static int ctrlJointCallBack(J3DJoint*, int);
/* 80D103E8 */ void reset();
/* 80D10578 */ inline int setAction(void (daObjTks_c::*)());
/* 80D10618 */ void wait();
/* 80D106F4 */ void talk();
/* 80D10A80 */ void demo();
/* 80D11228 */ void warp();
/* 80D11CB4 */ inline void lookat();
/* 80D11670 */ virtual void setParam();
/* 80D116C8 */ virtual BOOL main();
/* 80D118E8 */ virtual BOOL ctrlBtk();
/* 80D10100 */ virtual void setMtx();
/* 80D119BC */ virtual void setAttnPos();
/* 80D10184 */ virtual bool setExpressionAnm(int, bool);
/* 80D102D0 */ virtual bool setExpressionBtp(int);
/* 80D106C8 */ virtual void setExpression(int, f32);
/* 80D11104 */ virtual void setMotionAnm(int, f32);
/* 80D103A4 */ virtual void setMotion(int, f32, int);
/* 80D11E94 */ virtual BOOL drawDbgInfo();
/* 80D11E9C */ virtual void drawOtherMdls();
void calcSpringF(f32* param_0, f32 param_1, f32* param_2) {
*param_2 = daObjTks_Param_c::m.spring_atten * (*param_2 + (daObjTks_Param_c::m.spring_factor * (*param_0 - param_1)));
*param_0 += *param_2;
}
inline void playExpression();
inline void playMotion();
bool chkAction(void (daObjTks_c::*i_action)()) { return i_action == mAction; }
void setStart() { field_0xde0 = 1; }
void setLookMode(int i_mode) {
if (i_mode >= 0 && i_mode < 6 && i_mode != mLookMode) {
mLookMode = i_mode;
}
}
void setExpressionTalkAfter() {
(void)mExpression;
setExpression(1, -1.0f);
}
/* 0xB48 */ Z2Creature mSound;
/* 0xBD8 */ daNpcF_MatAnm_c* mpMatAnm;
/* 0xBDC */ daNpcF_Lookat_c mLookat;
/* 0xC78 */ u8 field_0xC78[0xC7C - 0xC78];
/* 0xC7C */ dCcD_Cyl mCcCyl;
/* 0xDB8 */ void (daObjTks_c::*mAction)();
/* 0xDC4 */ request_of_phase_process_class mPhase;
/* 0xDCC */ f32 field_0xdcc;
/* 0xDD0 */ f32 field_0xdd0;
/* 0xDD4 */ u8 field_0xDD4[0xDDC - 0xDD4];
/* 0xDDC */ s16 mLookMode;
/* 0xDDE */ u16 field_0xdde;
/* 0xDE0 */ u8 field_0xde0;
/* 0xDE1 */ u8 field_0xde1;
};
STATIC_ASSERT(sizeof(daObjTks_c) == 0xDE4);
#endif /* D_A_OBJ_TKS_H */