X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=sv_light.c;h=41b4475f730824758e119638012c62aa67f449e0;hp=87d15fa61870fd5dcc37e99d7b4f327b71b8e6bc;hb=275526b51e0cc486f423539e2aa9473f91bf2b50;hpb=88f96a36fee75d104250fefb0502bb850438377e diff --git a/sv_light.c b/sv_light.c index 87d15fa6..41b4475f 100644 --- a/sv_light.c +++ b/sv_light.c @@ -8,7 +8,7 @@ of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -17,7 +17,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// r_light.c #include "quakedef.h" @@ -47,11 +46,6 @@ loc0: goto loc0; } // found an intersection -// mid = startz + (endz - startz) * (startz - node->plane->dist) / (startz - endz); -// mid = startz + distz * (startz - node->plane->dist) / (-distz); -// mid = startz + (-(startz - node->plane->dist)); -// mid = startz - (startz - node->plane->dist); -// mid = startz + node->plane->dist - startz; mid = node->plane->dist; break; default: @@ -65,8 +59,6 @@ loc0: goto loc0; } // found an intersection -// mid = startz + (endz - startz) * ((front - node->plane->dist) / ((front - node->plane->dist) - (back - node->plane->dist))); -// mid = startz + (endz - startz) * ((front - node->plane->dist) / (front - back)); mid = startz + distz * (front - node->plane->dist) / (front - back); break; } @@ -85,8 +77,8 @@ loc0: surf = sv.worldmodel->surfaces + node->firstsurface; for (i = 0;i < node->numsurfaces;i++, surf++) { - if (surf->flags & SURF_DRAWTILED) - continue; // no lightmaps + if (!(surf->flags & SURF_LIGHTMAP)) + continue; ds = (int) (x * surf->texinfo->vecs[0][0] + y * surf->texinfo->vecs[0][1] + mid * surf->texinfo->vecs[0][2] + surf->texinfo->vecs[0][3]); dt = (int) (x * surf->texinfo->vecs[1][0] + y * surf->texinfo->vecs[1][1] + mid * surf->texinfo->vecs[1][2] + surf->texinfo->vecs[1][3]); @@ -102,7 +94,7 @@ loc0: if (surf->samples) { - byte *lightmap; + qbyte *lightmap; int maps, line3, size3, dsfrac = ds & 15, dtfrac = dt & 15, scale = 0, r00 = 0, g00 = 0, b00 = 0, r01 = 0, g01 = 0, b01 = 0, r10 = 0, g10 = 0, b10 = 0, r11 = 0, g11 = 0, b11 = 0; line3 = ((surf->extents[0]>>4)+1)*3; size3 = ((surf->extents[0]>>4)+1) * ((surf->extents[1]>>4)+1)*3; // LordHavoc: *3 for colored lighting @@ -132,19 +124,20 @@ loc0: startz = mid; distz = endz - startz; goto loc0; -// return RecursiveLightPoint (color, node->children[side ^ 1], x, y, mid, endz); } } // LordHavoc: added light checking to the server void SV_LightPoint (vec3_t color, vec3_t p) { + Mod_CheckLoaded(sv.worldmodel); if (!sv.worldmodel->lightdata) { color[0] = color[1] = color[2] = 255; return; } - + color[0] = color[1] = color[2] = 0; SV_RecursiveLightPoint (color, sv.worldmodel->nodes, p[0], p[1], p[2], p[2] - 65536); } +