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 <platform.h>
5
6#include "baselib/forward.h" // IWYU pragma: export
7
8#include "baselib/class.h"
9#include "baselib/fobj.h"
10#include "baselib/mobj.h"
11
12#include <dolphin/mtx.h>
13
14#define DOBJ_HIDDEN 0x1
15
16struct HSD_DObj {
18 HSD_DObj* next; // 0x04
19 HSD_MObj* mobj; // 0x08
20 HSD_PObj* pobj; // 0x0C
21 HSD_AObj* aobj; // 0x10
22 u32 flags; // 0x14
23};
24
31
34 void (*disp)(HSD_DObj* dobj, Mtx vmtx, Mtx pmtx, u32 rendermode); // 0x3C
35 int (*load)(HSD_DObj* dobj, HSD_DObjDesc* desc); // 0x40
36};
37
42
43#define HSD_DOBJ(o) ((HSD_DObj*) (o))
44#define HSD_DOBJ_INFO(i) ((HSD_DObjInfo*) (i))
45#define HSD_DOBJ_METHOD(o) HSD_DOBJ_INFO(HSD_CLASS_METHOD(o))
46
48u32 HSD_DObjGetFlags(HSD_DObj* dobj);
49void HSD_DObjSetFlags(HSD_DObj* dobj, u32 flags);
50void HSD_DObjClearFlags(HSD_DObj* dobj, u32 flags);
51void HSD_DObjModifyFlags(HSD_DObj* dobj, u32 flags, u32 mask);
52void HSD_DObjRemoveAnimByFlags(HSD_DObj* dobj, u32 flags);
53void HSD_DObjRemoveAnimAllByFlags(HSD_DObj* dobj, u32 flags);
54void HSD_DObjAddAnim(HSD_DObj* dobj, HSD_MatAnim* mat_anim,
55 HSD_ShapeAnimDObj* sh_anim);
56void HSD_DObjAddAnimAll(HSD_DObj* dobj, HSD_MatAnim* matanim,
57 HSD_ShapeAnimDObj* shapeanimdobj);
58void HSD_DObjReqAnimByFlags(HSD_DObj* dobj, f32 startframe, u32 flags);
59void HSD_DObjReqAnimAllByFlags(HSD_DObj* dobj, f32 startframe, u32 flags);
60void HSD_DObjReqAnimAll(HSD_DObj* dobj, f32 startframe);
61void HSD_DObjAnim(HSD_DObj* dobj);
62void HSD_DObjAnimAll(HSD_DObj* dobj);
64void HSD_DObjRemoveAll(HSD_DObj* dobj);
68void HSD_DObjDisp(HSD_DObj* dobj, Mtx vmtx, Mtx pmtx, u32 rendermode);
69
70void HSD_DObjRemove(HSD_DObj* dobj);
72void forceStringAllocation(HSD_DObj* dobj, HSD_MObj* mobj);
73
74#endif
void HSD_DObjRemoveAll(HSD_DObj *dobj)
Definition dobj.c:236
HSD_DObj * HSD_DObjLoadDesc(HSD_DObjDesc *desc)
Definition dobj.c:207
void HSD_DObjReqAnimAll(HSD_DObj *dobj, f32 startframe)
Definition dobj.c:143
HSD_DObj * HSD_DObjAlloc(void)
Definition dobj.c:259
void HSD_DObjReqAnimByFlags(HSD_DObj *dobj, f32 startframe, u32 flags)
Definition dobj.c:120
void HSD_DObjAnimAll(HSD_DObj *dobj)
Definition dobj.c:166
void HSD_DObjDisp(HSD_DObj *dobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
Definition dobj.c:304
u32 HSD_DObjGetFlags(HSD_DObj *dobj)
Definition dobj.c:25
void HSD_DObjClearFlags(HSD_DObj *dobj, u32 flags)
Definition dobj.c:40
void HSD_DObjSetFlags(HSD_DObj *dobj, u32 flags)
Definition dobj.c:33
void HSD_DObjRemoveAnimAllByFlags(HSD_DObj *dobj, u32 flags)
Definition dobj.c:70
void HSD_DObjRemoveAnimByFlags(HSD_DObj *dobj, u32 flags)
Definition dobj.c:56
void HSD_DObjAddAnim(HSD_DObj *dobj, HSD_MatAnim *mat_anim, HSD_ShapeAnimDObj *sh_anim)
Definition dobj.c:83
void HSD_DObjAnim(HSD_DObj *dobj)
Definition dobj.c:156
void HSD_DObjSetDefaultClass(HSD_ClassInfo *info)
Definition dobj.c:246
void HSD_DObjResolveRefs(HSD_DObj *dobj, HSD_DObjDesc *desc)
Definition dobj.c:269
void HSD_DObjModifyFlags(HSD_DObj *dobj, u32 flags, u32 mask)
Definition dobj.c:47
void HSD_DObjReqAnimAllByFlags(HSD_DObj *dobj, f32 startframe, u32 flags)
Definition dobj.c:130
void HSD_DObjAddAnimAll(HSD_DObj *dobj, HSD_MatAnim *matanim, HSD_ShapeAnimDObj *shapeanimdobj)
Definition dobj.c:102
void HSD_DObjSetCurrent(HSD_DObj *dobj)
Definition dobj.c:20
void forceStringAllocation(HSD_DObj *dobj, HSD_MObj *mobj)
Definition dobj.c:285
void HSD_DObjResolveRefsAll(HSD_DObj *dobj, HSD_DObjDesc *desc)
Definition dobj.c:277
void HSD_DObjRemove(HSD_DObj *dobj)
Definition dobj.c:231
int mask
Definition state.c:133
Definition aobj.h:40
Definition class.h:32
Definition class.h:14
Definition dobj.h:25
char * class_name
Definition dobj.h:26
HSD_MObjDesc * mobjdesc
Definition dobj.h:28
HSD_DObjDesc * next
Definition dobj.h:27
HSD_PObjDesc * pobjdesc
Definition dobj.h:29
Definition dobj.h:32
void(* disp)(HSD_DObj *dobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
Definition dobj.h:34
HSD_ClassInfo parent
Definition dobj.h:33
int(* load)(HSD_DObj *dobj, HSD_DObjDesc *desc)
Definition dobj.h:35
Definition dobj.h:16
u32 flags
Definition dobj.h:22
HSD_Class parent
Definition dobj.h:17
HSD_MObj * mobj
Definition dobj.h:19
HSD_DObj * next
Definition dobj.h:18
HSD_PObj * pobj
Definition dobj.h:20
HSD_AObj * aobj
Definition dobj.h:21
Definition mobj.h:104
Definition mobj.h:70
Definition mobj.h:128
Definition pobj.h:39
Definition pobj.h:23
Definition dobj.h:38
HSD_ShapeAnimDObj * next
Definition dobj.h:39
HSD_ShapeAnim * shapeanim
Definition dobj.h:40
Definition pobj.h:101