SSBM Decomp
Toggle main menu visibility
Loading...
Searching...
No Matches
aobj.h
Go to the documentation of this file.
1
#ifndef _aobj_h_
2
#define _aobj_h_
3
4
#include <
Runtime/platform.h
>
5
6
#include <
sysdolphin/baselib/forward.h
>
// IWYU pragma: export
7
8
#include <
sysdolphin/baselib/debug.h
>
9
#include <
sysdolphin/baselib/fobj.h
>
10
#include <
sysdolphin/baselib/objalloc.h
>
11
#include <
sysdolphin/baselib/object.h
>
12
13
#define AOBJ_REWINDED (1 << 26)
14
#define AOBJ_FIRST_PLAY (1 << 27)
15
#define AOBJ_NO_UPDATE (1 << 28)
16
#define AOBJ_LOOP (1 << 29)
17
#define AOBJ_NO_ANIM (1 << 30)
18
19
typedef
enum
_AObj_Arg_Type {
20
AOBJ_ARG_A
,
21
AOBJ_ARG_AF
,
22
AOBJ_ARG_AV
,
23
AOBJ_ARG_AU
,
24
AOBJ_ARG_AO
,
25
AOBJ_ARG_AOF
,
26
AOBJ_ARG_AOV
,
27
AOBJ_ARG_AOU
,
28
AOBJ_ARG_AOT
,
29
AOBJ_ARG_AOTF
,
30
AOBJ_ARG_AOTV
,
31
AOBJ_ARG_AOTU
,
32
}
AObj_Arg_Type
;
33
34
typedef
union
_callbackArg {
35
f32
f
;
36
u32
d
;
37
void
*
v
;
38
}
callbackArg
;
39
40
struct
HSD_AObj
{
41
u32
flags
;
42
f32
curr_frame
;
43
f32
rewind_frame
;
44
f32
end_frame
;
45
f32
framerate
;
46
HSD_FObj
*
fobj
;
47
struct
HSD_Obj
*
hsd_obj
;
48
};
49
50
struct
HSD_AObjDesc
{
51
u32
flags
;
52
f32
end_frame
;
53
HSD_FObjDesc
*
fobjdesc
;
54
u32
obj_id
;
55
};
56
57
struct
HSD_AnimJoint
{
58
HSD_AnimJoint
*
child
;
59
HSD_AnimJoint
*
next
;
60
HSD_AObjDesc
*
aobjdesc
;
61
HSD_RObjAnimJoint
*
robj_anim
;
62
u32
flags
;
63
};
64
65
void
HSD_AObjInitAllocData
(
void
);
66
HSD_ObjAllocData
*
HSD_AObjGetAllocData
(
void
);
67
u32
HSD_AObjGetFlags
(
HSD_AObj
* aobj);
68
void
HSD_AObjSetFlags
(
HSD_AObj
* aobj,
u32
flags);
69
void
HSD_AObjClearFlags
(
HSD_AObj
* aobj,
u32
flags);
70
void
HSD_AObjSetFObj
(
HSD_AObj
* aobj,
HSD_FObj
* fobj);
71
void
HSD_AObjInitEndCallBack
(
void
);
72
void
HSD_AObjInvokeCallBacks
(
void
);
73
void
HSD_AObjReqAnim
(
HSD_AObj
* aobj,
f32
frame);
74
void
HSD_AObjStopAnim
(
HSD_AObj
* aobj,
void
*
obj
,
HSD_ObjUpdateFunc
func
);
75
76
void
HSD_AObjInterpretAnim
(
HSD_AObj
* aobj,
void
*
obj
,
77
HSD_ObjUpdateFunc
update_func);
78
79
HSD_AObj
*
HSD_AObjLoadDesc
(
HSD_AObjDesc
* aobjdesc);
80
void
HSD_AObjRemove
(
HSD_AObj
* aobj);
81
HSD_AObj
*
HSD_AObjAlloc
(
void
);
82
void
HSD_AObjFree
(
HSD_AObj
* aobj);
83
void
HSD_ForeachAnim
(
void
*
obj
,
HSD_Type
type,
HSD_TypeMask
mask
,
void
*
func
,
84
AObj_Arg_Type
arg_type, ...);
85
void
HSD_AObjSetRate
(
HSD_AObj
* aobj,
f32
rate);
86
void
HSD_AObjSetRewindFrame
(
HSD_AObj
* aobj,
f32
frame);
87
void
HSD_AObjSetEndFrame
(
HSD_AObj
* aobj,
f32
frame);
88
void
HSD_AObjSetCurrentFrame
(
HSD_AObj
* aobj,
f32
frame);
89
void
_HSD_AObjForgetMemory
(
void
* low,
void
* high);
90
91
static
inline
f32
HSD_AObjGetCurrFrame
(
HSD_AObj
* aobj)
92
{
93
HSD_ASSERT
(0x92, aobj);
94
return
aobj->
curr_frame
;
95
}
96
97
static
inline
f32
HSD_AObjGetEndFrame
(
HSD_AObj
* aobj)
98
{
99
HSD_ASSERT
(0xAA, aobj);
100
return
aobj->
end_frame
;
101
}
102
103
#endif
HSD_AObjReqAnim
void HSD_AObjReqAnim(HSD_AObj *aobj, f32 frame)
Definition
aobj.c:91
HSD_AObjInitAllocData
void HSD_AObjInitAllocData(void)
Definition
aobj.c:28
HSD_AObjSetFObj
void HSD_AObjSetFObj(HSD_AObj *aobj, HSD_FObj *fobj)
Definition
aobj.c:59
HSD_ForeachAnim
void HSD_ForeachAnim(void *obj, HSD_Type type, HSD_TypeMask mask, void *func, AObj_Arg_Type arg_type,...)
Definition
aobj.c:436
HSD_AObjFree
void HSD_AObjFree(HSD_AObj *aobj)
Definition
aobj.c:253
HSD_AObjSetCurrentFrame
void HSD_AObjSetCurrentFrame(HSD_AObj *aobj, f32 frame)
Definition
aobj.c:534
_HSD_AObjForgetMemory
void _HSD_AObjForgetMemory(void *low, void *high)
Definition
aobj.c:547
HSD_AObjGetFlags
u32 HSD_AObjGetFlags(HSD_AObj *aobj)
Definition
aobj.c:38
HSD_AObjInvokeCallBacks
void HSD_AObjInvokeCallBacks(void)
Definition
aobj.c:77
HSD_AObjClearFlags
void HSD_AObjClearFlags(HSD_AObj *aobj, u32 flags)
Definition
aobj.c:51
HSD_AObjSetRate
void HSD_AObjSetRate(HSD_AObj *aobj, f32 rate)
Definition
aobj.c:510
HSD_AObjLoadDesc
HSD_AObj * HSD_AObjLoadDesc(HSD_AObjDesc *aobjdesc)
Definition
aobj.c:179
HSD_AObjRemove
void HSD_AObjRemove(HSD_AObj *aobj)
Definition
aobj.c:220
HSD_AObjInterpretAnim
void HSD_AObjInterpretAnim(HSD_AObj *aobj, void *obj, HSD_ObjUpdateFunc update_func)
Definition
aobj.c:121
HSD_AObjStopAnim
void HSD_AObjStopAnim(HSD_AObj *aobj, void *obj, HSD_ObjUpdateFunc func)
Definition
aobj.c:107
HSD_AObjGetEndFrame
static f32 HSD_AObjGetEndFrame(HSD_AObj *aobj)
Definition
aobj.h:97
HSD_AObjSetRewindFrame
void HSD_AObjSetRewindFrame(HSD_AObj *aobj, f32 frame)
Definition
aobj.c:518
HSD_AObjSetFlags
void HSD_AObjSetFlags(HSD_AObj *aobj, u32 flags)
Definition
aobj.c:43
HSD_AObjGetCurrFrame
static f32 HSD_AObjGetCurrFrame(HSD_AObj *aobj)
Definition
aobj.h:91
HSD_AObjAlloc
HSD_AObj * HSD_AObjAlloc(void)
Definition
aobj.c:242
HSD_AObjGetAllocData
HSD_ObjAllocData * HSD_AObjGetAllocData(void)
Definition
aobj.c:33
HSD_AObjSetEndFrame
void HSD_AObjSetEndFrame(HSD_AObj *aobj, f32 frame)
Definition
aobj.c:526
HSD_AObjInitEndCallBack
void HSD_AObjInitEndCallBack(void)
Definition
aobj.c:71
AObj_Arg_Type
AObj_Arg_Type
Definition
aobj.h:19
AOBJ_ARG_AU
@ AOBJ_ARG_AU
Definition
aobj.h:23
AOBJ_ARG_AO
@ AOBJ_ARG_AO
Definition
aobj.h:24
AOBJ_ARG_AV
@ AOBJ_ARG_AV
Definition
aobj.h:22
AOBJ_ARG_AOTU
@ AOBJ_ARG_AOTU
Definition
aobj.h:31
AOBJ_ARG_A
@ AOBJ_ARG_A
Definition
aobj.h:20
AOBJ_ARG_AOU
@ AOBJ_ARG_AOU
Definition
aobj.h:27
AOBJ_ARG_AOT
@ AOBJ_ARG_AOT
Definition
aobj.h:28
AOBJ_ARG_AOTV
@ AOBJ_ARG_AOTV
Definition
aobj.h:30
AOBJ_ARG_AOV
@ AOBJ_ARG_AOV
Definition
aobj.h:26
AOBJ_ARG_AF
@ AOBJ_ARG_AF
Definition
aobj.h:21
AOBJ_ARG_AOTF
@ AOBJ_ARG_AOTF
Definition
aobj.h:29
AOBJ_ARG_AOF
@ AOBJ_ARG_AOF
Definition
aobj.h:25
debug.h
u32
unsigned long u32
Definition
types.h:9
f32
float f32
Definition
types.h:13
fobj.h
HSD_ASSERT
#define HSD_ASSERT(line, cond)
Definition
mnvibration.c:6
objalloc.h
object.h
HSD_Type
HSD_Type
Definition
object.h:18
HSD_TypeMask
HSD_TypeMask
Definition
object.h:40
platform.h
obj
void * obj
Definition
pobj.c:38
func
void(* func)(void)
Definition
state.c:131
mask
int mask
Definition
state.c:130
HSD_AObjDesc
Definition
aobj.h:50
HSD_AObjDesc::end_frame
f32 end_frame
Definition
aobj.h:52
HSD_AObjDesc::obj_id
u32 obj_id
Definition
aobj.h:54
HSD_AObjDesc::flags
u32 flags
Definition
aobj.h:51
HSD_AObjDesc::fobjdesc
HSD_FObjDesc * fobjdesc
Definition
aobj.h:53
HSD_AObj
Definition
aobj.h:40
HSD_AObj::hsd_obj
struct HSD_Obj * hsd_obj
Definition
aobj.h:47
HSD_AObj::rewind_frame
f32 rewind_frame
Definition
aobj.h:43
HSD_AObj::framerate
f32 framerate
Definition
aobj.h:45
HSD_AObj::curr_frame
f32 curr_frame
Definition
aobj.h:42
HSD_AObj::end_frame
f32 end_frame
Definition
aobj.h:44
HSD_AObj::flags
u32 flags
Definition
aobj.h:41
HSD_AObj::fobj
HSD_FObj * fobj
Definition
aobj.h:46
HSD_AnimJoint
Definition
aobj.h:57
HSD_AnimJoint::flags
u32 flags
Definition
aobj.h:62
HSD_AnimJoint::next
HSD_AnimJoint * next
Definition
aobj.h:59
HSD_AnimJoint::child
HSD_AnimJoint * child
Definition
aobj.h:58
HSD_AnimJoint::robj_anim
HSD_RObjAnimJoint * robj_anim
Definition
aobj.h:61
HSD_AnimJoint::aobjdesc
HSD_AObjDesc * aobjdesc
Definition
aobj.h:60
HSD_FObjDesc
Definition
fobj.h:53
HSD_FObj
Definition
fobj.h:32
HSD_ObjAllocData
Definition
objalloc.h:19
HSD_Obj
Definition
object.h:60
HSD_RObjAnimJoint
Definition
robj.h:84
forward.h
HSD_ObjUpdateFunc
void(* HSD_ObjUpdateFunc)(void *obj, enum_t type, HSD_ObjData *fval)
Definition
forward.h:106
callbackArg
Definition
aobj.h:34
callbackArg::d
u32 d
Definition
aobj.h:36
callbackArg::f
f32 f
Definition
aobj.h:35
callbackArg::v
void * v
Definition
aobj.h:37
src
sysdolphin
baselib
aobj.h
Generated by
1.17.0