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
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 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
55static inline void HSD_WObjClearFlags(HSD_WObj* wobj, u32 flags)
56{
57 wobj->flags &= ~flags;
58}
59
61void HSD_WObjReqAnim(HSD_WObj* wobj, f32 frame);
62void HSD_WObjAddAnim(HSD_WObj* wobj, HSD_WObjAnim* anim);
74
75#endif
struct Vec Vec3
unsigned long u32
Definition types.h:9
float f32
Definition types.h:13
u8 desc[6][3]
Definition mnruleplus.c:98
static bool ref_DEC(void *o)
Definition object.h:74
#define HSD_OBJECT_METHOD(o)
Definition object.h:15
#define NULL
Definition stddef.h:14
Definition aobj.h:50
Definition aobj.h:40
Definition class.h:32
Definition class.h:14
Definition object.h:66
Definition object.h:60
Definition robj.h:84
Definition robj.h:71
Definition robj.h:59
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:55