// // MD3 representation in memory // Vic code with a few my changes // -Harven // typedef struct maliascoord_s { vec2_t st; } maliascoord_t; typedef struct maliasvertex_s { short xyz[3]; byte normal[2]; byte lightnormalindex; // used for ye olde quantized normal shading } maliasvertex_t; typedef struct { vec3_t mins; vec3_t maxs; vec3_t scale; vec3_t translate; float radius; } maliasframe_t; typedef struct { char name[MD3_MAX_PATH]; dorientation_t orient; } maliastag_t; typedef enum { WAVEFORM_SIN, WAVEFORM_TRIANGLE, WAVEFORM_SQUARE, WAVEFORM_SAWTOOTH, WAVEFORM_INVERSESAWTOOTH, WAVEFORM_NOISE } waveForm_t; typedef struct { waveForm_t type; float params[4]; } waveFunc_t; typedef struct { qboolean twosided; qboolean alphatest; qboolean fullbright; qboolean nodraw; qboolean noshadow; qboolean nodiffuse; float envmap; float basealpha; float translate_x; float translate_y; float rotate; float scale_x; float scale_y; waveFunc_t stretch; waveFunc_t turb; float scroll_x; float scroll_y; qboolean blend; GLenum blendfunc_src; GLenum blendfunc_dst; waveFunc_t glow; } renderparms_t; typedef struct { char name[MD3_MAX_PATH]; char glowname[MD3_MAX_PATH]; image_t *glowimage; renderparms_t renderparms; //int shader; } maliasskin_t; typedef struct { int num_verts; char name[MD3_MAX_PATH]; maliasvertex_t *vertexes; maliascoord_t *stcoords; int num_tris; index_t *indexes; int *trneighbors; int num_skins; maliasskin_t *skins; } maliasmesh_t; typedef struct maliasmodel_s { int num_frames; maliasframe_t *frames; int num_tags; maliastag_t *tags; int num_meshes; maliasmesh_t *meshes; } maliasmodel_t;