SSBM Decomp
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
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
33
34typedef union _callbackArg {
37 void* v;
39
49
56
64
65void HSD_AObjInitAllocData(void);
68void HSD_AObjSetFlags(HSD_AObj* aobj, u32 flags);
69void HSD_AObjClearFlags(HSD_AObj* aobj, u32 flags);
70void HSD_AObjSetFObj(HSD_AObj* aobj, HSD_FObj* fobj);
73void HSD_AObjReqAnim(HSD_AObj* aobj, f32 frame);
75
76void HSD_AObjInterpretAnim(HSD_AObj* aobj, void* obj,
77 HSD_ObjUpdateFunc update_func);
78
80void HSD_AObjRemove(HSD_AObj* aobj);
82void HSD_AObjFree(HSD_AObj* aobj);
83void HSD_ForeachAnim(void* obj, HSD_Type type, HSD_TypeMask mask, void* func,
84 AObj_Arg_Type arg_type, ...);
85void HSD_AObjSetRate(HSD_AObj* aobj, f32 rate);
86void HSD_AObjSetRewindFrame(HSD_AObj* aobj, f32 frame);
87void HSD_AObjSetEndFrame(HSD_AObj* aobj, f32 frame);
88void HSD_AObjSetCurrentFrame(HSD_AObj* aobj, f32 frame);
89void _HSD_AObjForgetMemory(void* low, void* high);
90
91static inline f32 HSD_AObjGetCurrFrame(HSD_AObj* aobj)
92{
93 HSD_ASSERT(0x92, aobj);
94 return aobj->curr_frame;
95}
96
97static inline f32 HSD_AObjGetEndFrame(HSD_AObj* aobj)
98{
99 HSD_ASSERT(0xAA, aobj);
100 return aobj->end_frame;
101}
102
103#endif
void HSD_AObjReqAnim(HSD_AObj *aobj, f32 frame)
Definition aobj.c:91
void HSD_AObjInitAllocData(void)
Definition aobj.c:28
void HSD_AObjSetFObj(HSD_AObj *aobj, HSD_FObj *fobj)
Definition aobj.c:59
void HSD_ForeachAnim(void *obj, HSD_Type type, HSD_TypeMask mask, void *func, AObj_Arg_Type arg_type,...)
Definition aobj.c:436
void HSD_AObjFree(HSD_AObj *aobj)
Definition aobj.c:253
void HSD_AObjSetCurrentFrame(HSD_AObj *aobj, f32 frame)
Definition aobj.c:534
void _HSD_AObjForgetMemory(void *low, void *high)
Definition aobj.c:547
u32 HSD_AObjGetFlags(HSD_AObj *aobj)
Definition aobj.c:38
void HSD_AObjInvokeCallBacks(void)
Definition aobj.c:77
void HSD_AObjClearFlags(HSD_AObj *aobj, u32 flags)
Definition aobj.c:51
void HSD_AObjSetRate(HSD_AObj *aobj, f32 rate)
Definition aobj.c:510
HSD_AObj * HSD_AObjLoadDesc(HSD_AObjDesc *aobjdesc)
Definition aobj.c:179
void HSD_AObjRemove(HSD_AObj *aobj)
Definition aobj.c:220
void HSD_AObjInterpretAnim(HSD_AObj *aobj, void *obj, HSD_ObjUpdateFunc update_func)
Definition aobj.c:121
void HSD_AObjStopAnim(HSD_AObj *aobj, void *obj, HSD_ObjUpdateFunc func)
Definition aobj.c:107
static f32 HSD_AObjGetEndFrame(HSD_AObj *aobj)
Definition aobj.h:97
void HSD_AObjSetRewindFrame(HSD_AObj *aobj, f32 frame)
Definition aobj.c:518
void HSD_AObjSetFlags(HSD_AObj *aobj, u32 flags)
Definition aobj.c:43
static f32 HSD_AObjGetCurrFrame(HSD_AObj *aobj)
Definition aobj.h:91
HSD_AObj * HSD_AObjAlloc(void)
Definition aobj.c:242
HSD_ObjAllocData * HSD_AObjGetAllocData(void)
Definition aobj.c:33
void HSD_AObjSetEndFrame(HSD_AObj *aobj, f32 frame)
Definition aobj.c:526
void HSD_AObjInitEndCallBack(void)
Definition aobj.c:71
AObj_Arg_Type
Definition aobj.h:19
@ AOBJ_ARG_AU
Definition aobj.h:23
@ AOBJ_ARG_AO
Definition aobj.h:24
@ AOBJ_ARG_AV
Definition aobj.h:22
@ AOBJ_ARG_AOTU
Definition aobj.h:31
@ AOBJ_ARG_A
Definition aobj.h:20
@ AOBJ_ARG_AOU
Definition aobj.h:27
@ AOBJ_ARG_AOT
Definition aobj.h:28
@ AOBJ_ARG_AOTV
Definition aobj.h:30
@ AOBJ_ARG_AOV
Definition aobj.h:26
@ AOBJ_ARG_AF
Definition aobj.h:21
@ AOBJ_ARG_AOTF
Definition aobj.h:29
@ AOBJ_ARG_AOF
Definition aobj.h:25
unsigned long u32
Definition types.h:9
float f32
Definition types.h:13
#define HSD_ASSERT(line, cond)
Definition mnvibration.c:6
HSD_Type
Definition object.h:18
HSD_TypeMask
Definition object.h:40
void * obj
Definition pobj.c:38
void(* func)(void)
Definition state.c:131
int mask
Definition state.c:130
Definition aobj.h:50
f32 end_frame
Definition aobj.h:52
u32 obj_id
Definition aobj.h:54
u32 flags
Definition aobj.h:51
HSD_FObjDesc * fobjdesc
Definition aobj.h:53
Definition aobj.h:40
struct HSD_Obj * hsd_obj
Definition aobj.h:47
f32 rewind_frame
Definition aobj.h:43
f32 framerate
Definition aobj.h:45
f32 curr_frame
Definition aobj.h:42
f32 end_frame
Definition aobj.h:44
u32 flags
Definition aobj.h:41
HSD_FObj * fobj
Definition aobj.h:46
Definition aobj.h:57
u32 flags
Definition aobj.h:62
HSD_AnimJoint * next
Definition aobj.h:59
HSD_AnimJoint * child
Definition aobj.h:58
HSD_RObjAnimJoint * robj_anim
Definition aobj.h:61
HSD_AObjDesc * aobjdesc
Definition aobj.h:60
Definition fobj.h:53
Definition fobj.h:32
Definition objalloc.h:19
Definition object.h:60
Definition robj.h:84
void(* HSD_ObjUpdateFunc)(void *obj, enum_t type, HSD_ObjData *fval)
Definition forward.h:106
Definition aobj.h:34
u32 d
Definition aobj.h:36
f32 f
Definition aobj.h:35
void * v
Definition aobj.h:37