17#define HSD_A_M_AMBIENT_R 1
18#define HSD_A_M_AMBIENT_G 2
19#define HSD_A_M_AMBIENT_B 3
20#define HSD_A_M_DIFFUSE_R 4
21#define HSD_A_M_DIFFUSE_G 5
22#define HSD_A_M_DIFFUSE_B 6
23#define HSD_A_M_SPECULAR_R 7
24#define HSD_A_M_SPECULAR_G 8
25#define HSD_A_M_SPECULAR_B 9
26#define HSD_A_M_ALPHA 10
27#define HSD_A_M_PE_REF0 11
28#define HSD_A_M_PE_REF1 12
29#define HSD_A_M_PE_DSTALPHA 13
31#define RENDER_DIFFUSE_SHIFT 0
32#define RENDER_DIFFUSE_BITS (3 << RENDER_DIFFUSE_SHIFT)
33#define RENDER_DIFFUSE_MAT0 (0 << RENDER_DIFFUSE_SHIFT)
34#define RENDER_DIFFUSE_MAT (1 << RENDER_DIFFUSE_SHIFT)
35#define RENDER_DIFFUSE_VTX (2 << RENDER_DIFFUSE_SHIFT)
36#define RENDER_DIFFUSE_BOTH (3 << RENDER_DIFFUSE_SHIFT)
38#define RENDER_CONSTANT (1 << 0)
39#define RENDER_VERTEX (1 << 1)
40#define RENDER_DIFFUSE (1 << 2)
41#define RENDER_SPECULAR (1 << 3)
42#define CHANNEL_FIELD \
43 (RENDER_CONSTANT | RENDER_VERTEX | RENDER_DIFFUSE | RENDER_SPECULAR)
44#define RENDER_TEX0 (1 << 4)
45#define RENDER_TEX1 (1 << 5)
46#define RENDER_TEX2 (1 << 6)
47#define RENDER_TEX3 (1 << 7)
48#define RENDER_TEX4 (1 << 8)
49#define RENDER_TEX5 (1 << 9)
50#define RENDER_TEX6 (1 << 10)
51#define RENDER_TEX7 (1 << 11)
52#define RENDER_TEXTURES \
53 (RENDER_TEX0 | RENDER_TEX1 | RENDER_TEX2 | RENDER_TEX3 | RENDER_TEX4 | \
54 RENDER_TEX5 | RENDER_TEX6 | RENDER_TEX7)
55#define RENDER_TOON (1 << 12)
57#define RENDER_ALPHA_SHIFT 13
58#define RENDER_ALPHA_BITS (3 << RENDER_ALPHA_SHIFT)
59#define RENDER_ALPHA_COMPAT (0 << RENDER_ALPHA_SHIFT)
60#define RENDER_ALPHA_MAT (1 << RENDER_ALPHA_SHIFT)
61#define RENDER_ALPHA_VTX (2 << RENDER_ALPHA_SHIFT)
62#define RENDER_ALPHA_BOTH (3 << RENDER_ALPHA_SHIFT)
64#define RENDER_SHADOW (1 << 26)
65#define RENDER_ZMODE_ALWAYS (1 << 27)
66#define RENDER_NO_ZUPDATE (1 << 29)
67#define RENDER_XLU (1 << 30)
69#define RENDER_BLENDING (RENDER_XLU | RENDER_NO_ZUPDATE)
105typedef struct _HSD_MObjDesc {
114typedef struct _HSD_ChanAnim {
119typedef struct _HSD_TevRegAnim {
124typedef struct _HSD_RenderAnim {
129typedef struct _HSD_MatAnim {
153#define HSD_MOBJ(o) ((HSD_MObj*) (o))
154#define HSD_MOBJ_INFO(i) ((HSD_MObjInfo*) (i))
155#define HSD_MOBJ_METHOD(o) HSD_MOBJ_INFO(HSD_CLASS_METHOD(o))
unsigned long u32
Definition types.h:9
float f32
Definition types.h:13
unsigned char u8
Definition types.h:5
HSD_ImageDesc * imagedesc
Definition lbrefract.c:32
u8 desc[6][3]
Definition mnruleplus.c:98
HSD_TObj * tobj_shadows
Definition mobj.c:15
HSD_TObj * tobj_toon
Definition mobj.c:16
HSD_MObjInfo hsdMObj
Definition mobj.c:19
void HSD_MObjSetToonTextureImage(HSD_ImageDesc *imagedesc)
Definition mobj.c:450
void HSD_MObjRemove(HSD_MObj *mobj)
Definition mobj.c:480
void HSD_MObjSetFlags(HSD_MObj *mobj, u32 flags)
Definition mobj.c:26
void HSD_MObjSetCurrent(HSD_MObj *mobj)
Definition mobj.c:21
HSD_Material * HSD_MaterialAlloc(void)
Definition mobj.c:496
HSD_MObj * HSD_MObjAlloc(void)
Definition mobj.c:488
void HSD_MObjReqAnimByFlags(HSD_MObj *mobj, f32 startframe, u32 flags)
Definition mobj.c:70
void HSD_MObjClearFlags(HSD_MObj *mobj, u32 flags)
Definition mobj.c:33
void HSD_MObjReqAnim(HSD_MObj *mobj, f32 startframe)
Definition mobj.c:81
HSD_MObj * HSD_MObjLoadDesc(HSD_MObjDesc *mobjdesc)
Definition mobj.c:167
void HSD_MObjAddShadowTexture(HSD_TObj *tobj)
Definition mobj.c:505
void HSD_MObjDeleteShadowTexture(HSD_TObj *tobj)
Definition mobj.c:525
void HSD_MObjAddAnim(HSD_MObj *mobj, HSD_MatAnim *matanim)
Definition mobj.c:55
void HSD_MObjSetup(HSD_MObj *mobj, u32 rendermode)
Definition mobj.c:390
void HSD_MObjRemoveAnimByFlags(HSD_MObj *mobj, u32 flags)
Definition mobj.c:40
HSD_TExp * MObjMakeTExp(HSD_MObj *mobj, HSD_TObj *tobj_top, HSD_TExp **list)
Definition mobj.c:191
HSD_TObj * HSD_MObjGetTObj(HSD_MObj *mobj)
Definition mobj.c:472
void HSD_MObjUnset(HSD_MObj *mobj, u32 rendermode)
Definition mobj.c:427
void HSD_MObjSetAlpha(HSD_MObj *mobj, f32 alpha)
Definition mobj.c:467
void HSD_MObjAnim(HSD_MObj *mobj)
Definition mobj.c:143
void HSD_MObjSetDiffuseColor(HSD_MObj *mobj, u8 r, u8 g, u8 b)
Definition mobj.c:460
void MObjSetupTev(HSD_MObj *mobj, HSD_TObj *tobj, u32 arg2)
Definition mobj.c:383
void HSD_MObjCompileTev(HSD_MObj *mobj)
Definition mobj.c:337
u8 alpha
Definition state.c:44
struct _HSD_ChanAnim * next
Definition mobj.h:115
HSD_AObjDesc * aobjdesc
Definition mobj.h:116
void * renderdesc
Definition mobj.h:110
HSD_Material * mat
Definition mobj.h:109
char * class_name
Definition mobj.h:106
HSD_PEDesc * pedesc
Definition mobj.h:111
struct _HSD_TObjDesc * texdesc
Definition mobj.h:108
u32 rendermode
Definition mobj.h:107
int(* load)(HSD_MObj *mobj, HSD_MObjDesc *desc)
Definition mobj.h:145
HSD_MObjSetupFunc setup
Definition mobj.h:144
void(* unset)(HSD_MObj *mobj, u32 rendermode)
Definition mobj.h:150
HSD_ClassInfo parent
Definition mobj.h:143
void(* setup_tev)(HSD_MObj *mobj, HSD_TObj *tobj, u32 rendermode)
Definition mobj.h:148
HSD_TObj * tobj
Definition mobj.h:74
HSD_AObj * aobj
Definition mobj.h:77
struct _HSD_TExpTevDesc * tevdesc
Definition mobj.h:78
HSD_TExp * texp
Definition mobj.h:79
u32 rendermode
Definition mobj.h:73
HSD_Class parent
Definition mobj.h:72
HSD_Material * mat
Definition mobj.h:75
HSD_PEDesc * pe
Definition mobj.h:76
HSD_MatAnimJoint * child
Definition mobj.h:137
HSD_MatAnimJoint * next
Definition mobj.h:138
HSD_MatAnim * matanim
Definition mobj.h:139
struct _HSD_RenderAnim * renderanim
Definition mobj.h:133
struct _HSD_MatAnim * next
Definition mobj.h:130
struct _HSD_TexAnim * texanim
Definition mobj.h:132
HSD_AObjDesc * aobjdesc
Definition mobj.h:131
f32 alpha
Definition mobj.h:86
f32 shininess
Definition mobj.h:87
GXColor diffuse
Definition mobj.h:84
GXColor specular
Definition mobj.h:85
GXColor ambient
Definition mobj.h:83
u8 type
Definition mobj.h:95
u8 dst_factor
Definition mobj.h:97
u8 flags
Definition mobj.h:91
u8 ref1
Definition mobj.h:93
u8 z_comp
Definition mobj.h:99
u8 ref0
Definition mobj.h:92
u8 alpha_comp0
Definition mobj.h:100
u8 alpha_comp1
Definition mobj.h:102
u8 src_factor
Definition mobj.h:96
u8 logic_op
Definition mobj.h:98
u8 alpha_op
Definition mobj.h:101
u8 dst_alpha
Definition mobj.h:94
struct _HSD_TevRegAnim * reganim
Definition mobj.h:126
struct _HSD_ChanAnim * chananim
Definition mobj.h:125
Texture Object.
Definition tobj.h:132
HSD_AObjDesc * aobjdesc
Definition mobj.h:121
struct _HSD_TevRegAnim * next
Definition mobj.h:120
void(* HSD_MObjSetupFunc)(HSD_MObj *mobj, u32 rendermode)
Definition forward.h:112