mirror of https://github.com/zeldaret/tp.git
105 lines
2.9 KiB
C++
105 lines
2.9 KiB
C++
#ifndef D_A_D_A_OBJ_H
|
|
#define D_A_D_A_OBJ_H
|
|
|
|
#include "f_op/f_op_actor_mng.h"
|
|
|
|
class dCcD_GObjInf;
|
|
namespace daObj {
|
|
void eff_break_tsubo(fopAc_ac_c*, cXyz, int);
|
|
void make_eff_break_kotubo(fopAc_ac_c*);
|
|
void make_eff_break_kotubo2(fopAc_ac_c*);
|
|
void make_eff_break_gm_kotubo(fopAc_ac_c*);
|
|
void make_eff_break_gm_ootubo(fopAc_ac_c*);
|
|
void posMoveF_stream(fopAc_ac_c*, cXyz const*, cXyz const*, f32, f32);
|
|
void posMoveF_grade(fopAc_ac_c*, cXyz const*, cXyz const*, f32, f32, cXyz const*, f32, f32,
|
|
cXyz const*);
|
|
void quat_rotBaseY(Quaternion*, cXyz const&);
|
|
void HitSeStart(cXyz const*, int, dCcD_GObjInf const*, u32);
|
|
|
|
template <typename T>
|
|
T PrmAbstract(const fopAc_ac_c* i_actor, T i_nbits, T i_shift) {
|
|
u32 param = fopAcM_GetParam(i_actor);
|
|
return T((param >> i_shift) & ((1 << i_nbits) - 1));
|
|
}
|
|
|
|
class HioVarious_c : public JORReflexible {
|
|
public:
|
|
HioVarious_c();
|
|
virtual void genMessage(JORMContext*);
|
|
|
|
static void init(JORReflexible* node_ptr, const char* node_name);
|
|
static void clean(JORReflexible* node_ptr);
|
|
|
|
static HioVarious_c M_hio;
|
|
|
|
/* 0x04 */ JORReflexible* node_ptrs[16];
|
|
/* 0x44 */ const char* node_names[16];
|
|
/* 0x84 */ s8 field_0x84;
|
|
};
|
|
|
|
class HioThrow_c : public JORReflexible {
|
|
public:
|
|
HioThrow_c();
|
|
#if DEBUG
|
|
virtual void listen(u32 command, const JOREvent* event) { JORReflexible::listen(command, event); }
|
|
virtual void genObjectInfo(const JORGenEvent* event) { JORReflexible::genObjectInfo(event); }
|
|
virtual void listenNodeEvent(const JORNodeEvent* event) { JORReflexible::listenNodeEvent(event); }
|
|
virtual void listenPropertyEvent(const JORPropertyEvent* event) { JORReflexible::listenPropertyEvent(event); }
|
|
#endif
|
|
virtual void genMessage(JORMContext*);
|
|
|
|
static void init(JORReflexible* node_ptr, const char* node_name);
|
|
static void clean(JORReflexible* node_ptr);
|
|
|
|
static HioThrow_c M_hio;
|
|
static cXyz M_throw_pos_st;
|
|
static cXyz M_throw_pos_now;
|
|
|
|
/* 0x04 */ JORReflexible* node_ptrs[20];
|
|
/* 0x54 */ const char* node_names[20];
|
|
/* 0xA4 */ s8 field_0xa4;
|
|
};
|
|
|
|
class HioField_c : public JORReflexible {
|
|
public:
|
|
HioField_c();
|
|
virtual void genMessage(JORMContext*);
|
|
|
|
static HioField_c M_hio;
|
|
|
|
/* 0x04 */ JORReflexible* node_ptrs[16];
|
|
/* 0x44 */ const char* node_names[16];
|
|
/* 0x84 */ s8 field_0x84;
|
|
};
|
|
|
|
class HioSpot_c : public JORReflexible {
|
|
public:
|
|
HioSpot_c();
|
|
virtual void genMessage(JORMContext*);
|
|
|
|
static HioSpot_c M_hio;
|
|
|
|
/* 0x04 */ JORReflexible* node_ptrs[16];
|
|
/* 0x44 */ const char* node_names[16];
|
|
/* 0x84 */ s8 field_0x84;
|
|
};
|
|
|
|
class HioObj_c : public JORReflexible {
|
|
public:
|
|
HioObj_c();
|
|
virtual void genMessage(JORMContext*);
|
|
|
|
static void init();
|
|
static void clean();
|
|
|
|
static HioObj_c M_hio;
|
|
static const char* const M_node_name[];
|
|
static JORReflexible* const M_node_ptr[];
|
|
|
|
/* 0x04 */ s8 M_no;
|
|
};
|
|
|
|
}; // namespace daObj
|
|
|
|
#endif /* D_A_D_A_OBJ_H */
|