SSBM Decomp
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>
11
19
25
28 int (*load)(HSD_WObj* wobj, HSD_WObjDesc* desc);
29};
30
35
37
38#define HSD_WOBJ_INFO(i) ((HSD_WObjInfo*) (i))
39#define HSD_WOBJ_METHOD(o) HSD_WOBJ_INFO(HSD_OBJECT_METHOD(o))
40
41static inline void HSD_WObjUnref(HSD_WObj* wobj)
42{
43 if (wobj == NULL) {
44 return;
45 }
46
47 if (ref_DEC(wobj) != 0) {
48 hsdDelete(wobj);
49 }
50}
51
52static inline void HSD_WObjClearFlags(HSD_WObj* wobj, u32 flags)
53{
54 wobj->flags &= ~flags;
55}
56
58void HSD_WObjReqAnim(HSD_WObj* wobj, f32 frame);
59void HSD_WObjAddAnim(HSD_WObj* wobj, HSD_WObjAnim* anim);
61void HSD_WObjInit(HSD_WObj* wobj, HSD_WObjDesc* desc);
71
72#endif
static void hsdDelete(void *object)
Definition class.h:85
struct Vec Vec3
unsigned int u32
Definition types.h:13
float f32
Definition types.h:18
static bool ref_DEC(void *o)
Definition object.h:74
#define NULL
Definition stddef.h:19
Definition aobj.h:52
Definition aobj.h:42
Definition class.h:32
Definition object.h:66
Definition object.h:60
Definition robj.h:88
Definition robj.h:73
Definition robj.h:61
Definition wobj.h:31
HSD_RObjAnimJoint * robjanim
Definition wobj.h:33
HSD_AObjDesc * aobjdesc
Definition wobj.h:32
Definition wobj.h:20
char * class_name
Definition wobj.h:21
HSD_RObjDesc * robjdesc
Definition wobj.h:23
Vec3 pos
Definition wobj.h:22
Definition wobj.h:26
int(* load)(HSD_WObj *wobj, HSD_WObjDesc *desc)
Definition wobj.h:28
HSD_ObjInfo parent
Definition wobj.h:27
Definition wobj.h:12
HSD_AObj * aobj
Definition wobj.h:16
HSD_Obj parent
Definition wobj.h:13
Vec3 pos
Definition wobj.h:15
u32 flags
Definition wobj.h:14
HSD_RObj * robj
Definition wobj.h:17
HSD_WObjInfo hsdWObj
Definition wobj.c:14
static void HSD_WObjUnref(HSD_WObj *wobj)
Definition wobj.h:41
void HSD_WObjSetPositionX(HSD_WObj *, f32)
Definition wobj.c:161
void HSD_WObjInterpretAnim(HSD_WObj *wobj)
Definition wobj.c:88
void HSD_WObjSetDefaultClass(HSD_ClassInfo *info)
Definition wobj.c:121
void HSD_WObjReqAnim(HSD_WObj *wobj, f32 frame)
Definition wobj.c:27
void HSD_WObjSetPositionZ(HSD_WObj *, f32)
Definition wobj.c:197
void HSD_WObjSetPosition(HSD_WObj *, Vec3 *)
Definition wobj.c:150
void HSD_WObjInit(HSD_WObj *wobj, HSD_WObjDesc *desc)
Definition wobj.c:107
HSD_WObj * HSD_WObjLoadDesc(HSD_WObjDesc *desc)
Definition wobj.c:131
void HSD_WObjRemoveAnim(HSD_WObj *wobj)
Definition wobj.c:18
void HSD_WObjSetPositionY(HSD_WObj *, f32)
Definition wobj.c:179
void HSD_WObjAddAnim(HSD_WObj *wobj, HSD_WObjAnim *anim)
Definition wobj.c:35
void HSD_WObjGetPosition(HSD_WObj *, Vec3 *)
Definition wobj.c:215
HSD_WObj * HSD_WObjAlloc(void)
Definition wobj.c:233
void WObjSetupPosition(HSD_WObj *wobj)
static void HSD_WObjClearFlags(HSD_WObj *wobj, u32 flags)
Definition wobj.h:52