X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=model_shared.h;h=aca35010df227e0076f047ea8d09970e2eebdee0;hb=c3ea7019c9ce6dd91e6f40a027a45cd27da17385;hp=bd939d6e6fca63d9154cc264ea8ac3e7e69aed47;hpb=1a8f8b37c07a75324cc298e2188356618dfb7635;p=xonotic%2Fdarkplaces.git diff --git a/model_shared.h b/model_shared.h index bd939d6e..aca35010 100644 --- a/model_shared.h +++ b/model_shared.h @@ -30,7 +30,7 @@ m*_t structures are in-memory */ -typedef enum modtype_e {mod_invalid, mod_brushq1, mod_sprite, mod_alias, mod_brushq2, mod_brushq3} modtype_t; +typedef enum modtype_e {mod_invalid, mod_brushq1, mod_sprite, mod_alias, mod_brushq2, mod_brushq3, mod_null} modtype_t; typedef struct animscene_s { @@ -70,6 +70,8 @@ typedef struct skinframe_s int loadsequence; // on 32bit systems this makes the struct 128 bytes long int padding; + // average texture color, if applicable + float avgcolor[4]; } skinframe_t; @@ -287,6 +289,7 @@ typedef enum q3tcmod_e Q3TCMOD_STRETCH, Q3TCMOD_TRANSFORM, Q3TCMOD_TURBULENT, + Q3TCMOD_PAGE, Q3TCMOD_COUNT } q3tcmod_t; @@ -364,6 +367,12 @@ typedef struct q3shaderinfo_s char skyboxname[Q3PATHLENGTH]; q3shaderinfo_deform_t deforms[Q3MAXDEFORMS]; + // dp-specific additions: + + // shadow control + qboolean dpshadow; + qboolean dpnoshadow; + // reflection float reflectmin; // when refraction is used, minimum amount of reflection (when looking straight down) float reflectmax; // when refraction is used, maximum amount of reflection (when looking parallel to water) @@ -769,6 +778,9 @@ typedef struct model_brushq3_s // true if the detected deluxemaps are the modelspace kind, rather than // the faster tangentspace kind qboolean deluxemapping_modelspace; + // size of lightmaps (128 by default, but may be another poweroftwo if + // external lightmaps are used (q3map2 -lightmapsize) + int lightmapsize; } model_brushq3_t; @@ -976,6 +988,7 @@ struct frameblend_s; void Mod_AliasInit(void); int Mod_Alias_GetTagMatrix(const dp_model_t *model, int poseframe, int tagindex, matrix4x4_t *outmatrix); int Mod_Alias_GetTagIndexForName(const dp_model_t *model, unsigned int skin, const char *tagname); +int Mod_Alias_GetExtendedTagInfoForIndex(const dp_model_t *model, unsigned int skin, int poseframe, int tagindex, int *parentindex, const char **tagname, matrix4x4_t *tag_localmatrix); // sprite models void Mod_SpriteInit(void);