]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
Forgot to apply Vic's axial patch for r_light.c, here it is.
authorlordhavoc <lordhavoc@d7cf8633-e32d-0410-b094-e92efae38249>
Thu, 13 Jun 2002 00:38:27 +0000 (00:38 +0000)
committerlordhavoc <lordhavoc@d7cf8633-e32d-0410-b094-e92efae38249>
Thu, 13 Jun 2002 00:38:27 +0000 (00:38 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@1951 d7cf8633-e32d-0410-b094-e92efae38249

r_light.c

index fb9a337c1aa4de46fdbc362dfe44400486b3f200..c4db02cc956561ec220eafa5cf4cde418176a128 100644 (file)
--- a/r_light.c
+++ b/r_light.c
@@ -274,9 +274,17 @@ loc0:
                if (dist2 >= maxdist)
                        continue;
 
-               impact[0] = rd->origin[0] - surf->plane->normal[0] * dist;
-               impact[1] = rd->origin[1] - surf->plane->normal[1] * dist;
-               impact[2] = rd->origin[2] - surf->plane->normal[2] * dist;
+               if (node->plane->type < 3)
+               {
+                       VectorCopy(rd->origin, impact);
+                       impact[node->plane->type] -= dist;
+               }
+               else
+               {
+                       impact[0] = rd->origin[0] - surf->plane->normal[0] * dist;
+                       impact[1] = rd->origin[1] - surf->plane->normal[1] * dist;
+                       impact[2] = rd->origin[2] - surf->plane->normal[2] * dist;
+               }
 
                impacts = DotProduct (impact, surf->texinfo->vecs[0]) + surf->texinfo->vecs[0][3] - surf->texturemins[0];
 
@@ -425,9 +433,17 @@ static void R_VisMarkLights (rdlight_t *rd, int bit, int bitindex)
 
                                                                dist2 = dist * dist;
 
-                                                               impact[0] = rd->origin[0] - surf->plane->normal[0] * dist;
-                                                               impact[1] = rd->origin[1] - surf->plane->normal[1] * dist;
-                                                               impact[2] = rd->origin[2] - surf->plane->normal[2] * dist;
+                                                               if (surf->plane->type < 3)
+                                                               {
+                                                                       VectorCopy(rd->origin, impact);
+                                                                       impact[surf->plane->type] -= dist;
+                                                               }
+                                                               else
+                                                               {
+                                                                       impact[0] = rd->origin[0] - surf->plane->normal[0] * dist;
+                                                                       impact[1] = rd->origin[1] - surf->plane->normal[1] * dist;
+                                                                       impact[2] = rd->origin[2] - surf->plane->normal[2] * dist;
+                                                               }
 
                                                                impacts = DotProduct (impact, surf->texinfo->vecs[0]) + surf->texinfo->vecs[0][3] - surf->texturemins[0];
                                                                d = bound(0, impacts, surf->extents[0] + 16) - impacts;