89 lines
1.7 KiB
C
89 lines
1.7 KiB
C
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define MDX_IDENT (('M'<<24)+('G'<<16)+('L'<<8)+'2')
|
|
|
|
#define MAX_QPATH 64
|
|
|
|
// mdxm = mod->mdxm = (mdxmHeader_t*)
|
|
|
|
typedef struct mdxm_header {
|
|
union {
|
|
int ident;
|
|
uint8_t magic[4];
|
|
};
|
|
int version;
|
|
char name[MAX_QPATH];
|
|
char anim_name[MAX_QPATH];
|
|
int anim_index;
|
|
int num_bones;
|
|
int num_lods;
|
|
int offset_lods;
|
|
int num_surfaces;
|
|
int offset_surface_hierarchy;
|
|
int offset_end;
|
|
} mdxm_header_t;
|
|
|
|
// lod = (mdxmLOD_t *) ( (byte *)mdxm + mdxm->ofsLODs );
|
|
typedef struct mdxm_lod {
|
|
int offset_end;
|
|
} mdxm_lod_t;
|
|
|
|
typedef struct mdxm_lod_surf_offset {
|
|
int offsets[1];
|
|
} mdxm_lod_surf_offset_t;
|
|
|
|
|
|
typedef struct {
|
|
char name[MAX_QPATH];
|
|
uint32_t flags;
|
|
char shader[MAX_QPATH];
|
|
int shader_index;
|
|
int parent_index;
|
|
int num_children;
|
|
int child_indexes[1];
|
|
} mdxm_surf_hierarchy_t;
|
|
|
|
// surf = (mdxmSurface_t *) ( (byte *)lod + sizeof (mdxmLOD_t) + (mdxm->numSurfaces * sizeof(mdxmLODSurfOffset_t)) );
|
|
|
|
typedef struct mdxm_surface {
|
|
int ident;
|
|
int this_surface_index;
|
|
int offset_header;
|
|
int num_verts;
|
|
int offset_verts;
|
|
int num_triangles;
|
|
int offset_triangles;
|
|
int num_bone_references;
|
|
int offset_bone_references;
|
|
int offset_end;
|
|
} mdxm_surface_t;
|
|
|
|
/*
|
|
v = (mdxmVertex_t *) ((byte *)surface + surface->offset_verts);
|
|
pTexCoords = (mdxmVertexTexCoord_t *) &v[numVerts];
|
|
*/
|
|
|
|
typedef struct mdxm_triangle {
|
|
int index[3];
|
|
} mdxm_triangle_t;
|
|
|
|
typedef float mdxm_vec2_t[2];
|
|
typedef float mdxm_vec3_t[3];
|
|
|
|
typedef struct mdxm_vertex {
|
|
mdxm_vec3_t normal;
|
|
mdxm_vec3_t position;
|
|
uint32_t flags;
|
|
uint8_t bone_weightings[4];
|
|
} mdxm_vertex_t;
|
|
|
|
typedef struct mdxm_vertex_texture_coord {
|
|
mdxm_vec2_t texture;
|
|
} mdxm_vertex_texture_coord_t;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|