]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_shared.h
implemented scr_screenshot_gamma in screenshot saving (previously only implemented...
[xonotic/darkplaces.git] / model_shared.h
index ddf9dce4435996e72a5b5235316728e805881616..ddb6e1e0f7b2f5df4893bb43c59c46564e766713 100644 (file)
@@ -154,6 +154,8 @@ typedef struct model_brush_s
        // number of submodels in this map (just used by server to know how many
        // submodels to load)
        int numsubmodels;
+       // pointers to each of the submodels if .isworldmodel is true
+       struct model_s **submodels;
 
        // pvs
        int num_pvsclusters;
@@ -337,6 +339,7 @@ model_brushq2_t;
 #define Q3TEXTUREFLAG_NOPICMIP 8
 #define Q3TEXTUREFLAG_AUTOSPRITE 16
 #define Q3TEXTUREFLAG_AUTOSPRITE2 32
+#define Q3TEXTUREFLAG_ALPHATEST 64
 
 struct q3msurface_s;
 typedef struct q3mtexture_s
@@ -546,8 +549,8 @@ typedef struct model_s
 {
        // name and path of model, for example "progs/player.mdl"
        char                    name[MAX_QPATH];
-       // model needs to be loaded if this is true
-       qboolean                needload;
+       // model needs to be loaded if this is false
+       qboolean                loaded;
        // set if the model is used in current map, models which are not, are purged
        qboolean                used;
        // true if this is the world model (I.E. defines what sky to use, and may contain submodels)
@@ -598,7 +601,7 @@ typedef struct model_s
        // draw a shadow volume for the model based on light source
        void(*DrawShadowVolume)(struct entity_render_s *ent, vec3_t relativelightorigin, float lightradius, int numsurfaces, const int *surfacelist);
        // draw the lighting on a model (through stencil)
-       void(*DrawLight)(struct entity_render_s *ent, vec3_t relativelightorigin, vec3_t relativeeyeorigin, float lightradius, float *lightcolor, const matrix4x4_t *matrix_modeltolight, const matrix4x4_t *matrix_modeltoattenuationxyz, const matrix4x4_t *matrix_modeltoattenuationz, rtexture_t *lightcubemap, int numsurfaces, const int *surfacelist);
+       void(*DrawLight)(struct entity_render_s *ent, vec3_t relativelightorigin, vec3_t relativeeyeorigin, float lightradius, float *lightcolor, const matrix4x4_t *matrix_modeltolight, const matrix4x4_t *matrix_modeltoattenuationxyz, const matrix4x4_t *matrix_modeltoattenuationz, rtexture_t *lightcubemap, vec_t ambientscale, vec_t diffusescale, vec_t specularscale, int numsurfaces, const int *surfacelist);
        // trace a box against this model
        void (*TraceBox)(struct model_s *model, int frame, struct trace_s *trace, const vec3_t boxstartmins, const vec3_t boxstartmaxs, const vec3_t boxendmins, const vec3_t boxendmaxs, int hitsupercontentsmask);
        // fields belonging to each type of model
@@ -641,7 +644,6 @@ void Mod_CheckLoaded (model_t *mod);
 void Mod_ClearAll (void);
 model_t *Mod_FindName (const char *name);
 model_t *Mod_ForName (const char *name, qboolean crash, qboolean checkdisk, qboolean isworldmodel);
-void Mod_TouchModel (const char *name);
 void Mod_UnloadModel (model_t *mod);
 
 void Mod_ClearUsed(void);