]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - gl_rsurf.c
fix a crash when s->tag_entity is higher than current d->maxedicts
[xonotic/darkplaces.git] / gl_rsurf.c
index 9bfd27e0b296c6fe026843d992a263d3c52dc91c..3a46cbfc070535e68a8214f48a90c5aa24255de7 100644 (file)
@@ -1787,6 +1787,14 @@ void R_Q1BSP_RecursiveGetLightInfo(r_q1bsp_getlightinfo_t *info, mnode_t *node)
 void R_Q1BSP_GetLightInfo(entity_render_t *ent, vec3_t relativelightorigin, float lightradius, vec3_t outmins, vec3_t outmaxs, int *outclusterlist, qbyte *outclusterpvs, int *outnumclusterspointer, int *outsurfacelist, qbyte *outsurfacepvs, int *outnumsurfacespointer)
 {
        r_q1bsp_getlightinfo_t info;
+       VectorCopy(relativelightorigin, info.relativelightorigin);
+       info.lightradius = lightradius;
+       info.lightmins[0] = info.relativelightorigin[0] - info.lightradius;
+       info.lightmins[1] = info.relativelightorigin[1] - info.lightradius;
+       info.lightmins[2] = info.relativelightorigin[2] - info.lightradius;
+       info.lightmaxs[0] = info.relativelightorigin[0] + info.lightradius;
+       info.lightmaxs[1] = info.relativelightorigin[1] + info.lightradius;
+       info.lightmaxs[2] = info.relativelightorigin[2] + info.lightradius;
        if (ent->model == NULL)
        {
                VectorCopy(info.lightmins, outmins);
@@ -1796,20 +1804,12 @@ void R_Q1BSP_GetLightInfo(entity_render_t *ent, vec3_t relativelightorigin, floa
                return;
        }
        info.model = ent->model;
-       VectorCopy(relativelightorigin, info.relativelightorigin);
-       info.lightradius = lightradius;
        info.outclusterlist = outclusterlist;
        info.outclusterpvs = outclusterpvs;
        info.outnumclusters = 0;
        info.outsurfacelist = outsurfacelist;
        info.outsurfacepvs = outsurfacepvs;
        info.outnumsurfaces = 0;
-       info.lightmins[0] = info.relativelightorigin[0] - lightradius;
-       info.lightmins[1] = info.relativelightorigin[1] - lightradius;
-       info.lightmins[2] = info.relativelightorigin[2] - lightradius;
-       info.lightmaxs[0] = info.relativelightorigin[0] + lightradius;
-       info.lightmaxs[1] = info.relativelightorigin[1] + lightradius;
-       info.lightmaxs[2] = info.relativelightorigin[2] + lightradius;
        VectorCopy(info.relativelightorigin, info.outmins);
        VectorCopy(info.relativelightorigin, info.outmaxs);
        memset(outclusterpvs, 0, info.model->brush.num_pvsclusterbytes);
@@ -1889,7 +1889,7 @@ void R_Q1BSP_DrawLight(entity_render_t *ent, vec3_t relativelightorigin, vec3_t
                                {
                                        if (surface->texture->textureflags & Q3TEXTUREFLAG_TWOSIDED)
                                                qglDisable(GL_CULL_FACE);
-                                       R_Shadow_RenderLighting(surface->num_firstvertex, surface->num_vertices, surface->num_triangles, (surface->groupmesh->data_element3i + 3 * surface->num_firsttriangle), surface->groupmesh->data_vertex3f, surface->groupmesh->data_svector3f, surface->groupmesh->data_tvector3f, surface->groupmesh->data_normal3f, surface->groupmesh->data_texcoordtexture2f, relativelightorigin, relativeeyeorigin, lightcolor, matrix_modeltolight, matrix_modeltoattenuationxyz, matrix_modeltoattenuationz, t->skin.base, t->skin.nmap, t->skin.gloss, lightcubemap, ambientscale, diffusescale, specularscale);
+                                       R_Shadow_RenderLighting(surface->num_firstvertex, surface->num_vertices, surface->num_triangles, (surface->groupmesh->data_element3i + 3 * surface->num_firsttriangle), surface->groupmesh->data_vertex3f, surface->groupmesh->data_svector3f, surface->groupmesh->data_tvector3f, surface->groupmesh->data_normal3f, surface->groupmesh->data_texcoordtexture2f, relativelightorigin, relativeeyeorigin, lightcolor, NULL, NULL, matrix_modeltolight, matrix_modeltoattenuationxyz, matrix_modeltoattenuationz, t->skin.base, NULL, NULL, t->skin.nmap, t->skin.gloss, lightcubemap, ambientscale, diffusescale, specularscale);
                                        if (surface->texture->textureflags & Q3TEXTUREFLAG_TWOSIDED)
                                                qglEnable(GL_CULL_FACE);
                                }