X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=model_alias.h;h=c3367f8d0f117d318b20dec41bdcf8889d851501;hb=ff94d465c68bfd246952ca21de025b1ac8fde099;hp=4e6faa02d573cb1ea29a8b7421da413beeed1ffe;hpb=1ffce651075275f57c7e04b443ea6f1fd748fd98;p=xonotic%2Fdarkplaces.git diff --git a/model_alias.h b/model_alias.h index 4e6faa02..c3367f8d 100644 --- a/model_alias.h +++ b/model_alias.h @@ -213,83 +213,6 @@ typedef struct md3modelheader_s } md3modelheader_t; -// 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; - typedef struct aliastag_s { char name[MD3NAME]; @@ -306,7 +229,9 @@ typedef struct aliasbone_s aliasbone_t; struct frameblend_s; -void Mod_Alias_GetMesh_Vertex3f(const struct model_s *model, const struct frameblend_s *frameblend, const struct aliasmesh_s *mesh, float *out3f); +void Mod_Alias_GetMesh_Vertex3f(const struct model_s *model, const struct frameblend_s *frameblend, const struct surfmesh_s *mesh, float *out3f); +int Mod_Alias_GetTagMatrix(const struct model_s *model, int poseframe, int tagindex, matrix4x4_t *outmatrix); +int Mod_Alias_GetTagIndexForName(const struct model_s *model, unsigned int skin, const char *tagname); #endif