diff --git a/src/f_wipe.c b/src/f_wipe.c index 8e7c622c43a393276c6c9dffd9b515a36b3114b6..0d3061324b8da20e8278e377db77e9163bf66350 100644 --- a/src/f_wipe.c +++ b/src/f_wipe.c @@ -232,7 +232,7 @@ static void F_DoWipe(fademask_t *fademask) do { // pointer to transtable that this mask would use - transtbl = transtables + ((9 - *mask)<<FF_TRANSSHIFT); + transtbl = transtables + ((9 - *mask)<<16); // (ignore that it goes out of bounds if *mask is 0 or 10 -- // it wouldn't be used in those cases anyway) diff --git a/src/r_plane.c b/src/r_plane.c index fa0e0eac3b75f24fdeae11110767b4651e53c69a..cfc8ea592f13d59e529b6af5a050185d4ae0ca5f 100644 --- a/src/r_plane.c +++ b/src/r_plane.c @@ -750,31 +750,15 @@ void R_DrawSinglePlane(visplane_t *pl) // Hacked up support for alpha value in software mode Tails 09-24-2002 (sidenote: ported to polys 10-15-2014, there was no time travel involved -Red) if (pl->polyobj->translucency >= 10) return; // Don't even draw it - else if (pl->polyobj->translucency == 9) - ds_transmap = ((tr_trans90)<<FF_TRANSSHIFT) - 0x10000 + transtables; - else if (pl->polyobj->translucency == 8) - ds_transmap = ((tr_trans80)<<FF_TRANSSHIFT) - 0x10000 + transtables; - else if (pl->polyobj->translucency == 7) - ds_transmap = ((tr_trans70)<<FF_TRANSSHIFT) - 0x10000 + transtables; - else if (pl->polyobj->translucency == 6) - ds_transmap = ((tr_trans60)<<FF_TRANSSHIFT) - 0x10000 + transtables; - else if (pl->polyobj->translucency == 5) - ds_transmap = ((tr_trans50)<<FF_TRANSSHIFT) - 0x10000 + transtables; - else if (pl->polyobj->translucency == 4) - ds_transmap = ((tr_trans40)<<FF_TRANSSHIFT) - 0x10000 + transtables; - else if (pl->polyobj->translucency == 3) - ds_transmap = ((tr_trans30)<<FF_TRANSSHIFT) - 0x10000 + transtables; - else if (pl->polyobj->translucency == 2) - ds_transmap = ((tr_trans20)<<FF_TRANSSHIFT) - 0x10000 + transtables; - else if (pl->polyobj->translucency == 1) - ds_transmap = ((tr_trans10)<<FF_TRANSSHIFT) - 0x10000 + transtables; + else if (pl->polyobj->translucency <= 9 && pl->polyobj->translucency > 0) + ds_transmap = transtables + ((pl->polyobj->translucency-1)<<16); else // Opaque, but allow transparent flat pixels spanfunc = splatfunc; if (pl->extra_colormap && pl->extra_colormap->fog) light = (pl->lightlevel >> LIGHTSEGSHIFT); else - light = LIGHTLEVELS-1; + light = LIGHTLEVELS-1; } else #endif @@ -805,23 +789,23 @@ void R_DrawSinglePlane(visplane_t *pl) if (pl->ffloor->alpha < 12) return; // Don't even draw it else if (pl->ffloor->alpha < 38) - ds_transmap = ((tr_trans90)<<FF_TRANSSHIFT) - 0x10000 + transtables; + ds_transmap = transtables + ((tr_trans90-1)<<16); else if (pl->ffloor->alpha < 64) - ds_transmap = ((tr_trans80)<<FF_TRANSSHIFT) - 0x10000 + transtables; + ds_transmap = transtables + ((tr_trans80-1)<<16); else if (pl->ffloor->alpha < 89) - ds_transmap = ((tr_trans70)<<FF_TRANSSHIFT) - 0x10000 + transtables; + ds_transmap = transtables + ((tr_trans70-1)<<16); else if (pl->ffloor->alpha < 115) - ds_transmap = ((tr_trans60)<<FF_TRANSSHIFT) - 0x10000 + transtables; + ds_transmap = transtables + ((tr_trans60-1)<<16); else if (pl->ffloor->alpha < 140) - ds_transmap = ((tr_trans50)<<FF_TRANSSHIFT) - 0x10000 + transtables; + ds_transmap = transtables + ((tr_trans50-1)<<16); else if (pl->ffloor->alpha < 166) - ds_transmap = ((tr_trans40)<<FF_TRANSSHIFT) - 0x10000 + transtables; + ds_transmap = transtables + ((tr_trans40-1)<<16); else if (pl->ffloor->alpha < 192) - ds_transmap = ((tr_trans30)<<FF_TRANSSHIFT) - 0x10000 + transtables; + ds_transmap = transtables + ((tr_trans30-1)<<16); else if (pl->ffloor->alpha < 217) - ds_transmap = ((tr_trans20)<<FF_TRANSSHIFT) - 0x10000 + transtables; + ds_transmap = transtables + ((tr_trans20-1)<<16); else if (pl->ffloor->alpha < 243) - ds_transmap = ((tr_trans10)<<FF_TRANSSHIFT) - 0x10000 + transtables; + ds_transmap = transtables + ((tr_trans10-1)<<16); else // Opaque, but allow transparent flat pixels spanfunc = splatfunc; @@ -1082,7 +1066,7 @@ using the palette colors. if (spanfunc == R_DrawSpan_8) { INT32 i; - ds_transmap = ((tr_trans50)<<FF_TRANSSHIFT) - 0x10000 + transtables; + ds_transmap = transtables + ((tr_trans50-1)<<16); spanfunc = R_DrawTranslucentSpan_8; for (i=0; i<4; i++) { diff --git a/src/r_segs.c b/src/r_segs.c index 75e7b8b98e6edeccc34cb04f6c0d9e97d11ace7d..ab471c1d5a393154f1d3b0a7b77fbf6aa123b00f 100644 --- a/src/r_segs.c +++ b/src/r_segs.c @@ -183,7 +183,7 @@ static void R_DrawWallSplats(void) colfunc = basecolfunc; else { - dc_transmap = ((tr_trans50 - 1)<<FF_TRANSSHIFT) + transtables; + dc_transmap = transtables + ((tr_trans50 - 1)<<16); colfunc = fuzzcolfunc; } @@ -304,39 +304,15 @@ void R_RenderMaskedSegRange(drawseg_t *ds, INT32 x1, INT32 x2) switch (ldef->special) { case 900: - dc_transmap = ((tr_trans10)<<FF_TRANSSHIFT) - 0x10000 + transtables; - colfunc = fuzzcolfunc; - break; case 901: - dc_transmap = ((tr_trans20)<<FF_TRANSSHIFT) - 0x10000 + transtables; - colfunc = fuzzcolfunc; - break; case 902: - dc_transmap = ((tr_trans30)<<FF_TRANSSHIFT) - 0x10000 + transtables; - colfunc = fuzzcolfunc; - break; case 903: - dc_transmap = ((tr_trans40)<<FF_TRANSSHIFT) - 0x10000 + transtables; - colfunc = fuzzcolfunc; - break; case 904: - dc_transmap = ((tr_trans50)<<FF_TRANSSHIFT) - 0x10000 + transtables; - colfunc = fuzzcolfunc; - break; case 905: - dc_transmap = ((tr_trans60)<<FF_TRANSSHIFT) - 0x10000 + transtables; - colfunc = fuzzcolfunc; - break; case 906: - dc_transmap = ((tr_trans70)<<FF_TRANSSHIFT) - 0x10000 + transtables; - colfunc = fuzzcolfunc; - break; case 907: - dc_transmap = ((tr_trans80)<<FF_TRANSSHIFT) - 0x10000 + transtables; - colfunc = fuzzcolfunc; - break; case 908: - dc_transmap = ((tr_trans90)<<FF_TRANSSHIFT) - 0x10000 + transtables; + dc_transmap = transtables + ((ldef->special-900)<<16); colfunc = fuzzcolfunc; break; case 909: @@ -354,7 +330,7 @@ void R_RenderMaskedSegRange(drawseg_t *ds, INT32 x1, INT32 x2) if (curline->polyseg->translucency >= NUMTRANSMAPS) return; - dc_transmap = ((curline->polyseg->translucency)<<FF_TRANSSHIFT) - 0x10000 + transtables; + dc_transmap = transtables + ((curline->polyseg->translucency-1)<<16); colfunc = fuzzcolfunc; } @@ -733,23 +709,23 @@ void R_RenderThickSideRange(drawseg_t *ds, INT32 x1, INT32 x2, ffloor_t *pfloor) if (pfloor->alpha < 12) return; // Don't even draw it else if (pfloor->alpha < 38) - dc_transmap = ((tr_trans90)<<FF_TRANSSHIFT) - 0x10000 + transtables; + dc_transmap = transtables + ((tr_trans90-1)<<16); else if (pfloor->alpha < 64) - dc_transmap = ((tr_trans80)<<FF_TRANSSHIFT) - 0x10000 + transtables; + dc_transmap = transtables + ((tr_trans80-1)<<16); else if (pfloor->alpha < 89) - dc_transmap = ((tr_trans70)<<FF_TRANSSHIFT) - 0x10000 + transtables; + dc_transmap = transtables + ((tr_trans70-1)<<16); else if (pfloor->alpha < 115) - dc_transmap = ((tr_trans60)<<FF_TRANSSHIFT) - 0x10000 + transtables; + dc_transmap = transtables + ((tr_trans60-1)<<16); else if (pfloor->alpha < 140) - dc_transmap = ((tr_trans50)<<FF_TRANSSHIFT) - 0x10000 + transtables; + dc_transmap = transtables + ((tr_trans50-1)<<16); else if (pfloor->alpha < 166) - dc_transmap = ((tr_trans40)<<FF_TRANSSHIFT) - 0x10000 + transtables; + dc_transmap = transtables + ((tr_trans40-1)<<16); else if (pfloor->alpha < 192) - dc_transmap = ((tr_trans30)<<FF_TRANSSHIFT) - 0x10000 + transtables; + dc_transmap = transtables + ((tr_trans30-1)<<16); else if (pfloor->alpha < 217) - dc_transmap = ((tr_trans20)<<FF_TRANSSHIFT) - 0x10000 + transtables; + dc_transmap = transtables + ((tr_trans20-1)<<16); else if (pfloor->alpha < 243) - dc_transmap = ((tr_trans10)<<FF_TRANSSHIFT) - 0x10000 + transtables; + dc_transmap = transtables + ((tr_trans10-1)<<16); else fuzzy = false; // Opaque diff --git a/src/r_splats.c b/src/r_splats.c index 72eca08fb05709d81c4b256e56ded57d140834b7..80d2afea6609a7d2b5acef230c6944524c697d05 100644 --- a/src/r_splats.c +++ b/src/r_splats.c @@ -503,7 +503,7 @@ static void R_RenderFloorSplat(floorsplat_t *pSplat, vertex_t *verts, UINT8 *pTe { ds_x1 = x1; ds_x2 = x2; - ds_transmap = ((tr_trans50)<<FF_TRANSSHIFT) - 0x10000 + transtables; + ds_transmap = transtables + ((tr_trans50-1)<<16); splatfunc(); } diff --git a/src/r_things.c b/src/r_things.c index 60fbad1af0d7f4a1a18b288d444a03fe0ded3a29..a7e118dbc57486950733c64abdcc5d4435a4b04e 100644 --- a/src/r_things.c +++ b/src/r_things.c @@ -1329,9 +1329,9 @@ static void R_ProjectSprite(mobj_t *thing) if (!cv_translucency.value) ; // no translucency else if (thing->flags2 & MF2_SHADOW) // actually only the player should use this (temporary invisibility) - vis->transmap = ((tr_trans80-1)<<FF_TRANSSHIFT) + transtables; // because now the translucency is set through FF_TRANSMASK + vis->transmap = transtables + ((tr_trans80-1)<<16); // because now the translucency is set through FF_TRANSMASK else if (thing->frame & FF_TRANSMASK) - vis->transmap = (thing->frame & FF_TRANSMASK) - 0x10000 + transtables; + vis->transmap = transtables + ((((thing->frame & FF_TRANSMASK)>>FF_TRANSSHIFT)-1)<<16); if (((thing->frame & FF_FULLBRIGHT) || (thing->flags2 & MF2_SHADOW)) && (!vis->extra_colormap || !vis->extra_colormap->fog)) diff --git a/src/v_video.c b/src/v_video.c index 524c15cc702311b2ca4f26ad417dd37fdee93aa0..010c042c3a10af232f1c16f012216cae2cde1649 100644 --- a/src/v_video.c +++ b/src/v_video.c @@ -366,7 +366,7 @@ void V_DrawFixedPatch(fixed_t x, fixed_t y, fixed_t pscale, INT32 scrn, patch_t } if (alphalevel) { - v_translevel = ((alphalevel)<<FF_TRANSSHIFT) - 0x10000 + transtables; + v_translevel = transtables + ((alphalevel-1)<<16); patchdrawfunc = translucentpdraw; } @@ -1869,7 +1869,7 @@ void V_DoPostProcessor(INT32 view, postimg_t type, INT32 param) angle_t disStart = (leveltime * 128) & FINEMASK; // in 0 to FINEANGLE INT32 newpix; INT32 sine; - //UINT8 *transme = ((tr_trans50)<<FF_TRANSSHIFT) + transtables; + //UINT8 *transme = transtables + ((tr_trans50-1)<<16); for (y = yoffset; y < yoffset+height; y++) { @@ -1926,7 +1926,7 @@ Unoptimized version INT32 x, y; // TODO: Add a postimg_param so that we can pick the translucency level... - UINT8 *transme = ((param)<<FF_TRANSSHIFT) - 0x10000 + transtables; + UINT8 *transme = transtables + ((param-1)<<16); for (y = yoffset; y < yoffset+height; y++) {