SSBM Decomp
Toggle main menu visibility
Loading...
Searching...
No Matches
wobj.h
Go to the documentation of this file.
1
#ifndef SYSDOLPHIN_BASELIB_WOBJ_H
2
#define SYSDOLPHIN_BASELIB_WOBJ_H
3
4
#include <
Runtime/platform.h
>
5
6
#include <
sysdolphin/baselib/forward.h
>
// IWYU pragma: export
7
8
#include <
dolphin/mtx.h
>
9
#include <
sysdolphin/baselib/class.h
>
10
#include <
sysdolphin/baselib/object.h
>
11
12
struct
HSD_WObj
{
13
HSD_Obj
parent
;
14
u32
flags
;
15
Vec3
pos
;
16
HSD_AObj
*
aobj
;
17
HSD_RObj
*
robj
;
18
};
19
20
struct
HSD_WObjDesc
{
21
char
*
class_name
;
22
Vec3
pos
;
23
HSD_RObjDesc
*
robjdesc
;
24
};
25
26
struct
HSD_WObjInfo
{
27
HSD_ObjInfo
parent
;
28
int (*
load
)(
HSD_WObj
* wobj,
HSD_WObjDesc
*
desc
);
29
};
30
31
struct
HSD_WObjAnim
{
32
HSD_AObjDesc
*
aobjdesc
;
33
HSD_RObjAnimJoint
*
robjanim
;
34
};
35
36
extern
HSD_WObjInfo
hsdWObj
;
37
38
#define HSD_WOBJ_INFO(i) ((HSD_WObjInfo*) (i))
39
#define HSD_WOBJ_METHOD(o) HSD_WOBJ_INFO(HSD_OBJECT_METHOD(o))
40
41
static
inline
void
HSD_WObjUnref
(
HSD_WObj
* wobj)
42
{
43
if
(wobj ==
NULL
) {
44
return
;
45
}
46
47
if
(
ref_DEC
(wobj) != 0) {
48
if
(wobj !=
NULL
) {
49
HSD_OBJECT_METHOD
(wobj)->release((
HSD_Class
*) wobj);
50
HSD_OBJECT_METHOD
(wobj)->destroy((
HSD_Class
*) wobj);
51
}
52
}
53
}
54
55
static
inline
void
HSD_WObjClearFlags
(
HSD_WObj
* wobj,
u32
flags)
56
{
57
wobj->
flags
&= ~flags;
58
}
59
60
void
HSD_WObjRemoveAnim
(
HSD_WObj
* wobj);
61
void
HSD_WObjReqAnim
(
HSD_WObj
* wobj,
f32
frame);
62
void
HSD_WObjAddAnim
(
HSD_WObj
* wobj,
HSD_WObjAnim
* anim);
63
void
HSD_WObjInterpretAnim
(
HSD_WObj
* wobj);
64
void
HSD_WObjInit
(
HSD_WObj
* wobj,
HSD_WObjDesc
*
desc
);
65
HSD_WObj
*
HSD_WObjLoadDesc
(
HSD_WObjDesc
*
desc
);
66
void
WObjSetupPosition
(
HSD_WObj
* wobj);
67
void
HSD_WObjSetPosition
(
HSD_WObj
*,
Vec3
*);
68
void
HSD_WObjSetPositionX
(
HSD_WObj
*,
f32
);
69
void
HSD_WObjSetPositionY
(
HSD_WObj
*,
f32
);
70
void
HSD_WObjSetPositionZ
(
HSD_WObj
*,
f32
);
71
void
HSD_WObjGetPosition
(
HSD_WObj
*,
Vec3
*);
72
HSD_WObj
*
HSD_WObjAlloc
(
void
);
73
void
HSD_WObjSetDefaultClass
(
HSD_ClassInfo
* info);
74
75
#endif
class.h
mtx.h
Vec3
struct Vec Vec3
u32
unsigned long u32
Definition
types.h:9
f32
float f32
Definition
types.h:13
desc
u8 desc[6][3]
Definition
mnruleplus.c:98
object.h
ref_DEC
static bool ref_DEC(void *o)
Definition
object.h:74
HSD_OBJECT_METHOD
#define HSD_OBJECT_METHOD(o)
Definition
object.h:15
platform.h
NULL
#define NULL
Definition
stddef.h:14
HSD_AObjDesc
Definition
aobj.h:50
HSD_AObj
Definition
aobj.h:40
HSD_ClassInfo
Definition
class.h:32
HSD_Class
Definition
class.h:14
HSD_ObjInfo
Definition
object.h:66
HSD_Obj
Definition
object.h:60
HSD_RObjAnimJoint
Definition
robj.h:84
HSD_RObjDesc
Definition
robj.h:71
HSD_RObj
Definition
robj.h:59
HSD_WObjAnim
Definition
wobj.h:31
HSD_WObjAnim::robjanim
HSD_RObjAnimJoint * robjanim
Definition
wobj.h:33
HSD_WObjAnim::aobjdesc
HSD_AObjDesc * aobjdesc
Definition
wobj.h:32
HSD_WObjDesc
Definition
wobj.h:20
HSD_WObjDesc::class_name
char * class_name
Definition
wobj.h:21
HSD_WObjDesc::robjdesc
HSD_RObjDesc * robjdesc
Definition
wobj.h:23
HSD_WObjDesc::pos
Vec3 pos
Definition
wobj.h:22
HSD_WObjInfo
Definition
wobj.h:26
HSD_WObjInfo::load
int(* load)(HSD_WObj *wobj, HSD_WObjDesc *desc)
Definition
wobj.h:28
HSD_WObjInfo::parent
HSD_ObjInfo parent
Definition
wobj.h:27
HSD_WObj
Definition
wobj.h:12
HSD_WObj::aobj
HSD_AObj * aobj
Definition
wobj.h:16
HSD_WObj::parent
HSD_Obj parent
Definition
wobj.h:13
HSD_WObj::pos
Vec3 pos
Definition
wobj.h:15
HSD_WObj::flags
u32 flags
Definition
wobj.h:14
HSD_WObj::robj
HSD_RObj * robj
Definition
wobj.h:17
forward.h
hsdWObj
HSD_WObjInfo hsdWObj
Definition
wobj.c:14
HSD_WObjUnref
static void HSD_WObjUnref(HSD_WObj *wobj)
Definition
wobj.h:41
HSD_WObjSetPositionX
void HSD_WObjSetPositionX(HSD_WObj *, f32)
Definition
wobj.c:161
HSD_WObjInterpretAnim
void HSD_WObjInterpretAnim(HSD_WObj *wobj)
Definition
wobj.c:88
HSD_WObjSetDefaultClass
void HSD_WObjSetDefaultClass(HSD_ClassInfo *info)
Definition
wobj.c:121
HSD_WObjReqAnim
void HSD_WObjReqAnim(HSD_WObj *wobj, f32 frame)
Definition
wobj.c:27
HSD_WObjSetPositionZ
void HSD_WObjSetPositionZ(HSD_WObj *, f32)
Definition
wobj.c:197
HSD_WObjSetPosition
void HSD_WObjSetPosition(HSD_WObj *, Vec3 *)
Definition
wobj.c:150
HSD_WObjInit
void HSD_WObjInit(HSD_WObj *wobj, HSD_WObjDesc *desc)
Definition
wobj.c:107
HSD_WObjLoadDesc
HSD_WObj * HSD_WObjLoadDesc(HSD_WObjDesc *desc)
Definition
wobj.c:131
HSD_WObjRemoveAnim
void HSD_WObjRemoveAnim(HSD_WObj *wobj)
Definition
wobj.c:18
HSD_WObjSetPositionY
void HSD_WObjSetPositionY(HSD_WObj *, f32)
Definition
wobj.c:179
HSD_WObjAddAnim
void HSD_WObjAddAnim(HSD_WObj *wobj, HSD_WObjAnim *anim)
Definition
wobj.c:35
HSD_WObjGetPosition
void HSD_WObjGetPosition(HSD_WObj *, Vec3 *)
Definition
wobj.c:215
HSD_WObjAlloc
HSD_WObj * HSD_WObjAlloc(void)
Definition
wobj.c:233
WObjSetupPosition
void WObjSetupPosition(HSD_WObj *wobj)
HSD_WObjClearFlags
static void HSD_WObjClearFlags(HSD_WObj *wobj, u32 flags)
Definition
wobj.h:55
src
sysdolphin
baselib
wobj.h
Generated by
1.17.0