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 <platform.h>
5
6#include "baselib/forward.h" // IWYU pragma: export
7
8#include "baselib/debug.h"
9#include "baselib/fobj.h"
10#include "baselib/objalloc.h"
11#include "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
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
79float fmod(float x, float y);
81void HSD_AObjRemove(HSD_AObj* aobj);
83void HSD_AObjFree(HSD_AObj* aobj);
84void HSD_ForeachAnim(void* obj, HSD_Type type, HSD_TypeMask mask, void* func,
85 AObj_Arg_Type arg_type, ...);
86void HSD_AObjSetRate(HSD_AObj* aobj, f32 rate);
87void HSD_AObjSetRewindFrame(HSD_AObj* aobj, f32 frame);
88void HSD_AObjSetEndFrame(HSD_AObj* aobj, f32 frame);
89void HSD_AObjSetCurrentFrame(HSD_AObj* aobj, f32 frame);
90void _HSD_AObjForgetMemory(void* low, void* high);
91
92static inline f32 HSD_AObjGetEndFrame(HSD_AObj* aobj)
93{
94 if (!aobj) {
95 __assert("aobj.h", 0xAAU, "aobj");
96 }
97 return aobj->end_frame;
98}
99
100#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:439
void HSD_AObjFree(HSD_AObj *aobj)
Definition aobj.c:256
float fmod(float x, float y)
Definition aobj.c:172
void HSD_AObjSetCurrentFrame(HSD_AObj *aobj, f32 frame)
Definition aobj.c:537
void _HSD_AObjForgetMemory(void *low, void *high)
Definition aobj.c:550
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:513
HSD_AObj * HSD_AObjLoadDesc(HSD_AObjDesc *aobjdesc)
Definition aobj.c:182
void HSD_AObjRemove(HSD_AObj *aobj)
Definition aobj.c:223
void HSD_AObjInterpretAnim(HSD_AObj *aobj, void *obj, HSD_ObjUpdateFunc update_func)
Definition aobj.c:117
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:92
void HSD_AObjSetRewindFrame(HSD_AObj *aobj, f32 frame)
Definition aobj.c:521
void HSD_AObjSetFlags(HSD_AObj *aobj, u32 flags)
Definition aobj.c:43
HSD_AObj * HSD_AObjAlloc(void)
Definition aobj.c:245
HSD_ObjAllocData * HSD_AObjGetAllocData(void)
Definition aobj.c:33
void HSD_AObjSetEndFrame(HSD_AObj *aobj, f32 frame)
Definition aobj.c:529
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
void __assert(char *str, u32 arg1, char *arg2)
Definition debug.c:43
HSD_Type
Definition object.h:18
HSD_TypeMask
Definition object.h:40
unsigned long u32
An unsigned 32-bit integer.
Definition platform.h:26
float f32
A 32-bit floating-point number.
Definition platform.h:62
void * obj
Definition pobj.c:49
void(* func)(void)
Definition state.c:134
int mask
Definition state.c:133
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:54
Definition fobj.h:33
Definition objalloc.h:21
Definition object.h:60
Definition robj.h:86
void(* HSD_ObjUpdateFunc)(void *obj, enum_t type, HSD_ObjData *fval)
Definition forward.h:99
Definition aobj.h:34
u32 d
Definition aobj.h:36
f32 f
Definition aobj.h:35
void * v
Definition aobj.h:37