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
8
9#include "baselib/class.h"
10#include "baselib/fobj.h"
11#include "baselib/mobj.h"
12
13#define DOBJ_HIDDEN 0x1
14
15struct HSD_DObj {
17 HSD_DObj* next; // 0x04
18 HSD_MObj* mobj; // 0x08
19 HSD_PObj* pobj; // 0x0C
20 HSD_AObj* aobj; // 0x10
21 u32 flags; // 0x14
22};
23
30
33 void (*disp)(HSD_DObj* dobj, Mtx vmtx, Mtx pmtx, u32 rendermode); // 0x3C
34 int (*load)(HSD_DObj* dobj, HSD_DObjDesc* desc); // 0x40
35};
36
41
42#define HSD_DOBJ(o) ((HSD_DObj*) (o))
43#define HSD_DOBJ_INFO(i) ((HSD_DObjInfo*) (i))
44#define HSD_DOBJ_METHOD(o) HSD_DOBJ_INFO(HSD_CLASS_METHOD(o))
45
48void HSD_DObjSetFlags(HSD_DObj* dobj, u32 flags);
49void HSD_DObjClearFlags(HSD_DObj* dobj, u32 flags);
50void HSD_DObjModifyFlags(HSD_DObj* dobj, u32 flags, u32 mask);
51void HSD_DObjRemoveAnimByFlags(HSD_DObj* dobj, u32 flags);
53void HSD_DObjAddAnim(HSD_DObj* dobj, HSD_MatAnim* mat_anim,
54 HSD_ShapeAnimDObj* sh_anim);
55void HSD_DObjAddAnimAll(HSD_DObj* dobj, HSD_MatAnim* matanim,
56 HSD_ShapeAnimDObj* shapeanimdobj);
57void HSD_DObjReqAnimByFlags(HSD_DObj* dobj, f32 startframe, u32 flags);
58void HSD_DObjReqAnimAllByFlags(HSD_DObj* dobj, f32 startframe, u32 flags);
59void HSD_DObjReqAnimAll(HSD_DObj* dobj, f32 startframe);
60void HSD_DObjAnim(HSD_DObj* dobj);
61void HSD_DObjAnimAll(HSD_DObj* dobj);
63void HSD_DObjRemoveAll(HSD_DObj* dobj);
67void HSD_DObjDisp(HSD_DObj* dobj, Mtx vmtx, Mtx pmtx, u32 rendermode);
68
69void HSD_DObjRemove(HSD_DObj* dobj);
71void forceStringAllocation(HSD_DObj* dobj, HSD_MObj* mobj);
72
73#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
f32 Mtx[3][4]
Definition forward.h:6
unsigned long u32
An unsigned 32-bit integer.
Definition platform.h:26
float f32
A 32-bit floating-point number.
Definition platform.h:62
int mask
Definition state.c:133
Definition aobj.h:40
Definition class.h:32
Definition class.h:14
Definition dobj.h:24
char * class_name
Definition dobj.h:25
HSD_MObjDesc * mobjdesc
Definition dobj.h:27
HSD_DObjDesc * next
Definition dobj.h:26
HSD_PObjDesc * pobjdesc
Definition dobj.h:28
Definition dobj.h:31
void(* disp)(HSD_DObj *dobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
Definition dobj.h:33
HSD_ClassInfo parent
Definition dobj.h:32
int(* load)(HSD_DObj *dobj, HSD_DObjDesc *desc)
Definition dobj.h:34
Definition dobj.h:15
u32 flags
Definition dobj.h:21
HSD_Class parent
Definition dobj.h:16
HSD_MObj * mobj
Definition dobj.h:18
HSD_DObj * next
Definition dobj.h:17
HSD_PObj * pobj
Definition dobj.h:19
HSD_AObj * aobj
Definition dobj.h:20
Definition mobj.h:104
Definition mobj.h:70
Definition mobj.h:128
Definition pobj.h:39
Definition pobj.h:23
Definition dobj.h:37
HSD_ShapeAnimDObj * next
Definition dobj.h:38
HSD_ShapeAnim * shapeanim
Definition dobj.h:39
Definition pobj.h:101