diff --git a/src/polyrenderer/scene/poly_playersprite.cpp b/src/polyrenderer/scene/poly_playersprite.cpp index b4b5189331..dd8fc48509 100644 --- a/src/polyrenderer/scene/poly_playersprite.cpp +++ b/src/polyrenderer/scene/poly_playersprite.cpp @@ -30,11 +30,11 @@ #include "d_player.h" #include "swrenderer/scene/r_viewport.h" #include "swrenderer/scene/r_light.h" -#include "g_levellocals.h" EXTERN_CVAR(Bool, r_drawplayersprites) EXTERN_CVAR(Bool, r_deathcamera) EXTERN_CVAR(Bool, st_scale) +EXTERN_CVAR(Bool, r_fullbrightignoresectorcolor) EXTERN_CVAR(Bool, r_shadercolormaps) void RenderPolyPlayerSprites::Render() @@ -269,12 +269,12 @@ void RenderPolyPlayerSprites::RenderSprite(DPSprite *sprite, AActor *owner, floa } if (swrenderer::fixedlightlev >= 0) { - BaseColormap = (!level.PreserveSectorColor()) ? &FullNormalLight : mybasecolormap; + BaseColormap = (r_fullbrightignoresectorcolor) ? &FullNormalLight : mybasecolormap; ColormapNum = swrenderer::fixedlightlev >> COLORMAPSHIFT; } else if (!foggy && sprite->GetState()->GetFullbright()) { // full bright - BaseColormap = (!level.PreserveSectorColor()) ? &FullNormalLight : mybasecolormap; // [RH] use basecolormap + BaseColormap = (r_fullbrightignoresectorcolor) ? &FullNormalLight : mybasecolormap; // [RH] use basecolormap ColormapNum = 0; } else @@ -334,9 +334,9 @@ void RenderPolyPlayerSprites::RenderSprite(DPSprite *sprite, AActor *owner, floa noaccel = true; } // [SP] If emulating GZDoom fullbright, disable acceleration - if (!level.PreserveSectorColor() && cameraLight->fixedlightlev >= 0) + if (r_fullbrightignoresectorcolor && cameraLight->fixedlightlev >= 0) mybasecolormap = &FullNormalLight; - if (!level.PreserveSectorColor() && !foggy && sprite->GetState()->GetFullbright()) + if (r_fullbrightignoresectorcolor && !foggy && sprite->GetState()->GetFullbright()) mybasecolormap = &FullNormalLight; colormap_to_use = mybasecolormap; } diff --git a/src/swrenderer/line/r_line.cpp b/src/swrenderer/line/r_line.cpp index b4a43d7607..ace69ea3b6 100644 --- a/src/swrenderer/line/r_line.cpp +++ b/src/swrenderer/line/r_line.cpp @@ -52,6 +52,7 @@ CVAR(Bool, r_fogboundary, true, 0) CVAR(Bool, r_drawmirrors, true, 0) +EXTERN_CVAR(Bool, r_fullbrightignoresectorcolor); namespace swrenderer { @@ -936,7 +937,7 @@ namespace swrenderer CameraLight *cameraLight = CameraLight::Instance(); if (cameraLight->fixedlightlev >= 0) - drawerstyle.SetColorMapLight((!level.PreserveSectorColor()) ? &FullNormalLight : basecolormap, 0, FIXEDLIGHT2SHADE(cameraLight->fixedlightlev)); + drawerstyle.SetColorMapLight((r_fullbrightignoresectorcolor) ? &FullNormalLight : basecolormap, 0, FIXEDLIGHT2SHADE(cameraLight->fixedlightlev)); else if (cameraLight->fixedcolormap != nullptr) drawerstyle.SetColorMapLight(cameraLight->fixedcolormap, 0, 0); diff --git a/src/swrenderer/line/r_renderdrawsegment.cpp b/src/swrenderer/line/r_renderdrawsegment.cpp index 7c81ec8ba9..2de9d81662 100644 --- a/src/swrenderer/line/r_renderdrawsegment.cpp +++ b/src/swrenderer/line/r_renderdrawsegment.cpp @@ -41,7 +41,8 @@ #include "swrenderer/things/r_visiblesprite.h" #include "swrenderer/scene/r_light.h" #include "swrenderer/scene/r_viewport.h" -#include "g_levellocals.h" + +EXTERN_CVAR(Bool, r_fullbrightignoresectorcolor); namespace swrenderer { @@ -141,7 +142,7 @@ namespace swrenderer rw_scalestep = ds->iscalestep; if (cameraLight->fixedlightlev >= 0) - drawerstyle.SetColorMapLight((!level.PreserveSectorColor()) ? &FullNormalLight : basecolormap, 0, FIXEDLIGHT2SHADE(cameraLight->fixedlightlev)); + drawerstyle.SetColorMapLight((r_fullbrightignoresectorcolor) ? &FullNormalLight : basecolormap, 0, FIXEDLIGHT2SHADE(cameraLight->fixedlightlev)); else if (cameraLight->fixedcolormap != nullptr) drawerstyle.SetColorMapLight(cameraLight->fixedcolormap, 0, 0); @@ -444,7 +445,7 @@ namespace swrenderer CameraLight *cameraLight = CameraLight::Instance(); if (cameraLight->fixedlightlev >= 0) - drawerstyle.SetColorMapLight((!level.PreserveSectorColor()) ? &FullNormalLight : basecolormap, 0, FIXEDLIGHT2SHADE(cameraLight->fixedlightlev)); + drawerstyle.SetColorMapLight((r_fullbrightignoresectorcolor) ? &FullNormalLight : basecolormap, 0, FIXEDLIGHT2SHADE(cameraLight->fixedlightlev)); else if (cameraLight->fixedcolormap != nullptr) drawerstyle.SetColorMapLight(cameraLight->fixedcolormap, 0, 0); diff --git a/src/swrenderer/scene/r_light.cpp b/src/swrenderer/scene/r_light.cpp index f214e52613..851fab7500 100644 --- a/src/swrenderer/scene/r_light.cpp +++ b/src/swrenderer/scene/r_light.cpp @@ -32,9 +32,9 @@ #include "d_player.h" #include "swrenderer/scene/r_light.h" #include "swrenderer/scene/r_viewport.h" -#include "g_levellocals.h" CVAR(Bool, r_shadercolormaps, true, CVAR_ARCHIVE) +EXTERN_CVAR(Bool, r_fullbrightignoresectorcolor) namespace swrenderer { @@ -75,7 +75,7 @@ namespace swrenderer { fixedlightlev = player->fixedlightlevel * 256; // [SP] Emulate GZDoom's light-amp goggles. - if (!level.PreserveSectorColor() && fixedlightlev >= 0) + if (r_fullbrightignoresectorcolor && fixedlightlev >= 0) { fixedcolormap = &FullNormalLight; } @@ -194,12 +194,12 @@ namespace swrenderer } else if (cameraLight->fixedlightlev >= 0) { - BaseColormap = (!level.PreserveSectorColor()) ? &FullNormalLight : basecolormap; + BaseColormap = (r_fullbrightignoresectorcolor) ? &FullNormalLight : basecolormap; ColormapNum = cameraLight->fixedlightlev >> COLORMAPSHIFT; } else if (fullbright) { - BaseColormap = (!level.PreserveSectorColor()) ? &FullNormalLight : basecolormap; + BaseColormap = (r_fullbrightignoresectorcolor) ? &FullNormalLight : basecolormap; ColormapNum = 0; } else diff --git a/src/swrenderer/scene/r_opaque_pass.cpp b/src/swrenderer/scene/r_opaque_pass.cpp index 2cb5a5993d..2391d05428 100644 --- a/src/swrenderer/scene/r_opaque_pass.cpp +++ b/src/swrenderer/scene/r_opaque_pass.cpp @@ -62,6 +62,7 @@ #include "r_data/colormaps.h" #include "g_levellocals.h" +EXTERN_CVAR(Bool, r_fullbrightignoresectorcolor); EXTERN_CVAR(Bool, r_drawvoxels); namespace swrenderer @@ -493,7 +494,7 @@ namespace swrenderer } else { - basecolormap = (!level.PreserveSectorColor() && cameraLight->fixedlightlev >= 0) ? &FullNormalLight : frontsector->ColorMap; + basecolormap = (r_fullbrightignoresectorcolor && cameraLight->fixedlightlev >= 0) ? &FullNormalLight : frontsector->ColorMap; } portal = frontsector->ValidatePortal(sector_t::ceiling); @@ -531,7 +532,7 @@ namespace swrenderer } else { - basecolormap = (!level.PreserveSectorColor() && cameraLight->fixedlightlev >= 0) ? &FullNormalLight : frontsector->ColorMap; + basecolormap = (r_fullbrightignoresectorcolor && cameraLight->fixedlightlev >= 0) ? &FullNormalLight : frontsector->ColorMap; } // killough 3/7/98: Add (x,y) offsets to flats, add deep water check diff --git a/src/swrenderer/scene/r_translucent_pass.cpp b/src/swrenderer/scene/r_translucent_pass.cpp index 69444f560f..67b0600955 100644 --- a/src/swrenderer/scene/r_translucent_pass.cpp +++ b/src/swrenderer/scene/r_translucent_pass.cpp @@ -43,6 +43,8 @@ EXTERN_CVAR(Int, r_drawfuzz) EXTERN_CVAR(Bool, r_drawvoxels) EXTERN_CVAR(Bool, r_blendmethod) +CVAR(Bool, r_fullbrightignoresectorcolor, true, CVAR_ARCHIVE | CVAR_GLOBALCONFIG); + namespace swrenderer { RenderTranslucentPass *RenderTranslucentPass::Instance() diff --git a/src/swrenderer/things/r_decal.cpp b/src/swrenderer/things/r_decal.cpp index 1e15c55926..6c0fea63fe 100644 --- a/src/swrenderer/things/r_decal.cpp +++ b/src/swrenderer/things/r_decal.cpp @@ -42,7 +42,8 @@ #include "swrenderer/scene/r_light.h" #include "swrenderer/things/r_wallsprite.h" #include "swrenderer/r_memory.h" -#include "g_levellocals.h" + +EXTERN_CVAR(Bool, r_fullbrightignoresectorcolor); namespace swrenderer { diff --git a/src/swrenderer/things/r_particle.cpp b/src/swrenderer/things/r_particle.cpp index a63028e84f..5d978fd9f5 100644 --- a/src/swrenderer/things/r_particle.cpp +++ b/src/swrenderer/things/r_particle.cpp @@ -56,6 +56,8 @@ #include "swrenderer/drawers/r_draw_pal.h" #include "swrenderer/r_memory.h" +EXTERN_CVAR(Bool, r_fullbrightignoresectorcolor); + namespace swrenderer { void RenderParticle::Project(particle_t *particle, const sector_t *sector, int shade, WaterFakeSide fakeside, bool foggy) diff --git a/src/swrenderer/things/r_playersprite.cpp b/src/swrenderer/things/r_playersprite.cpp index 31c31973b6..b4b76cd621 100644 --- a/src/swrenderer/things/r_playersprite.cpp +++ b/src/swrenderer/things/r_playersprite.cpp @@ -61,6 +61,7 @@ EXTERN_CVAR(Bool, st_scale) EXTERN_CVAR(Bool, r_drawplayersprites) EXTERN_CVAR(Bool, r_deathcamera) EXTERN_CVAR(Bool, r_shadercolormaps) +EXTERN_CVAR(Bool, r_fullbrightignoresectorcolor) namespace swrenderer { diff --git a/src/swrenderer/things/r_sprite.cpp b/src/swrenderer/things/r_sprite.cpp index 292307389a..600d4bc716 100644 --- a/src/swrenderer/things/r_sprite.cpp +++ b/src/swrenderer/things/r_sprite.cpp @@ -56,6 +56,8 @@ #include "swrenderer/things/r_sprite.h" #include "swrenderer/r_memory.h" +EXTERN_CVAR(Bool, r_fullbrightignoresectorcolor) + namespace swrenderer { void RenderSprite::Project(AActor *thing, const DVector3 &pos, FTexture *tex, const DVector2 &spriteScale, int renderflags, WaterFakeSide fakeside, F3DFloor *fakefloor, F3DFloor *fakeceiling, sector_t *current_sector, int spriteshade, bool foggy, FDynamicColormap *basecolormap) diff --git a/src/swrenderer/things/r_visiblesprite.cpp b/src/swrenderer/things/r_visiblesprite.cpp index 14406be39b..b2c0b054a1 100644 --- a/src/swrenderer/things/r_visiblesprite.cpp +++ b/src/swrenderer/things/r_visiblesprite.cpp @@ -36,6 +36,8 @@ #include "swrenderer/scene/r_viewport.h" #include "swrenderer/r_memory.h" +EXTERN_CVAR(Bool, r_fullbrightignoresectorcolor); + namespace swrenderer { void VisibleSprite::Render() diff --git a/src/swrenderer/things/r_voxel.cpp b/src/swrenderer/things/r_voxel.cpp index 0cd4d4d2b4..d7f4c047d8 100644 --- a/src/swrenderer/things/r_voxel.cpp +++ b/src/swrenderer/things/r_voxel.cpp @@ -43,6 +43,8 @@ #include "swrenderer/scene/r_light.h" #include "swrenderer/r_memory.h" +EXTERN_CVAR(Bool, r_fullbrightignoresectorcolor) + namespace swrenderer { void RenderVoxel::Project(AActor *thing, DVector3 pos, FVoxelDef *voxel, const DVector2 &spriteScale, int renderflags, WaterFakeSide fakeside, F3DFloor *fakefloor, F3DFloor *fakeceiling, sector_t *current_sector, int spriteshade, bool foggy, FDynamicColormap *basecolormap) diff --git a/src/swrenderer/things/r_wallsprite.cpp b/src/swrenderer/things/r_wallsprite.cpp index 78ab9f6403..297dd96cda 100644 --- a/src/swrenderer/things/r_wallsprite.cpp +++ b/src/swrenderer/things/r_wallsprite.cpp @@ -57,7 +57,8 @@ #include "swrenderer/line/r_wallsetup.h" #include "swrenderer/line/r_walldraw.h" #include "swrenderer/r_memory.h" -#include "g_levellocals.h" + +EXTERN_CVAR(Bool, r_fullbrightignoresectorcolor); namespace swrenderer { @@ -191,7 +192,7 @@ namespace swrenderer else if (cameraLight->fixedcolormap != NULL) drawerstyle.SetColorMapLight(cameraLight->fixedcolormap, 0, 0); else if (!spr->foggy && (spr->renderflags & RF_FULLBRIGHT)) - drawerstyle.SetColorMapLight((!level.PreserveSectorColor()) ? &FullNormalLight : usecolormap, 0, 0); + drawerstyle.SetColorMapLight((r_fullbrightignoresectorcolor) ? &FullNormalLight : usecolormap, 0, 0); else calclighting = true;