]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_shared.h
fix compile errors on MSVC2003 and earlier
[xonotic/darkplaces.git] / model_shared.h
index bd939d6e6fca63d9154cc264ea8ac3e7e69aed47..aca35010df227e0076f047ea8d09970e2eebdee0 100644 (file)
@@ -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);