SSBM Decomp
Loading...
Searching...
No Matches
pobj.h
Go to the documentation of this file.
1#ifndef _pobj_h_
2#define _pobj_h_
3
4#include <platform.h>
5
6#include "baselib/forward.h" // IWYU pragma: export
8
9#include "baselib/aobj.h"
10#include "baselib/class.h"
11#include "baselib/list.h"
12
13#include <dolphin/gx/GXEnum.h>
14
15#define HSD_MTX_RIGID 1
16#define HSD_MTX_ENVELOPE 2
17
22
38
52
62
68
73
89
100
105
111
114 void (*disp)(HSD_PObj* pobj, Mtx vmtx, Mtx pmtx, u32 rendermode);
115 void (*setup_mtx)(HSD_PObj* pobj, Mtx vmtx, Mtx pmtx, u32 rendermode);
116 s32 (*load)(HSD_PObj* pobj, HSD_PObjDesc* desc);
117};
118
119extern HSD_PObjInfo hsdPObj;
120
121#define HSD_POBJ(o) ((HSD_PObj*) (o))
122#define HSD_POBJ_INFO(i) ((HSD_PObjInfo*) (i))
123#define HSD_POBJ_METHOD(o) HSD_POBJ_INFO(HSD_CLASS_METHOD(o))
124
129
131void HSD_PObjRemoveAnimAllByFlags(HSD_PObj* pobj, u32 flags);
132void HSD_PObjReqAnimByFlags(HSD_PObj* pobj, f32 startframe, u32 flags);
133void HSD_PObjReqAnimAllByFlags(HSD_PObj* pobj, f32 startframe, u32 flags);
134void HSD_ClearVtxDesc(void);
136
137void HSD_PObjClearMtxMark(void* obj, u32 mark);
138void HSD_PObjSetMtxMark(int idx, void* obj, u32 mark);
139void HSD_PObjGetMtxMark(int idx, void** obj, u32* mark);
142void HSD_PObjAnim(HSD_PObj* pobj);
148
149void HSD_PObjRemoveAnimByFlags(HSD_PObj* pobj, u32 flags);
150
151void HSD_PObjDisp(HSD_PObj* pobj, Mtx vmtx, Mtx pmtx, u32 rendermode);
152
153#endif
GXAttrType
Definition GXEnum.h:115
GXCompType
Definition GXEnum.h:407
GXCompCnt
Definition GXEnum.h:395
GXAttr
Definition GXEnum.h:84
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
unsigned short u16
An unsigned 16-bit integer.
Definition platform.h:23
signed long s32
A signed 32-bit integer.
Definition platform.h:14
unsigned char u8
An unsigned 8-bit integer.
Definition platform.h:20
u32 mark
Definition pobj.c:50
void * obj
Definition pobj.c:49
HSD_PObjInfo hsdPObj
Definition pobj.c:36
void HSD_PObjFree(HSD_PObj *)
Definition pobj.c:378
void HSD_PObjRemoveAnimByFlags(HSD_PObj *pobj, u32 flags)
Definition pobj.c:61
u32 HSD_PObjGetFlags(HSD_PObj *pobj)
Definition pobj.c:53
void HSD_PObjReqAnimAllByFlags(HSD_PObj *pobj, f32 startframe, u32 flags)
Definition pobj.c:131
HSD_PObj * HSD_PObjAlloc(void)
Definition pobj.c:371
void HSD_PObjSetDefaultClass(HSD_PObjInfo *info)
Definition pobj.c:363
void HSD_PObjDisp(HSD_PObj *pobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
Definition pobj.c:1234
void HSD_PObjAnimAll(HSD_PObj *)
Definition pobj.c:173
void HSD_PObjAnim(HSD_PObj *pobj)
Definition pobj.c:166
void HSD_ClearVtxDesc(void)
Definition pobj.c:441
void HSD_PObjResolveRefs(HSD_PObj *, HSD_PObjDesc *)
Definition pobj.c:406
void HSD_PObjClearMtxMark(void *obj, u32 mark)
Definition pobj.c:958
void HSD_PObjGetMtxMark(int idx, void **obj, u32 *mark)
Definition pobj.c:981
HSD_PObjInfo * HSD_PObjGetDefaultClass(void)
Definition pobj.c:358
void HSD_PObjRemoveAnimAllByFlags(HSD_PObj *pobj, u32 flags)
Definition pobj.c:74
void HSD_PObjRemoveAll(HSD_PObj *)
Definition pobj.c:347
HSD_PObj * HSD_PObjLoadDesc(HSD_PObjDesc *)
Definition pobj.c:321
void HSD_PObjReqAnimByFlags(HSD_PObj *pobj, f32 startframe, u32 flags)
Definition pobj.c:120
void HSD_PObjRemove(HSD_PObj *)
Definition pobj.c:342
void HSD_PObjAddAnimAll(HSD_PObj *, HSD_ShapeAnim *)
Definition pobj.c:105
void HSD_PObjResolveRefsAll(HSD_PObj *, HSD_PObjDesc *)
Definition pobj.c:432
void HSD_PObjAddAnim(HSD_PObj *, HSD_ShapeAnim *)
Definition pobj.c:87
void HSD_PObjSetMtxMark(int idx, void *obj, u32 mark)
Definition pobj.c:968
Definition aobj.h:50
Definition aobj.h:40
Definition class.h:32
Definition class.h:14
Definition pobj.h:69
HSD_Joint * joint
Definition pobj.h:70
f32 weight
Definition pobj.h:71
Definition pobj.h:63
HSD_Envelope * next
Definition pobj.h:64
f32 weight
Definition pobj.h:66
HSD_JObj * jobj
Definition pobj.h:65
Definition jobj.h:108
Definition jobj.h:130
Definition pobj.h:39
char * class_name
Definition pobj.h:40
HSD_Joint * joint
Definition pobj.h:47
u16 flags
Definition pobj.h:43
HSD_VtxDescList * verts
Definition pobj.h:42
union HSD_PObjDesc::@246 u
HSD_ShapeSetDesc * shape_set
Definition pobj.h:48
HSD_EnvelopeDesc ** envelope_p
Definition pobj.h:49
HSD_PObjDesc * next
Definition pobj.h:41
u8 * display
Definition pobj.h:45
u16 n_display
Definition pobj.h:44
Definition pobj.h:112
void(* setup_mtx)(HSD_PObj *pobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
Definition pobj.h:115
void(* disp)(HSD_PObj *pobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
Definition pobj.h:114
s32(* load)(HSD_PObj *pobj, HSD_PObjDesc *desc)
Definition pobj.h:116
HSD_ClassInfo parent
Definition pobj.h:113
Definition pobj.h:23
u16 flags
Definition pobj.h:27
HSD_VtxDescList * verts
Definition pobj.h:26
u8 * display
u8 primitive, u16 vtxcnt, u16* indices
Definition pobj.h:30
union HSD_PObj::HSD_PObjUnion u
HSD_PObj * next
Definition pobj.h:25
u16 n_display
Definition pobj.h:28
HSD_Class parent
Definition pobj.h:24
Definition list.h:6
Definition dobj.h:37
Definition pobj.h:106
HSD_ShapeAnimJoint * child
Definition pobj.h:107
HSD_ShapeAnimJoint * next
Definition pobj.h:108
HSD_ShapeAnimDObj * shapeanimdobj
Definition pobj.h:109
Definition pobj.h:101
HSD_AObjDesc * aobjdesc
Definition pobj.h:103
HSD_ShapeAnim * next
Definition pobj.h:102
Definition pobj.h:90
s32 nb_normal_index
Definition pobj.h:96
HSD_VtxDescList * normal_desc
Definition pobj.h:97
u8 ** normal_idx_list
Definition pobj.h:98
u16 nb_shape
Definition pobj.h:92
s32 nb_vertex_index
Definition pobj.h:93
HSD_VtxDescList * vertex_desc
Definition pobj.h:94
u16 flags
Definition pobj.h:91
u8 ** vertex_idx_list
Definition pobj.h:95
Definition pobj.h:74
f32 bl
Definition pobj.h:85
union HSD_ShapeSet::@247 blend
int nb_vertex_index
Definition pobj.h:77
s32 nb_normal_index
Definition pobj.h:80
f32 * bp
Definition pobj.h:84
u8 ** normal_idx_list
Definition pobj.h:82
u16 flags
Definition pobj.h:75
u8 ** vertex_idx_list
Definition pobj.h:79
u16 nb_shape
Definition pobj.h:76
HSD_VtxDescList * normal_desc
Definition pobj.h:81
HSD_VtxDescList * vertex_desc
Definition pobj.h:78
HSD_AObj * aobj
Definition pobj.h:87
Definition pobj.h:53
u16 stride
Definition pobj.h:59
GXCompCnt comp_cnt
Definition pobj.h:56
GXCompType comp_type
Definition pobj.h:57
u8 frac
Definition pobj.h:58
void * vertex
Definition pobj.h:60
GXAttrType attr_type
Definition pobj.h:55
GXAttr attr
Definition pobj.h:54
Definition pobj.h:18
HSD_AObj * aobj
Definition pobj.h:20
u32 data[8]
Definition pobj.h:19
Definition pobj.h:31
HSD_JObj * jobj
Definition pobj.h:32
HSD_ShapeSet * shape_set
Definition pobj.h:33
HSD_SList * envelope_list
Definition pobj.h:34
struct _unk_struct_pobj * unk
Definition pobj.h:35