summaryrefslogtreecommitdiff
path: root/include/d/d_a_obj.h
blob: 5aabade966115e78cd9cc54b36b6799465578e2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef D_A_OBJ
#define D_A_OBJ

#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"

class dBgS_GndChk;
class cBgS_PolyInfo;

namespace daObj {
    template <typename T>
    int PrmAbstract(const fopAc_ac_c* actor, T width, T shift) {
        u32 param = fopAcM_GetParam((fopAc_ac_c*)actor);
        return ((1 << width) - 1) & (param >> shift);
    }
    
    void make_land_effect(fopAc_ac_c*, dBgS_GndChk*, f32);
    cXyz& get_wind_spd(fopAc_ac_c*, f32);
    cXyz& get_path_spd(cBgS_PolyInfo&, f32);
    void posMoveF_stream(fopAc_ac_c*, const cXyz*, const cXyz*, f32, f32);
    void posMoveF_grade(fopAc_ac_c*, const cXyz*, const cXyz*, f32, f32, const cXyz*, f32, f32, const cXyz*);
    void quat_rotBaseY(Quaternion*, const cXyz&);
    void quat_rotBaseY2(Quaternion*, const cXyz&);
    void quat_rotBaseZ(Quaternion*, const cXyz&);
    void quat_rotVec(Quaternion*, const cXyz&, const cXyz&);
    void SetCurrentRoomNo(fopAc_ac_c*, dBgS_GndChk*);
    void HitSeStart(const cXyz*, int, const dCcD_GObjInf*, u32);
    void HitEff_sub_kikuzu(const cXyz*, const cXyz*, const dKy_tevstr_c*);
    void HitEff_kikuzu(const fopAc_ac_c*, const dCcD_Cyl*);
    void HitEff_hibana(const cXyz*, const cXyz*);
    void HitEff_hibana(const fopAc_ac_c*, const dCcD_Cyl*);
};

#endif /* D_A_OBJ */