diff --git a/src/gl/scene/gl_sprite.cpp b/src/gl/scene/gl_sprite.cpp index 4969f1f71..a99bc375c 100644 --- a/src/gl/scene/gl_sprite.cpp +++ b/src/gl/scene/gl_sprite.cpp @@ -363,6 +363,7 @@ void GLSprite::Draw(int pass) : ThingColor.Modulate(cursec->SpecialColors[sector_t::sprites]); gl_RenderState.SetObjectColor(finalcol); + gl_RenderState.SetAddColor(cursec->SpecialColors[sector_t::add]); } mDrawer->SetColor(lightlevel, rel, Colormap, trans); } @@ -501,6 +502,7 @@ void GLSprite::Draw(int pass) } gl_RenderState.SetObjectColor(0xffffffff); + gl_RenderState.SetAddColor(0); gl_RenderState.EnableTexture(true); gl_RenderState.SetDynLight(0,0,0); } diff --git a/src/gl/scene/gl_walls_draw.cpp b/src/gl/scene/gl_walls_draw.cpp index b6c57e53d..497cdb1ac 100644 --- a/src/gl/scene/gl_walls_draw.cpp +++ b/src/gl/scene/gl_walls_draw.cpp @@ -368,6 +368,7 @@ void GLWall::RenderTextured(int rflags) PalEntry color2 = side->GetSpecialColor(tierndx, side_t::wallbottom, frontsector); gl_RenderState.SetObjectColor(color1); gl_RenderState.SetObjectColor2(color2); + gl_RenderState.SetAddColor(seg->frontsector->SpecialColors[sector_t::add]); if (color1 != color2) { // Do gradient setup only if there actually is a gradient. @@ -432,6 +433,7 @@ void GLWall::RenderTextured(int rflags) } gl_RenderState.SetObjectColor(0xffffffff); gl_RenderState.SetObjectColor2(0); + gl_RenderState.SetAddColor(0); gl_RenderState.SetTextureMode(tmode); gl_RenderState.EnableGlow(false); gl_RenderState.EnableGradient(false); diff --git a/src/gl/scene/gl_weapon.cpp b/src/gl/scene/gl_weapon.cpp index f9f03a297..f65b28ab4 100644 --- a/src/gl/scene/gl_weapon.cpp +++ b/src/gl/scene/gl_weapon.cpp @@ -447,6 +447,7 @@ void GLSceneDrawer::DrawPlayerSprites(sector_t * viewsector, bool hudModelStep) } SetColor(ll, 0, cmc, trans, true); } + // gl_RenderState.SetAddColor(0); if (psp->firstTic) { // Can't interpolate the first tic. @@ -475,6 +476,7 @@ void GLSceneDrawer::DrawPlayerSprites(sector_t * viewsector, bool hudModelStep) } } gl_RenderState.SetObjectColor(0xffffffff); + gl_RenderState.SetAddColor(0); gl_RenderState.SetDynLight(0, 0, 0); gl_RenderState.EnableBrightmap(false); glset.lightmode = oldlightmode; diff --git a/wadsrc/static/shaders/glsl/main.fp b/wadsrc/static/shaders/glsl/main.fp index 95cf9c475..21b081157 100644 --- a/wadsrc/static/shaders/glsl/main.fp +++ b/wadsrc/static/shaders/glsl/main.fp @@ -93,7 +93,7 @@ vec4 getTexel(vec2 st) if (uObjectColor2.a == 0.0) texel *= uObjectColor; else texel *= mix(uObjectColor, uObjectColor2, gradientdist.z); - texel += uAddColor; + texel.rgb += uAddColor.rgb; return desaturate(texel); }