From a8f828a066773a59fdf646299359d35ae0e845af Mon Sep 17 00:00:00 2001 From: wyatt8740 Date: Mon, 6 Jan 2014 12:02:16 -0500 Subject: Removed accidental upload of copyrighted map files --- WinQuake/d_part.c | 414 +++++++++++++++++++++++++++--------------------------- 1 file changed, 207 insertions(+), 207 deletions(-) (limited to 'WinQuake/d_part.c') diff --git a/WinQuake/d_part.c b/WinQuake/d_part.c index 176b76b..66fbda2 100644 --- a/WinQuake/d_part.c +++ b/WinQuake/d_part.c @@ -1,207 +1,207 @@ -/* -Copyright (C) 1996-1997 Id Software, Inc. - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -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. - -See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ -// d_part.c: software driver module for drawing particles - -#include "quakedef.h" -#include "d_local.h" - - -/* -============== -D_EndParticles -============== -*/ -void D_EndParticles (void) -{ -// not used by software driver -} - - -/* -============== -D_StartParticles -============== -*/ -void D_StartParticles (void) -{ -// not used by software driver -} - - -#if !id386 - -/* -============== -D_DrawParticle -============== -*/ -void D_DrawParticle (particle_t *pparticle) -{ - vec3_t local, transformed; - float zi; - byte *pdest; - short *pz; - int i, izi, pix, count, u, v; - -// transform point - VectorSubtract (pparticle->org, r_origin, local); - - transformed[0] = DotProduct(local, r_pright); - transformed[1] = DotProduct(local, r_pup); - transformed[2] = DotProduct(local, r_ppn); - - if (transformed[2] < PARTICLE_Z_CLIP) - return; - -// project the point -// FIXME: preadjust xcenter and ycenter - zi = 1.0 / transformed[2]; - u = (int)(xcenter + zi * transformed[0] + 0.5); - v = (int)(ycenter - zi * transformed[1] + 0.5); - - if ((v > d_vrectbottom_particle) || - (u > d_vrectright_particle) || - (v < d_vrecty) || - (u < d_vrectx)) - { - return; - } - - pz = d_pzbuffer + (d_zwidth * v) + u; - pdest = d_viewbuffer + d_scantable[v] + u; - izi = (int)(zi * 0x8000); - - pix = izi >> d_pix_shift; - - if (pix < d_pix_min) - pix = d_pix_min; - else if (pix > d_pix_max) - pix = d_pix_max; - - switch (pix) - { - case 1: - count = 1 << d_y_aspect_shift; - - for ( ; count ; count--, pz += d_zwidth, pdest += screenwidth) - { - if (pz[0] <= izi) - { - pz[0] = izi; - pdest[0] = pparticle->color; - } - } - break; - - case 2: - count = 2 << d_y_aspect_shift; - - for ( ; count ; count--, pz += d_zwidth, pdest += screenwidth) - { - if (pz[0] <= izi) - { - pz[0] = izi; - pdest[0] = pparticle->color; - } - - if (pz[1] <= izi) - { - pz[1] = izi; - pdest[1] = pparticle->color; - } - } - break; - - case 3: - count = 3 << d_y_aspect_shift; - - for ( ; count ; count--, pz += d_zwidth, pdest += screenwidth) - { - if (pz[0] <= izi) - { - pz[0] = izi; - pdest[0] = pparticle->color; - } - - if (pz[1] <= izi) - { - pz[1] = izi; - pdest[1] = pparticle->color; - } - - if (pz[2] <= izi) - { - pz[2] = izi; - pdest[2] = pparticle->color; - } - } - break; - - case 4: - count = 4 << d_y_aspect_shift; - - for ( ; count ; count--, pz += d_zwidth, pdest += screenwidth) - { - if (pz[0] <= izi) - { - pz[0] = izi; - pdest[0] = pparticle->color; - } - - if (pz[1] <= izi) - { - pz[1] = izi; - pdest[1] = pparticle->color; - } - - if (pz[2] <= izi) - { - pz[2] = izi; - pdest[2] = pparticle->color; - } - - if (pz[3] <= izi) - { - pz[3] = izi; - pdest[3] = pparticle->color; - } - } - break; - - default: - count = pix << d_y_aspect_shift; - - for ( ; count ; count--, pz += d_zwidth, pdest += screenwidth) - { - for (i=0 ; icolor; - } - } - } - break; - } -} - -#endif // !id386 - +/* +Copyright (C) 1996-1997 Id Software, Inc. + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +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. + +See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ +// d_part.c: software driver module for drawing particles + +#include "quakedef.h" +#include "d_local.h" + + +/* +============== +D_EndParticles +============== +*/ +void D_EndParticles (void) +{ +// not used by software driver +} + + +/* +============== +D_StartParticles +============== +*/ +void D_StartParticles (void) +{ +// not used by software driver +} + + +#if !id386 + +/* +============== +D_DrawParticle +============== +*/ +void D_DrawParticle (particle_t *pparticle) +{ + vec3_t local, transformed; + float zi; + byte *pdest; + short *pz; + int i, izi, pix, count, u, v; + +// transform point + VectorSubtract (pparticle->org, r_origin, local); + + transformed[0] = DotProduct(local, r_pright); + transformed[1] = DotProduct(local, r_pup); + transformed[2] = DotProduct(local, r_ppn); + + if (transformed[2] < PARTICLE_Z_CLIP) + return; + +// project the point +// FIXME: preadjust xcenter and ycenter + zi = 1.0 / transformed[2]; + u = (int)(xcenter + zi * transformed[0] + 0.5); + v = (int)(ycenter - zi * transformed[1] + 0.5); + + if ((v > d_vrectbottom_particle) || + (u > d_vrectright_particle) || + (v < d_vrecty) || + (u < d_vrectx)) + { + return; + } + + pz = d_pzbuffer + (d_zwidth * v) + u; + pdest = d_viewbuffer + d_scantable[v] + u; + izi = (int)(zi * 0x8000); + + pix = izi >> d_pix_shift; + + if (pix < d_pix_min) + pix = d_pix_min; + else if (pix > d_pix_max) + pix = d_pix_max; + + switch (pix) + { + case 1: + count = 1 << d_y_aspect_shift; + + for ( ; count ; count--, pz += d_zwidth, pdest += screenwidth) + { + if (pz[0] <= izi) + { + pz[0] = izi; + pdest[0] = pparticle->color; + } + } + break; + + case 2: + count = 2 << d_y_aspect_shift; + + for ( ; count ; count--, pz += d_zwidth, pdest += screenwidth) + { + if (pz[0] <= izi) + { + pz[0] = izi; + pdest[0] = pparticle->color; + } + + if (pz[1] <= izi) + { + pz[1] = izi; + pdest[1] = pparticle->color; + } + } + break; + + case 3: + count = 3 << d_y_aspect_shift; + + for ( ; count ; count--, pz += d_zwidth, pdest += screenwidth) + { + if (pz[0] <= izi) + { + pz[0] = izi; + pdest[0] = pparticle->color; + } + + if (pz[1] <= izi) + { + pz[1] = izi; + pdest[1] = pparticle->color; + } + + if (pz[2] <= izi) + { + pz[2] = izi; + pdest[2] = pparticle->color; + } + } + break; + + case 4: + count = 4 << d_y_aspect_shift; + + for ( ; count ; count--, pz += d_zwidth, pdest += screenwidth) + { + if (pz[0] <= izi) + { + pz[0] = izi; + pdest[0] = pparticle->color; + } + + if (pz[1] <= izi) + { + pz[1] = izi; + pdest[1] = pparticle->color; + } + + if (pz[2] <= izi) + { + pz[2] = izi; + pdest[2] = pparticle->color; + } + + if (pz[3] <= izi) + { + pz[3] = izi; + pdest[3] = pparticle->color; + } + } + break; + + default: + count = pix << d_y_aspect_shift; + + for ( ; count ; count--, pz += d_zwidth, pdest += screenwidth) + { + for (i=0 ; icolor; + } + } + } + break; + } +} + +#endif // !id386 + -- cgit v1.2.3