diff --git a/src/hardware/hw_draw.c b/src/hardware/hw_draw.c index 15032cbe2..9475f6062 100644 --- a/src/hardware/hw_draw.c +++ b/src/hardware/hw_draw.c @@ -326,14 +326,16 @@ void HWR_DrawStretchyFixedPatch(patch_t *gpatch, fixed_t x, fixed_t y, fixed_t p flags |= HWR_GetBlendModeFlag(blendmode); - if (alphalevel == 10) + if (alphalevel == 13) Surf.PolyColor.s.alpha = softwaretranstogl_lo[st_translucency]; - else if (alphalevel == 11) + else if (alphalevel == 14) Surf.PolyColor.s.alpha = softwaretranstogl[st_translucency]; - else if (alphalevel == 12) + else if (alphalevel == 15) Surf.PolyColor.s.alpha = softwaretranstogl_hi[st_translucency]; else if (alphalevel < 10) Surf.PolyColor.s.alpha = softwaretranstogl[min(max((10 - alphalevel), 0), 10)]; + else + Surf.PolyColor.s.alpha = 0; HWD.pfnDrawPolygon(&Surf, v, 4, flags|PF_Modulated); } @@ -480,14 +482,16 @@ void HWR_DrawCroppedPatch(patch_t *gpatch, fixed_t x, fixed_t y, fixed_t pscale, flags |= HWR_GetBlendModeFlag(blendmode); - if (alphalevel == 10) + if (alphalevel == 13) Surf.PolyColor.s.alpha = softwaretranstogl_lo[st_translucency]; - else if (alphalevel == 11) + else if (alphalevel == 14) Surf.PolyColor.s.alpha = softwaretranstogl[st_translucency]; - else if (alphalevel == 12) + else if (alphalevel == 15) Surf.PolyColor.s.alpha = softwaretranstogl_hi[st_translucency]; - else + else if (alphalevel < 10) Surf.PolyColor.s.alpha = softwaretranstogl[min(max((10 - alphalevel), 0), 10)]; + else + Surf.PolyColor.s.alpha = 0; HWD.pfnDrawPolygon(&Surf, v, 4, flags|PF_Modulated); } @@ -1195,10 +1199,11 @@ void HWR_DrawFill(INT32 x, INT32 y, INT32 w, INT32 h, INT32 color) if (alphalevel) { - if (alphalevel == 10) Surf.PolyColor.s.alpha = softwaretranstogl_lo[st_translucency]; // V_HUDTRANSHALF - else if (alphalevel == 11) Surf.PolyColor.s.alpha = softwaretranstogl[st_translucency]; // V_HUDTRANS - else if (alphalevel == 12) Surf.PolyColor.s.alpha = softwaretranstogl_hi[st_translucency]; // V_HUDTRANSDOUBLE - else Surf.PolyColor.s.alpha = softwaretranstogl[min(max((10 - alphalevel), 0), 10)]; + if (alphalevel == 13) Surf.PolyColor.s.alpha = softwaretranstogl_lo[st_translucency]; // V_HUDTRANSHALF + else if (alphalevel == 14) Surf.PolyColor.s.alpha = softwaretranstogl[st_translucency]; // V_HUDTRANS + else if (alphalevel == 15) Surf.PolyColor.s.alpha = softwaretranstogl_hi[st_translucency]; // V_HUDTRANSDOUBLE + else if (alphalevel < 10) Surf.PolyColor.s.alpha = softwaretranstogl[min(max((10 - alphalevel), 0), 10)]; + else Surf.PolyColor.s.alpha = 0; } HWD.pfnDrawPolygon(&Surf, v, 4, diff --git a/src/v_video.c b/src/v_video.c index 709bf489d..a6f66e32c 100644 --- a/src/v_video.c +++ b/src/v_video.c @@ -788,11 +788,11 @@ void V_DrawStretchyFixedPatch(fixed_t x, fixed_t y, fixed_t pscale, fixed_t vsca blendmode++; // realign to constants if ((alphalevel = ((scrn & V_ALPHAMASK) >> V_ALPHASHIFT))) { - if (alphalevel == 10) // V_HUDTRANSHALF + if (alphalevel == 13) // V_HUDTRANSHALF alphalevel = hudminusalpha[st_translucency]; - else if (alphalevel == 11) // V_HUDTRANS + else if (alphalevel == 14) // V_HUDTRANS alphalevel = 10 - st_translucency; - else if (alphalevel == 12) // V_HUDTRANSDOUBLE + else if (alphalevel == 15) // V_HUDTRANSDOUBLE alphalevel = hudplusalpha[st_translucency]; if (alphalevel >= 10) // Still inelegible to render? @@ -1065,11 +1065,11 @@ void V_DrawFill(INT32 x, INT32 y, INT32 w, INT32 h, INT32 c) v_translevel = NULL; if (alphalevel || blendmode) { - if (alphalevel == 10) // V_HUDTRANSHALF + if (alphalevel == 13) // V_HUDTRANSHALF alphalevel = hudminusalpha[st_translucency]; - else if (alphalevel == 11) // V_HUDTRANS + else if (alphalevel == 14) // V_HUDTRANS alphalevel = 10 - st_translucency; - else if (alphalevel == 12) // V_HUDTRANSDOUBLE + else if (alphalevel == 15) // V_HUDTRANSDOUBLE alphalevel = hudplusalpha[st_translucency]; if (alphalevel >= 10) @@ -1211,11 +1211,11 @@ void V_DrawFillConsoleMap(INT32 x, INT32 y, INT32 w, INT32 h, INT32 c) if ((alphalevel = ((c & V_ALPHAMASK) >> V_ALPHASHIFT))) { - if (alphalevel == 10) // V_HUDTRANSHALF + if (alphalevel == 13) // V_HUDTRANSHALF alphalevel = hudminusalpha[st_translucency]; - else if (alphalevel == 11) // V_HUDTRANS + else if (alphalevel == 14) // V_HUDTRANS alphalevel = 10 - st_translucency; - else if (alphalevel == 12) // V_HUDTRANSDOUBLE + else if (alphalevel == 15) // V_HUDTRANSDOUBLE alphalevel = hudplusalpha[st_translucency]; if (alphalevel >= 10) // Still inelegible to render? diff --git a/src/v_video.h b/src/v_video.h index 1bd2eb822..43caa9987 100644 --- a/src/v_video.h +++ b/src/v_video.h @@ -141,17 +141,24 @@ void V_CubeApply(UINT8 *red, UINT8 *green, UINT8 *blue); #define V_70TRANS 0x00070000 #define V_80TRANS 0x00080000 // used to be V_8020TRANS #define V_90TRANS 0x00090000 -#define V_HUDTRANSHALF 0x000A0000 -#define V_HUDTRANS 0x000B0000 // draw the hud translucent -#define V_HUDTRANSDOUBLE 0x000C0000 +#define V_HUDTRANSHALF 0x000D0000 +#define V_HUDTRANS 0x000E0000 // draw the hud translucent +#define V_HUDTRANSDOUBLE 0x000F0000 // Macros follow #define V_USERHUDTRANSHALF ((10-(cv_translucenthud.value/2))<