From 0dea6fcecc510600d16afa68d57cc53ef8a1d7cd Mon Sep 17 00:00:00 2001 From: Rachael Alexanderson Date: Thu, 3 Oct 2019 23:32:14 -0400 Subject: [PATCH] - fixed a crash in the software renderer that caused wallsprites to crash (note: there is still a bug with grabbing the texture for these) --- src/rendering/swrenderer/things/r_wallsprite.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/rendering/swrenderer/things/r_wallsprite.cpp b/src/rendering/swrenderer/things/r_wallsprite.cpp index 3a6e60a0f..6927b1951 100644 --- a/src/rendering/swrenderer/things/r_wallsprite.cpp +++ b/src/rendering/swrenderer/things/r_wallsprite.cpp @@ -141,7 +141,19 @@ namespace swrenderer vis->wallc = wallc; vis->foggy = foggy; - vis->Light.SetColormap(thread, tz, lightlevel, foggy, basecolormap, false, false, false, false, false); + if (vis->RenderStyle == LegacyRenderStyles[STYLE_Add] && basecolormap->Fade != 0) + { + basecolormap = GetSpecialLights(basecolormap->Color, 0, basecolormap->Desaturate); + } + bool fullbright = !vis->foggy && ((renderflags & RF_FULLBRIGHT) || (thing->flags5 & MF5_BRIGHT)); + + bool invertcolormap = (vis->RenderStyle.Flags & STYLEF_InvertOverlay) != 0; + if (vis->RenderStyle.Flags & STYLEF_InvertSource) + invertcolormap = !invertcolormap; + + bool fadeToBlack = (vis->RenderStyle.Flags & STYLEF_FadeToBlack) != 0; + + vis->Light.SetColormap(thread, tz, lightlevel, foggy, basecolormap, fullbright, invertcolormap, fadeToBlack, false, false); thread->SpriteList->Push(vis); }