From d1e613e51404d605dfc84b202188170c9e30d6d7 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 26 Sep 2020 23:39:42 +0200 Subject: [PATCH] - use a sector's special sprite color to colorize decals. --- src/rendering/hwrenderer/scene/hw_decal.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/rendering/hwrenderer/scene/hw_decal.cpp b/src/rendering/hwrenderer/scene/hw_decal.cpp index ec835c01c..ac1b34e85 100644 --- a/src/rendering/hwrenderer/scene/hw_decal.cpp +++ b/src/rendering/hwrenderer/scene/hw_decal.cpp @@ -47,11 +47,18 @@ void HWDecal::DrawDecal(HWDrawInfo *di, FRenderState &state) { + PalEntry DecalColor; // alpha color only has an effect when using an alpha texture. if (decal->RenderStyle.Flags & (STYLEF_RedIsAlpha | STYLEF_ColorIsFixed)) { - state.SetObjectColor(decal->AlphaColor | 0xff000000); + DecalColor = decal->AlphaColor | 0xff000000; } + else + DecalColor = 0xffffffff; + + if (!di->isFullbrightScene()) DecalColor = DecalColor.Modulate(frontsector->SpecialColors[sector_t::sprites]); + + state.SetObjectColor(DecalColor); state.SetLightIndex(dynlightindex); state.SetTextureMode(decal->RenderStyle);