diff options
Diffstat (limited to 'src/sw_poly.c')
-rw-r--r-- | src/sw_poly.c | 683 |
1 files changed, 300 insertions, 383 deletions
diff --git a/src/sw_poly.c b/src/sw_poly.c index 16d1ee2..b26de62 100644 --- a/src/sw_poly.c +++ b/src/sw_poly.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. @@ -22,8 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define AFFINE_SPANLET_SIZE 16 #define AFFINE_SPANLET_SIZE_BITS 4 -typedef struct -{ +typedef struct { byte *pbase, *pdest; short *pz; fixed16_t s, t; @@ -46,31 +45,28 @@ mface_t *r_alpha_surfaces; extern int *r_turb_turb; static int clip_current; -static vec5_t r_clip_verts[2][MAXWORKINGVERTS+2]; +static vec5_t r_clip_verts[2][MAXWORKINGVERTS + 2]; static int s_minindex, s_maxindex; -static void R_DrawPoly( int iswater ); +static void R_DrawPoly(int iswater); /* ** R_DrawSpanletOpaque */ -static void R_DrawSpanletOpaque( void ) +static void R_DrawSpanletOpaque(void) { unsigned btemp; - do - { + do { unsigned ts, tt; ts = s_spanletvars.s >> 16; tt = s_spanletvars.t >> 16; btemp = *(s_spanletvars.pbase + (ts) + (tt) * cachewidth); - if (btemp != 255) - { - if (*s_spanletvars.pz <= (s_spanletvars.izi >> 16)) - { + if (btemp != 255) { + if (*s_spanletvars.pz <= (s_spanletvars.izi >> 16)) { *s_spanletvars.pz = s_spanletvars.izi >> 16; *s_spanletvars.pdest = btemp; } @@ -87,26 +83,24 @@ static void R_DrawSpanletOpaque( void ) /* ** R_DrawSpanletTurbulentStipple33 */ -static void R_DrawSpanletTurbulentStipple33( void ) +static void R_DrawSpanletTurbulentStipple33(void) { unsigned btemp; int sturb, tturb; byte *pdest = s_spanletvars.pdest; short *pz = s_spanletvars.pz; int izi = s_spanletvars.izi; - - if ( s_spanletvars.v & 1 ) - { + + if (s_spanletvars.v & 1) { s_spanletvars.pdest += s_spanletvars.spancount; s_spanletvars.pz += s_spanletvars.spancount; - if ( s_spanletvars.spancount == AFFINE_SPANLET_SIZE ) + if (s_spanletvars.spancount == AFFINE_SPANLET_SIZE) s_spanletvars.izi += s_spanletvars.izistep << AFFINE_SPANLET_SIZE_BITS; else s_spanletvars.izi += s_spanletvars.izistep * s_spanletvars.izistep; - - if ( s_spanletvars.u & 1 ) - { + + if (s_spanletvars.u & 1) { izi += s_spanletvars.izistep; s_spanletvars.s += s_spanletvars.sstep; s_spanletvars.t += s_spanletvars.tstep; @@ -119,23 +113,22 @@ static void R_DrawSpanletTurbulentStipple33( void ) s_spanletvars.sstep *= 2; s_spanletvars.tstep *= 2; - while ( s_spanletvars.spancount > 0 ) - { - sturb = ((s_spanletvars.s + r_turb_turb[(s_spanletvars.t>>16)&(CYCLE-1)])>>16)&63; - tturb = ((s_spanletvars.t + r_turb_turb[(s_spanletvars.s>>16)&(CYCLE-1)])>>16)&63; - - btemp = *( s_spanletvars.pbase + ( sturb ) + ( tturb << 6 ) ); - - if ( *pz <= ( izi >> 16 ) ) + while (s_spanletvars.spancount > 0) { + sturb = ((s_spanletvars.s + r_turb_turb[(s_spanletvars.t >> 16) & (CYCLE - 1)]) >> 16) & 63; + tturb = ((s_spanletvars.t + r_turb_turb[(s_spanletvars.s >> 16) & (CYCLE - 1)]) >> 16) & 63; + + btemp = *(s_spanletvars.pbase + (sturb) + (tturb << 6)); + + if (*pz <= (izi >> 16)) *pdest = btemp; - + izi += s_spanletvars.izistep_times_2; s_spanletvars.s += s_spanletvars.sstep; s_spanletvars.t += s_spanletvars.tstep; - + pdest += 2; pz += 2; - + s_spanletvars.spancount -= 2; } } @@ -144,26 +137,24 @@ static void R_DrawSpanletTurbulentStipple33( void ) /* ** R_DrawSpanletTurbulentStipple66 */ -static void R_DrawSpanletTurbulentStipple66( void ) +static void R_DrawSpanletTurbulentStipple66(void) { unsigned btemp; int sturb, tturb; byte *pdest = s_spanletvars.pdest; short *pz = s_spanletvars.pz; int izi = s_spanletvars.izi; - - if ( !( s_spanletvars.v & 1 ) ) - { + + if (!(s_spanletvars.v & 1)) { s_spanletvars.pdest += s_spanletvars.spancount; s_spanletvars.pz += s_spanletvars.spancount; - if ( s_spanletvars.spancount == AFFINE_SPANLET_SIZE ) + if (s_spanletvars.spancount == AFFINE_SPANLET_SIZE) s_spanletvars.izi += s_spanletvars.izistep << AFFINE_SPANLET_SIZE_BITS; else s_spanletvars.izi += s_spanletvars.izistep * s_spanletvars.izistep; - - if ( s_spanletvars.u & 1 ) - { + + if (s_spanletvars.u & 1) { izi += s_spanletvars.izistep; s_spanletvars.s += s_spanletvars.sstep; s_spanletvars.t += s_spanletvars.tstep; @@ -176,53 +167,49 @@ static void R_DrawSpanletTurbulentStipple66( void ) s_spanletvars.sstep *= 2; s_spanletvars.tstep *= 2; - while ( s_spanletvars.spancount > 0 ) - { - sturb = ((s_spanletvars.s + r_turb_turb[(s_spanletvars.t>>16)&(CYCLE-1)])>>16)&63; - tturb = ((s_spanletvars.t + r_turb_turb[(s_spanletvars.s>>16)&(CYCLE-1)])>>16)&63; - - btemp = *( s_spanletvars.pbase + ( sturb ) + ( tturb << 6 ) ); - - if ( *pz <= ( izi >> 16 ) ) + while (s_spanletvars.spancount > 0) { + sturb = ((s_spanletvars.s + r_turb_turb[(s_spanletvars.t >> 16) & (CYCLE - 1)]) >> 16) & 63; + tturb = ((s_spanletvars.t + r_turb_turb[(s_spanletvars.s >> 16) & (CYCLE - 1)]) >> 16) & 63; + + btemp = *(s_spanletvars.pbase + (sturb) + (tturb << 6)); + + if (*pz <= (izi >> 16)) *pdest = btemp; - + izi += s_spanletvars.izistep_times_2; s_spanletvars.s += s_spanletvars.sstep; s_spanletvars.t += s_spanletvars.tstep; - + pdest += 2; pz += 2; - + s_spanletvars.spancount -= 2; } - } - else - { + } else { s_spanletvars.pdest += s_spanletvars.spancount; s_spanletvars.pz += s_spanletvars.spancount; - if ( s_spanletvars.spancount == AFFINE_SPANLET_SIZE ) + if (s_spanletvars.spancount == AFFINE_SPANLET_SIZE) s_spanletvars.izi += s_spanletvars.izistep << AFFINE_SPANLET_SIZE_BITS; else s_spanletvars.izi += s_spanletvars.izistep * s_spanletvars.izistep; - - while ( s_spanletvars.spancount > 0 ) - { - sturb = ((s_spanletvars.s + r_turb_turb[(s_spanletvars.t>>16)&(CYCLE-1)])>>16)&63; - tturb = ((s_spanletvars.t + r_turb_turb[(s_spanletvars.s>>16)&(CYCLE-1)])>>16)&63; - - btemp = *( s_spanletvars.pbase + ( sturb ) + ( tturb << 6 ) ); - - if ( *pz <= ( izi >> 16 ) ) + + while (s_spanletvars.spancount > 0) { + sturb = ((s_spanletvars.s + r_turb_turb[(s_spanletvars.t >> 16) & (CYCLE - 1)]) >> 16) & 63; + tturb = ((s_spanletvars.t + r_turb_turb[(s_spanletvars.s >> 16) & (CYCLE - 1)]) >> 16) & 63; + + btemp = *(s_spanletvars.pbase + (sturb) + (tturb << 6)); + + if (*pz <= (izi >> 16)) *pdest = btemp; - + izi += s_spanletvars.izistep; s_spanletvars.s += s_spanletvars.sstep; s_spanletvars.t += s_spanletvars.tstep; - + pdest++; pz++; - + s_spanletvars.spancount--; } } @@ -231,20 +218,19 @@ static void R_DrawSpanletTurbulentStipple66( void ) /* ** R_DrawSpanletTurbulentBlended */ -static void R_DrawSpanletTurbulentBlended66( void ) +static void R_DrawSpanletTurbulentBlended66(void) { unsigned btemp; int sturb, tturb; - do - { - sturb = ((s_spanletvars.s + r_turb_turb[(s_spanletvars.t>>16)&(CYCLE-1)])>>16)&63; - tturb = ((s_spanletvars.t + r_turb_turb[(s_spanletvars.s>>16)&(CYCLE-1)])>>16)&63; + do { + sturb = ((s_spanletvars.s + r_turb_turb[(s_spanletvars.t >> 16) & (CYCLE - 1)]) >> 16) & 63; + tturb = ((s_spanletvars.t + r_turb_turb[(s_spanletvars.s >> 16) & (CYCLE - 1)]) >> 16) & 63; - btemp = *( s_spanletvars.pbase + ( sturb ) + ( tturb << 6 ) ); + btemp = *(s_spanletvars.pbase + (sturb) + (tturb << 6)); - if ( *s_spanletvars.pz <= ( s_spanletvars.izi >> 16 ) ) - *s_spanletvars.pdest = vid.alphamap[btemp*256+*s_spanletvars.pdest]; + if (*s_spanletvars.pz <= (s_spanletvars.izi >> 16)) + *s_spanletvars.pdest = vid.alphamap[btemp * 256 + *s_spanletvars.pdest]; s_spanletvars.izi += s_spanletvars.izistep; s_spanletvars.pdest++; @@ -252,23 +238,22 @@ static void R_DrawSpanletTurbulentBlended66( void ) s_spanletvars.s += s_spanletvars.sstep; s_spanletvars.t += s_spanletvars.tstep; - } while ( --s_spanletvars.spancount > 0 ); + } while (--s_spanletvars.spancount > 0); } -static void R_DrawSpanletTurbulentBlended33( void ) +static void R_DrawSpanletTurbulentBlended33(void) { unsigned btemp; int sturb, tturb; - do - { - sturb = ((s_spanletvars.s + r_turb_turb[(s_spanletvars.t>>16)&(CYCLE-1)])>>16)&63; - tturb = ((s_spanletvars.t + r_turb_turb[(s_spanletvars.s>>16)&(CYCLE-1)])>>16)&63; + do { + sturb = ((s_spanletvars.s + r_turb_turb[(s_spanletvars.t >> 16) & (CYCLE - 1)]) >> 16) & 63; + tturb = ((s_spanletvars.t + r_turb_turb[(s_spanletvars.s >> 16) & (CYCLE - 1)]) >> 16) & 63; - btemp = *( s_spanletvars.pbase + ( sturb ) + ( tturb << 6 ) ); + btemp = *(s_spanletvars.pbase + (sturb) + (tturb << 6)); - if ( *s_spanletvars.pz <= ( s_spanletvars.izi >> 16 ) ) - *s_spanletvars.pdest = vid.alphamap[btemp+*s_spanletvars.pdest*256]; + if (*s_spanletvars.pz <= (s_spanletvars.izi >> 16)) + *s_spanletvars.pdest = vid.alphamap[btemp + *s_spanletvars.pdest * 256]; s_spanletvars.izi += s_spanletvars.izistep; s_spanletvars.pdest++; @@ -276,18 +261,17 @@ static void R_DrawSpanletTurbulentBlended33( void ) s_spanletvars.s += s_spanletvars.sstep; s_spanletvars.t += s_spanletvars.tstep; - } while ( --s_spanletvars.spancount > 0 ); + } while (--s_spanletvars.spancount > 0); } /* ** R_DrawSpanlet33 */ -static void R_DrawSpanlet33( void ) +static void R_DrawSpanlet33(void) { unsigned btemp; - do - { + do { unsigned ts, tt; ts = s_spanletvars.s >> 16; @@ -295,11 +279,9 @@ static void R_DrawSpanlet33( void ) btemp = *(s_spanletvars.pbase + (ts) + (tt) * cachewidth); - if ( btemp != 255 ) - { - if (*s_spanletvars.pz <= (s_spanletvars.izi >> 16)) - { - *s_spanletvars.pdest = vid.alphamap[btemp+*s_spanletvars.pdest*256]; + if (btemp != 255) { + if (*s_spanletvars.pz <= (s_spanletvars.izi >> 16)) { + *s_spanletvars.pdest = vid.alphamap[btemp + *s_spanletvars.pdest * 256]; } } @@ -311,13 +293,11 @@ static void R_DrawSpanlet33( void ) } while (--s_spanletvars.spancount > 0); } -static void R_DrawSpanletConstant33( void ) +static void R_DrawSpanletConstant33(void) { - do - { - if (*s_spanletvars.pz <= (s_spanletvars.izi >> 16)) - { - *s_spanletvars.pdest = vid.alphamap[r_polyblendcolor+*s_spanletvars.pdest*256]; + do { + if (*s_spanletvars.pz <= (s_spanletvars.izi >> 16)) { + *s_spanletvars.pdest = vid.alphamap[r_polyblendcolor + *s_spanletvars.pdest * 256]; } s_spanletvars.izi += s_spanletvars.izistep; @@ -329,12 +309,11 @@ static void R_DrawSpanletConstant33( void ) /* ** R_DrawSpanlet66 */ -static void R_DrawSpanlet66( void ) +static void R_DrawSpanlet66(void) { unsigned btemp; - do - { + do { unsigned ts, tt; ts = s_spanletvars.s >> 16; @@ -342,11 +321,9 @@ static void R_DrawSpanlet66( void ) btemp = *(s_spanletvars.pbase + (ts) + (tt) * cachewidth); - if ( btemp != 255 ) - { - if (*s_spanletvars.pz <= (s_spanletvars.izi >> 16)) - { - *s_spanletvars.pdest = vid.alphamap[btemp*256+*s_spanletvars.pdest]; + if (btemp != 255) { + if (*s_spanletvars.pz <= (s_spanletvars.izi >> 16)) { + *s_spanletvars.pdest = vid.alphamap[btemp * 256 + *s_spanletvars.pdest]; } } @@ -361,25 +338,23 @@ static void R_DrawSpanlet66( void ) /* ** R_DrawSpanlet33Stipple */ -static void R_DrawSpanlet33Stipple( void ) +static void R_DrawSpanlet33Stipple(void) { unsigned btemp; byte *pdest = s_spanletvars.pdest; short *pz = s_spanletvars.pz; int izi = s_spanletvars.izi; - - if ( r_polydesc.stipple_parity ^ ( s_spanletvars.v & 1 ) ) - { + + if (r_polydesc.stipple_parity ^(s_spanletvars.v & 1)) { s_spanletvars.pdest += s_spanletvars.spancount; s_spanletvars.pz += s_spanletvars.spancount; - if ( s_spanletvars.spancount == AFFINE_SPANLET_SIZE ) + if (s_spanletvars.spancount == AFFINE_SPANLET_SIZE) s_spanletvars.izi += s_spanletvars.izistep << AFFINE_SPANLET_SIZE_BITS; else s_spanletvars.izi += s_spanletvars.izistep * s_spanletvars.izistep; - - if ( r_polydesc.stipple_parity ^ ( s_spanletvars.u & 1 ) ) - { + + if (r_polydesc.stipple_parity ^(s_spanletvars.u & 1)) { izi += s_spanletvars.izistep; s_spanletvars.s += s_spanletvars.sstep; s_spanletvars.t += s_spanletvars.tstep; @@ -392,26 +367,24 @@ static void R_DrawSpanlet33Stipple( void ) s_spanletvars.sstep *= 2; s_spanletvars.tstep *= 2; - while ( s_spanletvars.spancount > 0 ) - { + while (s_spanletvars.spancount > 0) { unsigned s = s_spanletvars.s >> 16; unsigned t = s_spanletvars.t >> 16; - btemp = *( s_spanletvars.pbase + ( s ) + ( t * cachewidth ) ); - - if ( btemp != 255 ) - { - if ( *pz <= ( izi >> 16 ) ) + btemp = *(s_spanletvars.pbase + (s) + (t * cachewidth)); + + if (btemp != 255) { + if (*pz <= (izi >> 16)) *pdest = btemp; } - + izi += s_spanletvars.izistep_times_2; s_spanletvars.s += s_spanletvars.sstep; s_spanletvars.t += s_spanletvars.tstep; - + pdest += 2; pz += 2; - + s_spanletvars.spancount -= 2; } } @@ -420,7 +393,7 @@ static void R_DrawSpanlet33Stipple( void ) /* ** R_DrawSpanlet66Stipple */ -static void R_DrawSpanlet66Stipple( void ) +static void R_DrawSpanlet66Stipple(void) { unsigned btemp; byte *pdest = s_spanletvars.pdest; @@ -430,15 +403,13 @@ static void R_DrawSpanlet66Stipple( void ) s_spanletvars.pdest += s_spanletvars.spancount; s_spanletvars.pz += s_spanletvars.spancount; - if ( s_spanletvars.spancount == AFFINE_SPANLET_SIZE ) + if (s_spanletvars.spancount == AFFINE_SPANLET_SIZE) s_spanletvars.izi += s_spanletvars.izistep << AFFINE_SPANLET_SIZE_BITS; else s_spanletvars.izi += s_spanletvars.izistep * s_spanletvars.izistep; - if ( r_polydesc.stipple_parity ^ ( s_spanletvars.v & 1 ) ) - { - if ( r_polydesc.stipple_parity ^ ( s_spanletvars.u & 1 ) ) - { + if (r_polydesc.stipple_parity ^(s_spanletvars.v & 1)) { + if (r_polydesc.stipple_parity ^(s_spanletvars.u & 1)) { izi += s_spanletvars.izistep; s_spanletvars.s += s_spanletvars.sstep; s_spanletvars.t += s_spanletvars.tstep; @@ -451,51 +422,45 @@ static void R_DrawSpanlet66Stipple( void ) s_spanletvars.sstep *= 2; s_spanletvars.tstep *= 2; - while ( s_spanletvars.spancount > 0 ) - { + while (s_spanletvars.spancount > 0) { unsigned s = s_spanletvars.s >> 16; unsigned t = s_spanletvars.t >> 16; - - btemp = *( s_spanletvars.pbase + ( s ) + ( t * cachewidth ) ); - if ( btemp != 255 ) - { - if ( *pz <= ( izi >> 16 ) ) + btemp = *(s_spanletvars.pbase + (s) + (t * cachewidth)); + + if (btemp != 255) { + if (*pz <= (izi >> 16)) *pdest = btemp; } - + izi += s_spanletvars.izistep_times_2; s_spanletvars.s += s_spanletvars.sstep; s_spanletvars.t += s_spanletvars.tstep; - + pdest += 2; pz += 2; - + s_spanletvars.spancount -= 2; } - } - else - { - while ( s_spanletvars.spancount > 0 ) - { + } else { + while (s_spanletvars.spancount > 0) { unsigned s = s_spanletvars.s >> 16; unsigned t = s_spanletvars.t >> 16; - - btemp = *( s_spanletvars.pbase + ( s ) + ( t * cachewidth ) ); - - if ( btemp != 255 ) - { - if ( *pz <= ( izi >> 16 ) ) + + btemp = *(s_spanletvars.pbase + (s) + (t * cachewidth)); + + if (btemp != 255) { + if (*pz <= (izi >> 16)) *pdest = btemp; } - + izi += s_spanletvars.izistep; s_spanletvars.s += s_spanletvars.sstep; s_spanletvars.t += s_spanletvars.tstep; - + pdest++; pz++; - + s_spanletvars.spancount--; } } @@ -507,75 +472,69 @@ static void R_DrawSpanlet66Stipple( void ) ** Clips the winding at clip_verts[clip_current] and changes clip_current ** Throws out the back side */ -static int R_ClipPolyFace (int nump, clipplane_t *pclipplane) +static int R_ClipPolyFace(int nump, clipplane_t *pclipplane) { int i, outcount; - float dists[MAXWORKINGVERTS+3]; + float dists[MAXWORKINGVERTS + 3]; float frac, clipdist, *pclipnormal; float *in, *instep, *outstep, *vert2; clipdist = pclipplane->dist; pclipnormal = pclipplane->normal; - + // calc dists - if (clip_current) - { + if (clip_current) { in = r_clip_verts[1][0]; outstep = r_clip_verts[0][0]; clip_current = 0; - } - else - { + } else { in = r_clip_verts[0][0]; outstep = r_clip_verts[1][0]; clip_current = 1; } - + instep = in; - for (i=0 ; i<nump ; i++, instep += sizeof (vec5_t) / sizeof (float)) - { - dists[i] = DotProduct (instep, pclipnormal) - clipdist; + for (i = 0; i < nump; i++, instep += sizeof(vec5_t) / sizeof(float)) { + dists[i] = DotProduct(instep, pclipnormal) - clipdist; } - + // handle wraparound case dists[nump] = dists[0]; - memcpy (instep, in, sizeof (vec5_t)); + memcpy(instep, in, sizeof(vec5_t)); // clip the winding instep = in; outcount = 0; - for (i=0 ; i<nump ; i++, instep += sizeof (vec5_t) / sizeof (float)) - { - if (dists[i] >= 0) - { - memcpy (outstep, instep, sizeof (vec5_t)); - outstep += sizeof (vec5_t) / sizeof (float); + for (i = 0; i < nump; i++, instep += sizeof(vec5_t) / sizeof(float)) { + if (dists[i] >= 0) { + memcpy(outstep, instep, sizeof(vec5_t)); + outstep += sizeof(vec5_t) / sizeof(float); outcount++; } - if (dists[i] == 0 || dists[i+1] == 0) + if (dists[i] == 0 || dists[i + 1] == 0) continue; - if ( (dists[i] > 0) == (dists[i+1] > 0) ) + if ((dists[i] > 0) == (dists[i + 1] > 0)) continue; - - // split it into a new vertex - frac = dists[i] / (dists[i] - dists[i+1]); - - vert2 = instep + sizeof (vec5_t) / sizeof (float); - - outstep[0] = instep[0] + frac*(vert2[0] - instep[0]); - outstep[1] = instep[1] + frac*(vert2[1] - instep[1]); - outstep[2] = instep[2] + frac*(vert2[2] - instep[2]); - outstep[3] = instep[3] + frac*(vert2[3] - instep[3]); - outstep[4] = instep[4] + frac*(vert2[4] - instep[4]); - - outstep += sizeof (vec5_t) / sizeof (float); + + // split it into a new vertex + frac = dists[i] / (dists[i] - dists[i + 1]); + + vert2 = instep + sizeof(vec5_t) / sizeof(float); + + outstep[0] = instep[0] + frac * (vert2[0] - instep[0]); + outstep[1] = instep[1] + frac * (vert2[1] - instep[1]); + outstep[2] = instep[2] + frac * (vert2[2] - instep[2]); + outstep[3] = instep[3] + frac * (vert2[3] - instep[3]); + outstep[4] = instep[4] + frac * (vert2[4] - instep[4]); + + outstep += sizeof(vec5_t) / sizeof(float); outcount++; - } - + } + return outcount; } @@ -583,7 +542,7 @@ static int R_ClipPolyFace (int nump, clipplane_t *pclipplane) ** R_PolygonDrawSpans */ // PGM - iswater was qboolean. changed to allow passing more flags -static void R_PolygonDrawSpans(espan_t *pspan, int iswater ) +static void R_PolygonDrawSpans(espan_t *pspan, int iswater) { int count; fixed16_t snext, tnext; @@ -593,8 +552,8 @@ static void R_PolygonDrawSpans(espan_t *pspan, int iswater ) s_spanletvars.pbase = cacheblock; //PGM - if ( iswater & SURF_WARP) - r_turb_turb = sintable + ((int)(r_newrefdef.time*SPEED)&(CYCLE-1)); + if (iswater & SURF_WARP) + r_turb_turb = sintable + ((int)(r_newrefdef.time * SPEED) & (CYCLE - 1)); else if (iswater & SURF_FLOWING) r_turb_turb = blanktable; //PGM @@ -609,9 +568,8 @@ static void R_PolygonDrawSpans(espan_t *pspan, int iswater ) s_spanletvars.pz = 0; - do - { - s_spanletvars.pdest = (byte *)d_viewbuffer + ( d_scantable[pspan->v] /*r_screenwidth * pspan->v*/) + pspan->u; + do { + s_spanletvars.pdest = (byte *)d_viewbuffer + (d_scantable[pspan->v] /*r_screenwidth * pspan->v*/) + pspan->u; s_spanletvars.pz = d_pzbuffer + (d_zwidth * pspan->v) + pspan->u; s_spanletvars.u = pspan->u; s_spanletvars.v = pspan->v; @@ -621,23 +579,22 @@ static void R_PolygonDrawSpans(espan_t *pspan, int iswater ) if (count <= 0) goto NextSpan; - // calculate the initial s/z, t/z, 1/z, s, and t and clamp + // calculate the initial s/z, t/z, 1/z, s, and t and clamp du = (float)pspan->u; dv = (float)pspan->v; - sdivz = d_sdivzorigin + dv*d_sdivzstepv + du*d_sdivzstepu; - tdivz = d_tdivzorigin + dv*d_tdivzstepv + du*d_tdivzstepu; + sdivz = d_sdivzorigin + dv * d_sdivzstepv + du * d_sdivzstepu; + tdivz = d_tdivzorigin + dv * d_tdivzstepv + du * d_tdivzstepu; - zi = d_ziorigin + dv*d_zistepv + du*d_zistepu; + zi = d_ziorigin + dv * d_zistepv + du * d_zistepu; z = (float)0x10000 / zi; // prescale to 16.16 fixed-point - // we count on FP exceptions being turned off to avoid range problems + // we count on FP exceptions being turned off to avoid range problems s_spanletvars.izi = (int)(zi * 0x8000 * 0x10000); s_spanletvars.s = (int)(sdivz * z) + sadjust; s_spanletvars.t = (int)(tdivz * z) + tadjust; - if ( !iswater ) - { + if (!iswater) { if (s_spanletvars.s > bbextents) s_spanletvars.s = bbextents; else if (s_spanletvars.s < 0) @@ -649,20 +606,18 @@ static void R_PolygonDrawSpans(espan_t *pspan, int iswater ) s_spanletvars.t = 0; } - do - { - // calculate s and t at the far end of the span - if (count >= AFFINE_SPANLET_SIZE ) + do { + // calculate s and t at the far end of the span + if (count >= AFFINE_SPANLET_SIZE) s_spanletvars.spancount = AFFINE_SPANLET_SIZE; else s_spanletvars.spancount = count; count -= s_spanletvars.spancount; - if (count) - { - // calculate s/z, t/z, zi->fixed s and t at far end of span, - // calculate s and t steps across span by shifting + if (count) { + // calculate s/z, t/z, zi->fixed s and t at far end of span, + // calculate s and t steps across span by shifting sdivz += sdivzspanletstepu; tdivz += tdivzspanletstepu; zi += zispanletstepu; @@ -671,14 +626,13 @@ static void R_PolygonDrawSpans(espan_t *pspan, int iswater ) snext = (int)(sdivz * z) + sadjust; tnext = (int)(tdivz * z) + tadjust; - if ( !iswater ) - { + if (!iswater) { if (snext > bbextents) snext = bbextents; else if (snext < AFFINE_SPANLET_SIZE) snext = AFFINE_SPANLET_SIZE; // prevent round-off error on <0 steps from - // from causing overstepping & running off the - // edge of the texture + // from causing overstepping & running off the + // edge of the texture if (tnext > bbextentt) tnext = bbextentt; @@ -688,13 +642,11 @@ static void R_PolygonDrawSpans(espan_t *pspan, int iswater ) s_spanletvars.sstep = (snext - s_spanletvars.s) >> AFFINE_SPANLET_SIZE_BITS; s_spanletvars.tstep = (tnext - s_spanletvars.t) >> AFFINE_SPANLET_SIZE_BITS; - } - else - { - // calculate s/z, t/z, zi->fixed s and t at last pixel in span (so - // can't step off polygon), clamp, calculate s and t steps across - // span by division, biasing steps low so we don't run off the - // texture + } else { + // calculate s/z, t/z, zi->fixed s and t at last pixel in span (so + // can't step off polygon), clamp, calculate s and t steps across + // span by division, biasing steps low so we don't run off the + // texture spancountminus1 = (float)(s_spanletvars.spancount - 1); sdivz += d_sdivzstepu * spancountminus1; tdivz += d_tdivzstepu * spancountminus1; @@ -703,14 +655,13 @@ static void R_PolygonDrawSpans(espan_t *pspan, int iswater ) snext = (int)(sdivz * z) + sadjust; tnext = (int)(tdivz * z) + tadjust; - if ( !iswater ) - { + if (!iswater) { if (snext > bbextents) snext = bbextents; else if (snext < AFFINE_SPANLET_SIZE) snext = AFFINE_SPANLET_SIZE; // prevent round-off error on <0 steps from - // from causing overstepping & running off the - // edge of the texture + // from causing overstepping & running off the + // edge of the texture if (tnext > bbextentt) tnext = bbextentt; @@ -718,17 +669,15 @@ static void R_PolygonDrawSpans(espan_t *pspan, int iswater ) tnext = AFFINE_SPANLET_SIZE; // guard against round-off error on <0 steps } - if (s_spanletvars.spancount > 1) - { + if (s_spanletvars.spancount > 1) { s_spanletvars.sstep = (snext - s_spanletvars.s) / (s_spanletvars.spancount - 1); s_spanletvars.tstep = (tnext - s_spanletvars.t) / (s_spanletvars.spancount - 1); } } - if ( iswater ) - { - s_spanletvars.s = s_spanletvars.s & ((CYCLE<<16)-1); - s_spanletvars.t = s_spanletvars.t & ((CYCLE<<16)-1); + if (iswater) { + s_spanletvars.s = s_spanletvars.s & ((CYCLE << 16) - 1); + s_spanletvars.t = s_spanletvars.t & ((CYCLE << 16) - 1); } r_polydesc.drawspanlet(); @@ -748,10 +697,10 @@ NextSpan: ** ** R_PolygonScanLeftEdge ** -** Goes through the polygon and scans the left edge, filling in +** Goes through the polygon and scans the left edge, filling in ** screen coordinate data for the spans */ -static void R_PolygonScanLeftEdge (void) +static void R_PolygonScanLeftEdge(void) { int i, v, itop, ibottom, lmaxindex; emitpoint_t *pvert, *pnext; @@ -768,30 +717,27 @@ static void R_PolygonScanLeftEdge (void) if (lmaxindex == 0) lmaxindex = r_polydesc.nump; - vtop = ceil (r_polydesc.pverts[i].v); + vtop = ceil(r_polydesc.pverts[i].v); - do - { + do { pvert = &r_polydesc.pverts[i]; pnext = pvert - 1; - vbottom = ceil (pnext->v); + vbottom = ceil(pnext->v); - if (vtop < vbottom) - { + if (vtop < vbottom) { du = pnext->u - pvert->u; dv = pnext->v - pvert->v; slope = du / dv; u_step = (int)(slope * 0x10000); - // adjust u to ceil the integer portion + // adjust u to ceil the integer portion u = (int)((pvert->u + (slope * (vtop - pvert->v))) * 0x10000) + - (0x10000 - 1); + (0x10000 - 1); itop = (int)vtop; ibottom = (int)vbottom; - for (v=itop ; v<ibottom ; v++) - { + for (v = itop; v < ibottom; v++) { pspan->u = u >> 16; pspan->v = v; u += u_step; @@ -814,7 +760,7 @@ static void R_PolygonScanLeftEdge (void) ** Goes through the polygon and scans the right edge, filling in ** count values. */ -static void R_PolygonScanRightEdge (void) +static void R_PolygonScanRightEdge(void) { int i, v, itop, ibottom; emitpoint_t *pvert, *pnext; @@ -831,10 +777,9 @@ static void R_PolygonScanRightEdge (void) if (vvert > r_refdef.fvrectbottom_adj) vvert = r_refdef.fvrectbottom_adj; - vtop = ceil (vvert); + vtop = ceil(vvert); - do - { + do { pvert = &r_polydesc.pverts[i]; pnext = pvert + 1; @@ -844,10 +789,9 @@ static void R_PolygonScanRightEdge (void) if (vnext > r_refdef.fvrectbottom_adj) vnext = r_refdef.fvrectbottom_adj; - vbottom = ceil (vnext); + vbottom = ceil(vnext); - if (vtop < vbottom) - { + if (vtop < vbottom) { uvert = pvert->u; if (uvert < r_refdef.fvrectx_adj) uvert = r_refdef.fvrectx_adj; @@ -864,14 +808,13 @@ static void R_PolygonScanRightEdge (void) dv = vnext - vvert; slope = du / dv; u_step = (int)(slope * 0x10000); - // adjust u to ceil the integer portion + // adjust u to ceil the integer portion u = (int)((uvert + (slope * (vtop - vvert))) * 0x10000) + - (0x10000 - 1); + (0x10000 - 1); itop = (int)vtop; ibottom = (int)vbottom; - for (v=itop ; v<ibottom ; v++) - { + for (v = itop; v < ibottom; v++) { pspan->count = (u >> 16) - pspan->u; u += u_step; pspan++; @@ -887,70 +830,55 @@ static void R_PolygonScanRightEdge (void) } while (i != s_maxindex); - pspan->count = DS_SPAN_LIST_END; // mark the end of the span list + pspan->count = DS_SPAN_LIST_END; // mark the end of the span list } /* ** R_ClipAndDrawPoly */ // PGM - isturbulent was qboolean. changed to int to allow passing more flags -static void R_ClipAndDrawPoly ( float alpha, int isturbulent, qboolean textured ) +static void R_ClipAndDrawPoly(float alpha, int isturbulent, qboolean textured) { - emitpoint_t outverts[MAXWORKINGVERTS+3], *pout; + emitpoint_t outverts[MAXWORKINGVERTS + 3], *pout; float *pv; int i, nump; float scale; vec3_t transformed, local; - if ( !textured ) - { + if (!textured) { r_polydesc.drawspanlet = R_DrawSpanletConstant33; - } - else - { + } else { /* ** choose the correct spanlet routine based on alpha */ - if ( alpha == 1 ) - { + if (alpha == 1) { // isturbulent is ignored because we know that turbulent surfaces // can't be opaque r_polydesc.drawspanlet = R_DrawSpanletOpaque; - } - else - { - if ( sw_stipplealpha->integer ) - { - if ( isturbulent ) - { - if ( alpha > 0.33 ) + } else { + if (sw_stipplealpha->integer) { + if (isturbulent) { + if (alpha > 0.33) r_polydesc.drawspanlet = R_DrawSpanletTurbulentStipple66; - else + else r_polydesc.drawspanlet = R_DrawSpanletTurbulentStipple33; - } - else - { - if ( alpha > 0.33 ) + } else { + if (alpha > 0.33) r_polydesc.drawspanlet = R_DrawSpanlet66Stipple; - else + else r_polydesc.drawspanlet = R_DrawSpanlet33Stipple; } - } - else - { - if ( isturbulent ) - { - if ( alpha > 0.33 ) + } else { + if (isturbulent) { + if (alpha > 0.33) r_polydesc.drawspanlet = R_DrawSpanletTurbulentBlended66; else r_polydesc.drawspanlet = R_DrawSpanletTurbulentBlended33; - } - else - { - if ( alpha > 0.33 ) + } else { + if (alpha > 0.33) r_polydesc.drawspanlet = R_DrawSpanlet66; - else + else r_polydesc.drawspanlet = R_DrawSpanlet33; } } @@ -961,22 +889,20 @@ static void R_ClipAndDrawPoly ( float alpha, int isturbulent, qboolean textured nump = r_polydesc.nump; clip_current = 0; - for (i=0 ; i<4 ; i++) - { - nump = R_ClipPolyFace (nump, &view_clipplanes[i]); + for (i = 0; i < 4; i++) { + nump = R_ClipPolyFace(nump, &view_clipplanes[i]); if (nump < 3) return; if (nump > MAXWORKINGVERTS) - Com_Error(ERR_DROP, "R_ClipAndDrawPoly: too many points: %d", nump ); + Com_Error(ERR_DROP, "R_ClipAndDrawPoly: too many points: %d", nump); } // transform vertices into viewspace and project pv = &r_clip_verts[clip_current][0][0]; - for (i=0 ; i<nump ; i++) - { - VectorSubtract (pv, r_origin, local); - TransformVector (local, transformed); + for (i = 0; i < nump; i++) { + VectorSubtract(pv, r_origin, local); + TransformVector(local, transformed); if (transformed[2] < NEAR_CLIP) transformed[2] = NEAR_CLIP; @@ -986,21 +912,21 @@ static void R_ClipAndDrawPoly ( float alpha, int isturbulent, qboolean textured pout->s = pv[3]; pout->t = pv[4]; - + scale = xscale * pout->zi; pout->u = (xcenter + scale * transformed[0]); scale = yscale * pout->zi; pout->v = (ycenter - scale * transformed[1]); - pv += sizeof (vec5_t) / sizeof (vec_t); + pv += sizeof(vec5_t) / sizeof(vec_t); } // draw it r_polydesc.nump = nump; r_polydesc.pverts = outverts; - R_DrawPoly( isturbulent ); + R_DrawPoly(isturbulent); } /* @@ -1026,35 +952,31 @@ static void R_BuildPolygonFromSurface(mface_t *fa) pverts = r_clip_verts[0]; surfedge = fa->firstsurfedge; - for (i=0 ; i<lnumverts ; i++, surfedge++) - { + for (i = 0; i < lnumverts; i++, surfedge++) { vec = surfedge->edge->v[surfedge->vert]->point; - VectorCopy (vec, pverts[i] ); + VectorCopy(vec, pverts[i]); } - VectorCopy( fa->texinfo->axis[0], r_polydesc.vright ); - VectorCopy( fa->texinfo->axis[1], r_polydesc.vup ); - VectorCopy( fa->plane->normal, r_polydesc.vpn ); - VectorCopy( r_origin, r_polydesc.viewer_position ); + VectorCopy(fa->texinfo->axis[0], r_polydesc.vright); + VectorCopy(fa->texinfo->axis[1], r_polydesc.vup); + VectorCopy(fa->plane->normal, r_polydesc.vpn); + VectorCopy(r_origin, r_polydesc.viewer_position); - if ( fa->drawflags & DSURF_PLANEBACK ) - { - VectorInverse( r_polydesc.vpn ); + if (fa->drawflags & DSURF_PLANEBACK) { + VectorInverse(r_polydesc.vpn); } // PGM 09/16/98 - if ( fa->texinfo->c.flags & (SURF_WARP|SURF_FLOWING) ) - { + if (fa->texinfo->c.flags & (SURF_WARP | SURF_FLOWING)) { r_polydesc.pixels = fa->texinfo->image->pixels[0]; r_polydesc.pixel_width = fa->texinfo->image->width; r_polydesc.pixel_height = fa->texinfo->image->height; } // PGM 09/16/98 - else - { + else { surfcache_t *scache; - scache = D_CacheSurface( fa, 0 ); + scache = D_CacheSurface(fa, 0); r_polydesc.pixels = scache->data; r_polydesc.pixel_width = scache->width; @@ -1064,15 +986,14 @@ static void R_BuildPolygonFromSurface(mface_t *fa) tmins[1] = fa->texturemins[1]; } - r_polydesc.dist = DotProduct( r_polydesc.vpn, pverts[0] ); + r_polydesc.dist = DotProduct(r_polydesc.vpn, pverts[0]); r_polydesc.s_offset = fa->texinfo->offset[0] - tmins[0]; r_polydesc.t_offset = fa->texinfo->offset[1] - tmins[1]; // scrolling texture addition - if (fa->texinfo->c.flags & SURF_FLOWING) - { - r_polydesc.s_offset += -128 * ( (r_newrefdef.time*0.25) - (int)(r_newrefdef.time*0.25) ); + if (fa->texinfo->c.flags & SURF_FLOWING) { + r_polydesc.s_offset += -128 * ((r_newrefdef.time * 0.25) - (int)(r_newrefdef.time * 0.25)); } r_polydesc.nump = lnumverts; @@ -1081,16 +1002,16 @@ static void R_BuildPolygonFromSurface(mface_t *fa) /* ** R_PolygonCalculateGradients */ -static void R_PolygonCalculateGradients (void) +static void R_PolygonCalculateGradients(void) { vec3_t p_normal, p_saxis, p_taxis; float distinv; - TransformVector (r_polydesc.vpn, p_normal); - TransformVector (r_polydesc.vright, p_saxis); - TransformVector (r_polydesc.vup, p_taxis); + TransformVector(r_polydesc.vpn, p_normal); + TransformVector(r_polydesc.vright, p_saxis); + TransformVector(r_polydesc.vup, p_taxis); - distinv = 1.0 / (-(DotProduct (r_polydesc.viewer_position, r_polydesc.vpn)) + r_polydesc.dist ); + distinv = 1.0 / (-(DotProduct(r_polydesc.viewer_position, r_polydesc.vpn)) + r_polydesc.dist); d_sdivzstepu = p_saxis[0] * xscaleinv; d_sdivzstepv = -p_saxis[1] * yscaleinv; @@ -1104,8 +1025,8 @@ static void R_PolygonCalculateGradients (void) d_zistepv = -p_normal[1] * yscaleinv * distinv; d_ziorigin = p_normal[2] * distinv - xcenter * d_zistepu - ycenter * d_zistepv; - sadjust = (fixed16_t) ( ( DotProduct( r_polydesc.viewer_position, r_polydesc.vright) + r_polydesc.s_offset ) * 0x10000 ); - tadjust = (fixed16_t) ( ( DotProduct( r_polydesc.viewer_position, r_polydesc.vup ) + r_polydesc.t_offset ) * 0x10000 ); + sadjust = (fixed16_t)((DotProduct(r_polydesc.viewer_position, r_polydesc.vright) + r_polydesc.s_offset) * 0x10000); + tadjust = (fixed16_t)((DotProduct(r_polydesc.viewer_position, r_polydesc.vup) + r_polydesc.t_offset) * 0x10000); // -1 (-epsilon) so we never wander off the edge of the texture bbextents = (r_polydesc.pixel_width << 16) - 1; @@ -1121,12 +1042,12 @@ static void R_PolygonCalculateGradients (void) ** This should NOT be called externally since it doesn't do clipping! */ // PGM - iswater was qboolean. changed to support passing more flags -static void R_DrawPoly( int iswater ) +static void R_DrawPoly(int iswater) { int i, nump; float ymin, ymax; emitpoint_t *pverts; - espan_t spans[MAXHEIGHT+1]; + espan_t spans[MAXHEIGHT + 1]; s_polygon_spans = spans; @@ -1136,16 +1057,13 @@ static void R_DrawPoly( int iswater ) ymax = -999999.9; pverts = r_polydesc.pverts; - for (i=0 ; i<r_polydesc.nump ; i++) - { - if (pverts->v < ymin) - { + for (i = 0; i < r_polydesc.nump; i++) { + if (pverts->v < ymin) { ymin = pverts->v; s_minindex = i; } - if (pverts->v > ymax) - { + if (pverts->v > ymax) { ymax = pverts->v; s_maxindex = i; } @@ -1153,8 +1071,8 @@ static void R_DrawPoly( int iswater ) pverts++; } - ymin = ceil (ymin); - ymax = ceil (ymax); + ymin = ceil(ymin); + ymax = ceil(ymax); if (ymin >= ymax) return; // doesn't cross any scans at all @@ -1168,17 +1086,17 @@ static void R_DrawPoly( int iswater ) pverts = r_polydesc.pverts; pverts[nump] = pverts[0]; - R_PolygonCalculateGradients (); - R_PolygonScanLeftEdge (); - R_PolygonScanRightEdge (); + R_PolygonCalculateGradients(); + R_PolygonScanLeftEdge(); + R_PolygonScanRightEdge(); - R_PolygonDrawSpans( s_polygon_spans, iswater ); + R_PolygonDrawSpans(s_polygon_spans, iswater); } /* ** R_DrawAlphaSurfaces */ -void R_DrawAlphaSurfaces( void ) +void R_DrawAlphaSurfaces(void) { mface_t *s = r_alpha_surfaces; @@ -1188,45 +1106,44 @@ void R_DrawAlphaSurfaces( void ) modelorg[1] = -r_origin[1]; modelorg[2] = -r_origin[2]; - while ( s ) - { - R_BuildPolygonFromSurface( s ); + while (s) { + R_BuildPolygonFromSurface(s); //======= //PGM // if (s->texinfo->flags & SURF_TRANS66) -// R_ClipAndDrawPoly( 0.60f, ( s->texinfo->flags & SURF_WARP) != 0, qtrue ); +// R_ClipAndDrawPoly(0.60f, (s->texinfo->flags & SURF_WARP) != 0, qtrue); // else -// R_ClipAndDrawPoly( 0.30f, ( s->texinfo->flags & SURF_WARP) != 0, qtrue ); +// R_ClipAndDrawPoly(0.30f, (s->texinfo->flags & SURF_WARP) != 0, qtrue); // PGM - pass down all the texinfo flags, not just SURF_WARP. if (s->texinfo->c.flags & SURF_TRANS66) - R_ClipAndDrawPoly( 0.60f, (s->texinfo->c.flags & (SURF_WARP|SURF_FLOWING)), qtrue ); + R_ClipAndDrawPoly(0.60f, (s->texinfo->c.flags & (SURF_WARP | SURF_FLOWING)), qtrue); else - R_ClipAndDrawPoly( 0.30f, (s->texinfo->c.flags & (SURF_WARP|SURF_FLOWING)), qtrue ); + R_ClipAndDrawPoly(0.30f, (s->texinfo->c.flags & (SURF_WARP | SURF_FLOWING)), qtrue); //PGM //======= s = s->next; } - + r_alpha_surfaces = NULL; } /* ** R_IMFlatShadedQuad */ -void R_IMFlatShadedQuad( vec3_t a, vec3_t b, vec3_t c, vec3_t d, int color, float alpha ) +void R_IMFlatShadedQuad(vec3_t a, vec3_t b, vec3_t c, vec3_t d, int color, float alpha) { vec3_t s0, s1; r_polydesc.nump = 4; - VectorCopy( r_origin, r_polydesc.viewer_position ); + VectorCopy(r_origin, r_polydesc.viewer_position); - VectorCopy( a, r_clip_verts[0][0] ); - VectorCopy( b, r_clip_verts[0][1] ); - VectorCopy( c, r_clip_verts[0][2] ); - VectorCopy( d, r_clip_verts[0][3] ); + VectorCopy(a, r_clip_verts[0][0]); + VectorCopy(b, r_clip_verts[0][1]); + VectorCopy(c, r_clip_verts[0][2]); + VectorCopy(d, r_clip_verts[0][3]); r_clip_verts[0][0][3] = 0; r_clip_verts[0][1][3] = 0; @@ -1238,16 +1155,16 @@ void R_IMFlatShadedQuad( vec3_t a, vec3_t b, vec3_t c, vec3_t d, int color, floa r_clip_verts[0][2][4] = 0; r_clip_verts[0][3][4] = 0; - VectorSubtract( d, c, s0 ); - VectorSubtract( c, b, s1 ); - CrossProduct( s0, s1, r_polydesc.vpn ); - VectorNormalize( r_polydesc.vpn ); + VectorSubtract(d, c, s0); + VectorSubtract(c, b, s1); + CrossProduct(s0, s1, r_polydesc.vpn); + VectorNormalize(r_polydesc.vpn); - r_polydesc.dist = DotProduct( r_polydesc.vpn, r_clip_verts[0][0] ); + r_polydesc.dist = DotProduct(r_polydesc.vpn, r_clip_verts[0][0]); r_polyblendcolor = color; - R_ClipAndDrawPoly( alpha, qfalse, qfalse ); + R_ClipAndDrawPoly(alpha, qfalse, qfalse); } /* @@ -1256,14 +1173,14 @@ void R_IMFlatShadedQuad( vec3_t a, vec3_t b, vec3_t c, vec3_t d, int color, floa ** Draw currententity / currentmodel as a single texture ** mapped polygon */ -void R_DrawSprite (void) +void R_DrawSprite(void) { vec5_t *pverts; vec3_t left, up, right, down; mspriteframe_t *frame; frame = ¤tmodel->spriteframes[ - currententity->frame % currentmodel->numframes]; + currententity->frame % currentmodel->numframes]; r_polydesc.pixels = frame->image->pixels[0]; r_polydesc.pixel_width = frame->width; @@ -1271,22 +1188,22 @@ void R_DrawSprite (void) r_polydesc.dist = 0; // generate the sprite's axes, completely parallel to the viewplane. - VectorCopy (vup, r_polydesc.vup); - VectorCopy (vright, r_polydesc.vright); - VectorCopy (vpn, r_polydesc.vpn); + VectorCopy(vup, r_polydesc.vup); + VectorCopy(vright, r_polydesc.vright); + VectorCopy(vpn, r_polydesc.vpn); // build the sprite poster in worldspace - VectorScale (r_polydesc.vright, - frame->width - frame->origin_x, right); - VectorScale (r_polydesc.vup, - frame->height - frame->origin_y, up); - VectorScale (r_polydesc.vright, - -frame->origin_x, left); - VectorScale (r_polydesc.vup, - -frame->origin_y, down); + VectorScale(r_polydesc.vright, + frame->width - frame->origin_x, right); + VectorScale(r_polydesc.vup, + frame->height - frame->origin_y, up); + VectorScale(r_polydesc.vright, + -frame->origin_x, left); + VectorScale(r_polydesc.vup, + -frame->origin_y, down); // invert UP vector for sprites - VectorNegate( r_polydesc.vup, r_polydesc.vup ); + VectorNegate(r_polydesc.vup, r_polydesc.vup); pverts = r_clip_verts[0]; @@ -1315,15 +1232,15 @@ void R_DrawSprite (void) pverts[3][4] = frame->height; r_polydesc.nump = 4; - r_polydesc.s_offset = ( r_polydesc.pixel_width >> 1); - r_polydesc.t_offset = ( r_polydesc.pixel_height >> 1); - VectorCopy( modelorg, r_polydesc.viewer_position ); + r_polydesc.s_offset = (r_polydesc.pixel_width >> 1); + r_polydesc.t_offset = (r_polydesc.pixel_height >> 1); + VectorCopy(modelorg, r_polydesc.viewer_position); r_polydesc.stipple_parity = 1; - if ( currententity->flags & RF_TRANSLUCENT ) - R_ClipAndDrawPoly ( currententity->alpha, qfalse, qtrue ); + if (currententity->flags & RF_TRANSLUCENT) + R_ClipAndDrawPoly(currententity->alpha, qfalse, qtrue); else - R_ClipAndDrawPoly ( 1.0F, qfalse, qtrue ); + R_ClipAndDrawPoly(1.0F, qfalse, qtrue); r_polydesc.stipple_parity = 0; } |