SSBM Decomp
Loading...
Searching...
No Matches
dobj.h
Go to the documentation of this file.
1#ifndef SYSDOLPHIN_BASELIB_DOBJ_H
2#define SYSDOLPHIN_BASELIB_DOBJ_H
3
4#include <Runtime/platform.h>
5
6#include <sysdolphin/baselib/forward.h> // IWYU pragma: export
7
8#include <dolphin/mtx.h>
11
12#define DOBJ_HIDDEN 0x1
13
14struct HSD_DObj {
16 HSD_DObj* next; // 0x04
17 HSD_MObj* mobj; // 0x08
18 HSD_PObj* pobj; // 0x0C
19 HSD_AObj* aobj; // 0x10
20 u32 flags; // 0x14
21};
22
29
32 void (*disp)(HSD_DObj* dobj, Mtx vmtx, Mtx pmtx, u32 rendermode); // 0x3C
33 int (*load)(HSD_DObj* dobj, HSD_DObjDesc* desc); // 0x40
34};
35
40
41#define HSD_DOBJ(o) ((HSD_DObj*) (o))
42#define HSD_DOBJ_INFO(i) ((HSD_DObjInfo*) (i))
43#define HSD_DOBJ_METHOD(o) HSD_DOBJ_INFO(HSD_CLASS_METHOD(o))
44
47void HSD_DObjSetFlags(HSD_DObj* dobj, u32 flags);
48void HSD_DObjClearFlags(HSD_DObj* dobj, u32 flags);
49void HSD_DObjModifyFlags(HSD_DObj* dobj, u32 flags, u32 mask);
50void HSD_DObjRemoveAnimByFlags(HSD_DObj* dobj, u32 flags);
52void HSD_DObjAddAnim(HSD_DObj* dobj, HSD_MatAnim* mat_anim,
53 HSD_ShapeAnimDObj* sh_anim);
54void HSD_DObjAddAnimAll(HSD_DObj* dobj, HSD_MatAnim* matanim,
55 HSD_ShapeAnimDObj* shapeanimdobj);
56void HSD_DObjReqAnimByFlags(HSD_DObj* dobj, f32 startframe, u32 flags);
57void HSD_DObjReqAnimAllByFlags(HSD_DObj* dobj, f32 startframe, u32 flags);
58void HSD_DObjReqAnimAll(HSD_DObj* dobj, f32 startframe);
59void HSD_DObjAnim(HSD_DObj* dobj);
60void HSD_DObjAnimAll(HSD_DObj* dobj);
62void HSD_DObjRemoveAll(HSD_DObj* dobj);
66void HSD_DObjDisp(HSD_DObj* dobj, Mtx vmtx, Mtx pmtx, u32 rendermode);
67
68void HSD_DObjRemove(HSD_DObj* dobj);
70void forceStringAllocation(HSD_DObj* dobj, HSD_MObj* mobj);
72
73#endif
HSD_DObjInfo hsdDObj
Definition dobj.c:11
void HSD_DObjRemoveAll(HSD_DObj *dobj)
Definition dobj.c:231
HSD_DObj * HSD_DObjLoadDesc(HSD_DObjDesc *desc)
Definition dobj.c:202
void HSD_DObjReqAnimAll(HSD_DObj *dobj, f32 startframe)
Definition dobj.c:140
HSD_DObj * HSD_DObjAlloc(void)
Definition dobj.c:253
void HSD_DObjReqAnimByFlags(HSD_DObj *dobj, f32 startframe, u32 flags)
Definition dobj.c:117
void HSD_DObjAnimAll(HSD_DObj *dobj)
Definition dobj.c:163
void HSD_DObjDisp(HSD_DObj *dobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
Definition dobj.c:295
u32 HSD_DObjGetFlags(HSD_DObj *dobj)
Definition dobj.c:22
void HSD_DObjClearFlags(HSD_DObj *dobj, u32 flags)
Definition dobj.c:37
void HSD_DObjSetFlags(HSD_DObj *dobj, u32 flags)
Definition dobj.c:30
void HSD_DObjRemoveAnimAllByFlags(HSD_DObj *dobj, u32 flags)
Definition dobj.c:67
void HSD_DObjRemoveAnimByFlags(HSD_DObj *dobj, u32 flags)
Definition dobj.c:53
void HSD_DObjAddAnim(HSD_DObj *dobj, HSD_MatAnim *mat_anim, HSD_ShapeAnimDObj *sh_anim)
Definition dobj.c:80
void HSD_DObjAnim(HSD_DObj *dobj)
Definition dobj.c:153
void HSD_DObjSetDefaultClass(HSD_ClassInfo *info)
Definition dobj.c:241
void HSD_DObjResolveRefs(HSD_DObj *dobj, HSD_DObjDesc *desc)
Definition dobj.c:262
void HSD_DObjModifyFlags(HSD_DObj *dobj, u32 flags, u32 mask)
Definition dobj.c:44
void HSD_DObjReqAnimAllByFlags(HSD_DObj *dobj, f32 startframe, u32 flags)
Definition dobj.c:127
void HSD_DObjAddAnimAll(HSD_DObj *dobj, HSD_MatAnim *matanim, HSD_ShapeAnimDObj *shapeanimdobj)
Definition dobj.c:99
void HSD_DObjSetCurrent(HSD_DObj *dobj)
Definition dobj.c:17
void forceStringAllocation(HSD_DObj *dobj, HSD_MObj *mobj)
Definition dobj.c:278
void HSD_DObjResolveRefsAll(HSD_DObj *dobj, HSD_DObjDesc *desc)
Definition dobj.c:270
void HSD_DObjRemove(HSD_DObj *dobj)
Definition dobj.c:226
f32 Mtx[3][4]
Definition mtx.h:50
unsigned int u32
Definition types.h:13
float f32
Definition types.h:18
static Mtx vmtx
Definition psdisp.c:54
Definition aobj.h:40
Definition class.h:32
Definition class.h:14
Definition dobj.h:23
char * class_name
Definition dobj.h:24
HSD_MObjDesc * mobjdesc
Definition dobj.h:26
HSD_DObjDesc * next
Definition dobj.h:25
HSD_PObjDesc * pobjdesc
Definition dobj.h:27
Definition dobj.h:30
void(* disp)(HSD_DObj *dobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
Definition dobj.h:32
HSD_ClassInfo parent
Definition dobj.h:31
int(* load)(HSD_DObj *dobj, HSD_DObjDesc *desc)
Definition dobj.h:33
Definition dobj.h:14
u32 flags
Definition dobj.h:20
HSD_Class parent
Definition dobj.h:15
HSD_MObj * mobj
Definition dobj.h:17
HSD_DObj * next
Definition dobj.h:16
HSD_PObj * pobj
Definition dobj.h:18
HSD_AObj * aobj
Definition dobj.h:19
Definition mobj.h:105
Definition mobj.h:71
Definition mobj.h:129
Definition pobj.h:45
Definition pobj.h:19
Definition dobj.h:36
HSD_ShapeAnimDObj * next
Definition dobj.h:37
HSD_ShapeAnim * shapeanim
Definition dobj.h:38
Definition pobj.h:110