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/aobj.h"
7#include "baselib/class.h"
8
9#include "baselib/forward.h" // IWYU pragma: export
10
11#include "baselib/list.h"
12
13#include <dolphin/gx/GXEnum.h>
14#include <dolphin/mtx.h>
15
16#define HSD_MTX_RIGID 1
17#define HSD_MTX_ENVELOPE 2
18
20 u32 data[8];
22};
23
39
53
55 GXAttr attr;
56 GXAttrType attr_type;
57 GXCompCnt comp_cnt;
58 GXCompType comp_type;
59 u8 frac;
60 u16 stride;
61 void* vertex;
62};
63
69
74
90
101
106
112
115 void (*disp)(HSD_PObj* pobj, Mtx vmtx, Mtx pmtx, u32 rendermode);
116 void (*setup_mtx)(HSD_PObj* pobj, Mtx vmtx, Mtx pmtx, u32 rendermode);
117 s32 (*load)(HSD_PObj* pobj, HSD_PObjDesc* desc);
118};
119
120extern HSD_PObjInfo hsdPObj;
121
122#define HSD_POBJ(o) ((HSD_PObj*) (o))
123#define HSD_POBJ_INFO(i) ((HSD_PObjInfo*) (i))
124#define HSD_POBJ_METHOD(o) HSD_POBJ_INFO(HSD_CLASS_METHOD(o))
125
130
131u32 HSD_PObjGetFlags(HSD_PObj* pobj);
132void HSD_PObjRemoveAnimAllByFlags(HSD_PObj* pobj, u32 flags);
133void HSD_PObjReqAnimByFlags(HSD_PObj* pobj, f32 startframe, u32 flags);
134void HSD_PObjReqAnimAllByFlags(HSD_PObj* pobj, f32 startframe, u32 flags);
135void HSD_ClearVtxDesc(void);
137
138void HSD_PObjClearMtxMark(void* obj, u32 mark);
139void HSD_PObjSetMtxMark(int idx, void* obj, u32 mark);
140void HSD_PObjGetMtxMark(int idx, void** obj, u32* mark);
143void HSD_PObjAnim(HSD_PObj* pobj);
149
150void HSD_PObjRemoveAnimByFlags(HSD_PObj* pobj, u32 flags);
151
152void HSD_PObjDisp(HSD_PObj* pobj, Mtx vmtx, Mtx pmtx, u32 rendermode);
153
154#endif
u32 mark
Definition pobj.c:44
void * obj
Definition pobj.c:43
HSD_PObjInfo hsdPObj
Definition pobj.c:30
void HSD_PObjFree(HSD_PObj *)
Definition pobj.c:372
void HSD_PObjRemoveAnimByFlags(HSD_PObj *pobj, u32 flags)
Definition pobj.c:55
u32 HSD_PObjGetFlags(HSD_PObj *pobj)
Definition pobj.c:47
void HSD_PObjReqAnimAllByFlags(HSD_PObj *pobj, f32 startframe, u32 flags)
Definition pobj.c:125
HSD_PObj * HSD_PObjAlloc(void)
Definition pobj.c:365
void HSD_PObjSetDefaultClass(HSD_PObjInfo *info)
Definition pobj.c:357
void HSD_PObjDisp(HSD_PObj *pobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
Definition pobj.c:1228
void HSD_PObjAnimAll(HSD_PObj *)
Definition pobj.c:167
void HSD_PObjAnim(HSD_PObj *pobj)
Definition pobj.c:160
void HSD_ClearVtxDesc(void)
Definition pobj.c:435
void HSD_PObjResolveRefs(HSD_PObj *, HSD_PObjDesc *)
Definition pobj.c:400
void HSD_PObjClearMtxMark(void *obj, u32 mark)
Definition pobj.c:952
void HSD_PObjGetMtxMark(int idx, void **obj, u32 *mark)
Definition pobj.c:975
HSD_PObjInfo * HSD_PObjGetDefaultClass(void)
Definition pobj.c:352
void HSD_PObjRemoveAnimAllByFlags(HSD_PObj *pobj, u32 flags)
Definition pobj.c:68
void HSD_PObjRemoveAll(HSD_PObj *)
Definition pobj.c:341
HSD_PObj * HSD_PObjLoadDesc(HSD_PObjDesc *)
Definition pobj.c:315
void HSD_PObjReqAnimByFlags(HSD_PObj *pobj, f32 startframe, u32 flags)
Definition pobj.c:114
void HSD_PObjRemove(HSD_PObj *)
Definition pobj.c:336
void HSD_PObjAddAnimAll(HSD_PObj *, HSD_ShapeAnim *)
Definition pobj.c:99
void HSD_PObjResolveRefsAll(HSD_PObj *, HSD_PObjDesc *)
Definition pobj.c:426
void HSD_PObjAddAnim(HSD_PObj *, HSD_ShapeAnim *)
Definition pobj.c:81
void HSD_PObjSetMtxMark(int idx, void *obj, u32 mark)
Definition pobj.c:962
Definition aobj.h:51
Definition aobj.h:41
Definition class.h:32
Definition class.h:14
Definition pobj.h:70
HSD_Joint * joint
Definition pobj.h:71
f32 weight
Definition pobj.h:72
Definition pobj.h:64
HSD_Envelope * next
Definition pobj.h:65
f32 weight
Definition pobj.h:67
HSD_JObj * jobj
Definition pobj.h:66
Definition jobj.h:107
Definition jobj.h:130
Definition pobj.h:40
char * class_name
Definition pobj.h:41
HSD_Joint * joint
Definition pobj.h:48
u16 flags
Definition pobj.h:44
HSD_VtxDescList * verts
Definition pobj.h:43
HSD_ShapeSetDesc * shape_set
Definition pobj.h:49
HSD_EnvelopeDesc ** envelope_p
Definition pobj.h:50
union HSD_PObjDesc::@362 u
HSD_PObjDesc * next
Definition pobj.h:42
u8 * display
Definition pobj.h:46
u16 n_display
Definition pobj.h:45
Definition pobj.h:113
void(* setup_mtx)(HSD_PObj *pobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
Definition pobj.h:116
void(* disp)(HSD_PObj *pobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
Definition pobj.h:115
s32(* load)(HSD_PObj *pobj, HSD_PObjDesc *desc)
Definition pobj.h:117
HSD_ClassInfo parent
Definition pobj.h:114
Definition pobj.h:24
u16 flags
Definition pobj.h:28
HSD_VtxDescList * verts
Definition pobj.h:27
u8 * display
#u8 primitive, #u16 vtxcnt, #u16* indices
Definition pobj.h:31
union HSD_PObj::HSD_PObjUnion u
HSD_PObj * next
Definition pobj.h:26
u16 n_display
Definition pobj.h:29
HSD_Class parent
Definition pobj.h:25
Definition list.h:6
Definition dobj.h:39
Definition pobj.h:107
HSD_ShapeAnimJoint * child
Definition pobj.h:108
HSD_ShapeAnimJoint * next
Definition pobj.h:109
HSD_ShapeAnimDObj * shapeanimdobj
Definition pobj.h:110
Definition pobj.h:102
HSD_AObjDesc * aobjdesc
Definition pobj.h:104
HSD_ShapeAnim * next
Definition pobj.h:103
Definition pobj.h:91
s32 nb_normal_index
Definition pobj.h:97
HSD_VtxDescList * normal_desc
Definition pobj.h:98
u8 ** normal_idx_list
Definition pobj.h:99
u16 nb_shape
Definition pobj.h:93
s32 nb_vertex_index
Definition pobj.h:94
HSD_VtxDescList * vertex_desc
Definition pobj.h:95
u16 flags
Definition pobj.h:92
u8 ** vertex_idx_list
Definition pobj.h:96
Definition pobj.h:75
f32 bl
Definition pobj.h:86
int nb_vertex_index
Definition pobj.h:78
s32 nb_normal_index
Definition pobj.h:81
f32 * bp
Definition pobj.h:85
u8 ** normal_idx_list
Definition pobj.h:83
u16 flags
Definition pobj.h:76
u8 ** vertex_idx_list
Definition pobj.h:80
u16 nb_shape
Definition pobj.h:77
HSD_VtxDescList * normal_desc
Definition pobj.h:82
HSD_VtxDescList * vertex_desc
Definition pobj.h:79
union HSD_ShapeSet::@363 blend
HSD_AObj * aobj
Definition pobj.h:88
Definition pobj.h:54
u16 stride
Definition pobj.h:60
GXCompCnt comp_cnt
Definition pobj.h:57
GXCompType comp_type
Definition pobj.h:58
u8 frac
Definition pobj.h:59
void * vertex
Definition pobj.h:61
GXAttrType attr_type
Definition pobj.h:56
GXAttr attr
Definition pobj.h:55
Definition pobj.h:19
HSD_AObj * aobj
Definition pobj.h:21
u32 data[8]
Definition pobj.h:20
Definition pobj.h:32
HSD_JObj * jobj
Definition pobj.h:33
HSD_ShapeSet * shape_set
Definition pobj.h:34
HSD_SList * envelope_list
Definition pobj.h:35
struct _unk_struct_pobj * unk
Definition pobj.h:36