]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - gl_rsurf.c
reenabled hlbsp sky polygon rendering so that fogging works
[xonotic/darkplaces.git] / gl_rsurf.c
index 9bfd27e0b296c6fe026843d992a263d3c52dc91c..1cb5146d43b9532f932ddbf8a368a0f3deed6d60 100644 (file)
@@ -469,7 +469,7 @@ static void R_DrawSurfaceList(const entity_render_t *ent, texture_t *texture, in
                                R_Sky();
                }
                // LordHavoc: HalfLife maps have freaky skypolys...
-               if (!ent->model->brush.ishlbsp)
+               //if (!ent->model->brush.ishlbsp)
                {
                        R_Mesh_Matrix(&ent->matrix);
                        GL_Color(fogcolor[0], fogcolor[1], fogcolor[2], 1);
@@ -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);
                                }