Files
tp/include/d/actor/d_a_obj_tks.h
T

108 lines
2.8 KiB
C++
Raw Normal View History

2021-03-28 22:49:05 +02:00
#ifndef D_A_OBJ_TKS_H
#define D_A_OBJ_TKS_H
2024-05-29 01:49:10 -06:00
#include "f_op/f_op_actor_mng.h"
2025-11-25 15:32:01 -05:00
#include "d/actor/d_a_npc4.h"
2025-08-01 10:29:50 -07:00
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:
2025-11-30 14:23:42 -08:00
virtual ~daObjTks_Param_c() {}
2025-08-01 10:29:50 -07:00
static const daObjTks_HIOParam m;
};
2024-05-29 01:49:10 -06:00
/**
* @ingroup actors-objects
* @class daObjTks_c
* @brief Ooccoo Jr. (small)
*
* @details
*
2025-09-19 11:38:54 -07:00
*/
2025-08-01 10:29:50 -07:00
class daObjTks_c : public daNpcF_c {
2024-05-29 01:49:10 -06:00
public:
2025-11-30 14:23:42 -08:00
daObjTks_c();
virtual ~daObjTks_c();
2025-08-01 10:29:50 -07:00
2025-11-30 14:23:42 -08:00
int Create();
int CreateHeap();
int Delete();
int Execute();
int Draw();
int ctrlJoint(J3DJoint*, J3DModel*);
static int createHeapCallBack(fopAc_ac_c*);
static int ctrlJointCallBack(J3DJoint*, int);
void reset();
inline int setAction(void (daObjTks_c::*)());
void wait();
void talk();
void demo();
void warp();
inline void lookat();
2025-08-01 10:29:50 -07:00
2025-11-30 14:23:42 -08:00
virtual inline void setParam();
virtual inline BOOL main();
virtual inline BOOL ctrlBtk();
virtual inline void setMtx();
virtual inline void setAttnPos();
virtual inline bool setExpressionAnm(int, bool);
virtual inline bool setExpressionBtp(int);
virtual inline void setExpression(int, f32);
virtual inline void setMotionAnm(int, f32);
virtual inline void setMotion(int, f32, int);
virtual inline BOOL drawDbgInfo();
virtual inline void drawOtherMdls();
2025-08-01 10:29:50 -07:00
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; }
2024-05-29 01:49:10 -06:00
2024-10-28 04:00:15 -07:00
void setStart() { field_0xde0 = 1; }
2025-08-01 10:29:50 -07:00
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;
2024-10-28 04:00:15 -07:00
/* 0xDE0 */ u8 field_0xde0;
2025-08-01 10:29:50 -07:00
/* 0xDE1 */ u8 field_0xde1;
2024-05-29 01:49:10 -06:00
};
2024-06-10 01:34:52 -06:00
2024-05-29 01:49:10 -06:00
STATIC_ASSERT(sizeof(daObjTks_c) == 0xDE4);
2021-03-28 22:49:05 +02:00
#endif /* D_A_OBJ_TKS_H */