X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=model_shared.h;h=136cf854ad5c34edd2c6761ecf3284bcd19cd7d0;hp=c54472a429f0c500873d11ae6ea6b3c94f016f08;hb=c651b263f8a63fa5846df832051d4f5658680a03;hpb=03e040262964d69c24733989c189dc60f40d2db2;ds=sidebyside diff --git a/model_shared.h b/model_shared.h index c54472a4..136cf854 100644 --- a/model_shared.h +++ b/model_shared.h @@ -239,6 +239,7 @@ typedef struct model_brush_s qbyte *(*GetPVS)(struct model_s *model, const vec3_t p); int (*FatPVS)(struct model_s *model, const vec3_t org, vec_t radius, qbyte *pvsbuffer, int pvsbufferlength); int (*BoxTouchingPVS)(struct model_s *model, const qbyte *pvs, const vec3_t mins, const vec3_t maxs); + int (*BoxTouchingVisibleLeafs)(struct model_s *model, const qbyte *visibleleafs, const vec3_t mins, const vec3_t maxs); void (*LightPoint)(struct model_s *model, const vec3_t p, vec3_t ambientcolor, vec3_t diffusecolor, vec3_t diffusenormal); void (*FindNonSolidLocation)(struct model_s *model, const vec3_t in, vec3_t out, vec_t radius); // these are actually only found on brushq1, but NULL is handled gracefully @@ -306,7 +307,7 @@ model_brushq2_t; typedef struct model_brushq3_s { int num_models; - q3mmodel_t *data_models; + q3dmodel_t *data_models; // freed after loading! int num_vertices; @@ -320,7 +321,7 @@ typedef struct model_brushq3_s int *data_element3i; int num_effects; - q3meffect_t *data_effects; + q3deffect_t *data_effects; // lightmap textures int num_lightmaps; @@ -406,7 +407,7 @@ typedef struct model_s // gathers info on which clusters and surfaces are lit by light, as well as calculating a bounding box void(*GetLightInfo)(struct entity_render_s *ent, vec3_t relativelightorigin, float lightradius, vec3_t outmins, vec3_t outmaxs, int *outclusterlist, qbyte *outclusterpvs, int *outnumclusterspointer, int *outsurfacelist, qbyte *outsurfacepvs, int *outnumsurfacespointer); // 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); + void(*DrawShadowVolume)(struct entity_render_s *ent, vec3_t relativelightorigin, float lightradius, int numsurfaces, const int *surfacelist, const vec3_t lightmins, const vec3_t lightmaxs); // 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, vec_t ambientscale, vec_t diffusescale, vec_t specularscale, int numsurfaces, const int *surfacelist); // trace a box against this model @@ -430,7 +431,7 @@ model_t; //============================================================================ // this can be used for anything without a valid texture -extern rtexture_t *r_notexture; +extern rtexture_t *r_texture_notexture; #define NUM_DETAILTEXTURES 1 extern rtexture_t *mod_shared_detailtextures[NUM_DETAILTEXTURES]; // every texture must be in a pool...