diff --git a/r_draw.c b/r_draw.c index 1e78e2a6..cd6aa659 100644 --- a/r_draw.c +++ b/r_draw.c @@ -166,7 +166,7 @@ void R_DrawStretchPicImplementation (int x, int y, int w, int h, int s1, int t1, pixel_t screen = dest[u]; dest[u] = vid.addmap[src & 0xff00|(screen>>8)] << 8 | (screen & 0xff) | ((src & 0xff) >> 0); } - else if( alpha < 0) // && (vid.rendermode == kRenderTransAlpha || vid.rendermode == kRenderTransTexture ) ) + else if( alpha < 7) // && (vid.rendermode == kRenderTransAlpha || vid.rendermode == kRenderTransTexture ) ) { pixel_t screen = dest[u]; // | 0xff & screen & src ; dest[u] = BLEND_ALPHA( alpha, src, screen);//vid.alphamap[( alpha << 16)|(src & 0xff00)|(screen>>8)] << 8 | (screen & 0xff) >> 3 | ((src & 0xff) >> 3); diff --git a/r_main.c b/r_main.c index 12fbf87b..e95c849d 100644 --- a/r_main.c +++ b/r_main.c @@ -1023,6 +1023,8 @@ void R_DrawEntitiesOnList( void ) //RI.currententity = gEngfuncs.GetEntityByIndex(0); extern void (*d_pdrawspans)(void *); extern void R_PolysetFillSpans8 ( void * ); + extern void R_PolysetDrawSpansConstant8_33( void *pspanpackage); + extern void R_PolysetDrawSpans8_33( void *pspanpackage); d_pdrawspans = R_PolysetFillSpans8; // first draw solid entities for( i = 0; i < tr.draw_list->num_solid_entities && !RI.onlyClientDraw; i++ ) @@ -1109,7 +1111,7 @@ void R_DrawEntitiesOnList( void ) gEngfuncs.pfnDrawNormalTriangles(); // GL_CheckForErrors(); - + d_pdrawspans = R_PolysetDrawSpans8_33; // then draw translucent entities for( i = 0; i < tr.draw_list->num_trans_entities && !RI.onlyClientDraw; i++ ) { @@ -1166,6 +1168,7 @@ void R_DrawEntitiesOnList( void ) //GL_CheckForErrors(); // pglDisable( GL_BLEND ); // Trinity Render issues + d_pdrawspans = R_PolysetFillSpans8; R_SetUpWorldTransform(); if( !RI.onlyClientDraw ) diff --git a/r_poly.c b/r_poly.c index 2e300e9d..fe03d18e 100644 --- a/r_poly.c +++ b/r_poly.c @@ -62,7 +62,7 @@ static void R_DrawPoly( qboolean iswater ); */ void R_DrawSpanletOpaque( void ) { - unsigned btemp; + pixel_t btemp; do { @@ -94,7 +94,7 @@ void R_DrawSpanletOpaque( void ) */ void R_DrawSpanletTurbulentStipple33( void ) { - unsigned btemp; + pixel_t btemp; int sturb, tturb; pixel_t *pdest = s_spanletvars.pdest; short *pz = s_spanletvars.pz; @@ -151,7 +151,7 @@ void R_DrawSpanletTurbulentStipple33( void ) */ void R_DrawSpanletTurbulentStipple66( void ) { - unsigned btemp; + pixel_t btemp; int sturb, tturb; pixel_t *pdest = s_spanletvars.pdest; short *pz = s_spanletvars.pz; @@ -238,7 +238,7 @@ void R_DrawSpanletTurbulentStipple66( void ) */ void R_DrawSpanletTurbulentBlended66( void ) { - unsigned btemp; + pixel_t btemp; int sturb, tturb; do @@ -267,7 +267,7 @@ void R_DrawSpanletTurbulentBlended66( void ) void R_DrawSpanletTurbulentBlended33( void ) { - unsigned btemp; + pixel_t btemp; int sturb, tturb; do @@ -299,7 +299,7 @@ void R_DrawSpanletTurbulentBlended33( void ) */ void R_DrawSpanlet33( void ) { - unsigned btemp; + pixel_t btemp; do { @@ -310,7 +310,7 @@ void R_DrawSpanlet33( void ) btemp = *(s_spanletvars.pbase + (ts) + (tt) * cachewidth); - if ( btemp != 255 ) + if ( btemp != TRANSPARENT_COLOR ) { if (*s_spanletvars.pz <= (s_spanletvars.izi >> 16)) { @@ -350,7 +350,7 @@ void R_DrawSpanletConstant33( void ) */ void R_DrawSpanlet66( void ) { - unsigned btemp; + pixel_t btemp; do { @@ -361,7 +361,7 @@ void R_DrawSpanlet66( void ) btemp = *(s_spanletvars.pbase + (ts) + (tt) * cachewidth); - if ( btemp != 255 ) + if ( btemp != TRANSPARENT_COLOR ) { if (*s_spanletvars.pz <= (s_spanletvars.izi >> 16)) { @@ -386,7 +386,7 @@ void R_DrawSpanlet66( void ) */ void R_DrawSpanlet33Stipple( void ) { - unsigned btemp; + pixel_t btemp; pixel_t *pdest = s_spanletvars.pdest; short *pz = s_spanletvars.pz; int izi = s_spanletvars.izi; @@ -422,7 +422,7 @@ void R_DrawSpanlet33Stipple( void ) btemp = *( s_spanletvars.pbase + ( s ) + ( t * cachewidth ) ); - if ( btemp != 255 ) + if ( btemp != TRANSPARENT_COLOR ) { if ( *pz <= ( izi >> 16 ) ) *pdest = btemp; @@ -445,7 +445,7 @@ void R_DrawSpanlet33Stipple( void ) */ void R_DrawSpanlet66Stipple( void ) { - unsigned btemp; + pixel_t btemp; pixel_t *pdest = s_spanletvars.pdest; short *pz = s_spanletvars.pz; int izi = s_spanletvars.izi; @@ -481,7 +481,7 @@ void R_DrawSpanlet66Stipple( void ) btemp = *( s_spanletvars.pbase + ( s ) + ( t * cachewidth ) ); - if ( btemp != 255 ) + if ( btemp != TRANSPARENT_COLOR ) { if ( *pz <= ( izi >> 16 ) ) *pdest = btemp; @@ -506,7 +506,7 @@ void R_DrawSpanlet66Stipple( void ) btemp = *( s_spanletvars.pbase + ( s ) + ( t * cachewidth ) ); - if ( btemp != 255 ) + if ( btemp != TRANSPARENT_COLOR ) { if ( *pz <= ( izi >> 16 ) ) *pdest = btemp; diff --git a/r_polyse.c b/r_polyse.c index c8de02fd..71700472 100644 --- a/r_polyse.c +++ b/r_polyse.c @@ -820,8 +820,8 @@ R_PolysetDrawSpans8 void R_PolysetDrawSpans8_33( spanpackage_t *pspanpackage) { int lcount; - byte *lpdest; - byte *lptex; + pixel_t *lpdest; + pixel_t *lptex; int lsfrac, ltfrac; int llight; int lzi; @@ -856,9 +856,13 @@ void R_PolysetDrawSpans8_33( spanpackage_t *pspanpackage) { if ((lzi >> 16) >= *lpz) { - int temp = vid.colormap[*lptex + ( llight & 0xFF00 )]; + pixel_t temp = *lptex;//vid.colormap[*lptex + ( llight & 0xFF00 )]; - *lpdest = vid.alphamap[temp+ *lpdest*256]; + int alpha = tr.blend * 7; + if( alpha == 7 ) + *lpdest = temp; + else if(alpha) + *lpdest = BLEND_ALPHA(alpha,temp,*lpdest);//vid.alphamap[temp+ *lpdest*256]; } lpdest++; lzi += r_zistepx; @@ -884,7 +888,7 @@ void R_PolysetDrawSpans8_33( spanpackage_t *pspanpackage) void R_PolysetDrawSpansConstant8_33( spanpackage_t *pspanpackage) { int lcount; - byte *lpdest; + pixel_t *lpdest; int lzi; short *lpz; @@ -913,7 +917,7 @@ void R_PolysetDrawSpansConstant8_33( spanpackage_t *pspanpackage) { if ((lzi >> 16) >= *lpz) { - *lpdest = vid.alphamap[r_aliasblendcolor + *lpdest*256]; + *lpdest = BLEND_ALPHA(2,r_aliasblendcolor,*lpdest);//vid.alphamap[r_aliasblendcolor + *lpdest*256]; } lpdest++; lzi += r_zistepx; @@ -928,8 +932,8 @@ void R_PolysetDrawSpansConstant8_33( spanpackage_t *pspanpackage) void R_PolysetDrawSpans8_66(spanpackage_t *pspanpackage) { int lcount; - byte *lpdest; - byte *lptex; + pixel_t *lpdest; + pixel_t *lptex; int lsfrac, ltfrac; int llight; int lzi; @@ -966,7 +970,7 @@ void R_PolysetDrawSpans8_66(spanpackage_t *pspanpackage) { int temp = vid.colormap[*lptex + ( llight & 0xFF00 )]; - *lpdest = vid.alphamap[temp*256 + *lpdest]; + *lpdest = BLEND_ALPHA(5,temp,*lpdest);//vid.alphamap[temp*256 + *lpdest]; *lpz = lzi >> 16; } lpdest++; @@ -993,7 +997,7 @@ void R_PolysetDrawSpans8_66(spanpackage_t *pspanpackage) void R_PolysetDrawSpansConstant8_66( spanpackage_t *pspanpackage) { int lcount; - byte *lpdest; + pixel_t *lpdest; int lzi; short *lpz; @@ -1022,7 +1026,7 @@ void R_PolysetDrawSpansConstant8_66( spanpackage_t *pspanpackage) { if ((lzi >> 16) >= *lpz) { - *lpdest = vid.alphamap[r_aliasblendcolor*256 + *lpdest]; + *lpdest = BLEND_ALPHA(5,r_aliasblendcolor,*lpdest);//vid.alphamap[r_aliasblendcolor*256 + *lpdest]; } lpdest++; lzi += r_zistepx; @@ -1219,7 +1223,7 @@ void R_PolysetFillSpans8 (spanpackage_t *pspanpackage) } while (--lcount); } - pspanpackage++; + pspanpackage ++; } while (pspanpackage->count != -999999); } #endif