-// this layer is fog (completely specialized behavior, automatic NODRAW_IF_NOTFOGGED behavior)
-#define ALIASLAYER_FOG 1
-// apply diffuse lighting
-#define ALIASLAYER_DIFFUSE 8
-// apply specular lighting
-#define ALIASLAYER_SPECULAR 16
-// tint with pants color
-#define ALIASLAYER_COLORMAP_PANTS 32
-// tint with shirt color
-#define ALIASLAYER_COLORMAP_SHIRT 64
-// don't draw this layer if colormap is not used
-#define ALIASLAYER_NODRAW_IF_NOTCOLORMAPPED 128
-// don't draw this layer if colormap is used
-#define ALIASLAYER_NODRAW_IF_COLORMAPPED 256
-// ignore NODRAW flags on this layer only if all previous layers were skipped
-#define ALIASLAYER_FORCEDRAW_IF_FIRSTPASS 512
-
-typedef struct aliaslayer_s
-{
- int flags;
- rtexture_t *texture;
- rtexture_t *nmap;
-}
-aliaslayer_t;
-
-// indicates this skin is transparent
-#define ALIASSKIN_TRANSPARENT 1
-
-typedef struct aliasskin_s
-{
- int flags;
- int num_layers;
- aliaslayer_t *data_layers;
-}
-aliasskin_t;
-
-typedef struct aliasvertexboneweight_s
-{
- unsigned int vertexindex;
- unsigned int boneindex;
- float origin[3];
- float weight;
-}
-aliasvertexboneweight_t;
-
-typedef struct aliasmesh_s
-{
- // skins to choose from (indexed by entity skin)
- int num_skins;
- aliasskin_t *data_skins;
-
- // triangles comprising the mesh
- int num_triangles;
- int *data_element3i;
- int *data_neighbor3i;
-
- // skin texcoords do not change
- int num_vertices;
- float *data_texcoord2f;
-
- // morph blending, these are zero if model is skeletal
- int num_morphframes;
- float *data_morphvertex3f;
-
- // base frame (frame zero typically)
- // since most models do not animate, caching the base frame helps
- float *data_basevertex3f;
- float *data_basesvector3f;
- float *data_basetvector3f;
- float *data_basenormal3f;
-
- // skeletal blending, these are zero if model is morph
- int num_vertexboneweights;
- aliasvertexboneweight_t *data_vertexboneweights;
-}
-aliasmesh_t;
-