mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-13 16:07:45 +00:00
Fix floor brightness affects sprites not in sector
This commit is contained in:
parent
e154ff888d
commit
8e72e094ce
3 changed files with 11 additions and 13 deletions
|
@ -872,17 +872,25 @@ namespace swrenderer
|
||||||
ThingSprite sprite;
|
ThingSprite sprite;
|
||||||
if (GetThingSprite(thing, sprite))
|
if (GetThingSprite(thing, sprite))
|
||||||
{
|
{
|
||||||
|
FDynamicColormap *thingColormap = basecolormap;
|
||||||
|
if (sec->sectornum != thing->Sector->sectornum) // compare sectornums to account for R_FakeFlat copies.
|
||||||
|
{
|
||||||
|
int lightlevel = thing->Sector->GetTexture(sector_t::ceiling) == skyflatnum ? thing->Sector->GetCeilingLight() : thing->Sector->GetFloorLight();
|
||||||
|
spriteshade = LIGHT2SHADE(lightlevel + R_ActualExtraLight(foggy));
|
||||||
|
thingColormap = thing->Sector->ColorMap;
|
||||||
|
}
|
||||||
|
|
||||||
if ((sprite.renderflags & RF_SPRITETYPEMASK) == RF_WALLSPRITE)
|
if ((sprite.renderflags & RF_SPRITETYPEMASK) == RF_WALLSPRITE)
|
||||||
{
|
{
|
||||||
RenderWallSprite::Project(thing, sprite.pos, sprite.picnum, sprite.spriteScale, sprite.renderflags, spriteshade, foggy, basecolormap);
|
RenderWallSprite::Project(thing, sprite.pos, sprite.picnum, sprite.spriteScale, sprite.renderflags, spriteshade, foggy, thingColormap);
|
||||||
}
|
}
|
||||||
else if (sprite.voxel)
|
else if (sprite.voxel)
|
||||||
{
|
{
|
||||||
RenderVoxel::Project(thing, sprite.pos, sprite.voxel, sprite.spriteScale, sprite.renderflags, fakeside, fakefloor, fakeceiling, sec, spriteshade, foggy, basecolormap);
|
RenderVoxel::Project(thing, sprite.pos, sprite.voxel, sprite.spriteScale, sprite.renderflags, fakeside, fakefloor, fakeceiling, sec, spriteshade, foggy, thingColormap);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
RenderSprite::Project(thing, sprite.pos, sprite.tex, sprite.spriteScale, sprite.renderflags, fakeside, fakefloor, fakeceiling, sec, spriteshade, foggy, basecolormap);
|
RenderSprite::Project(thing, sprite.pos, sprite.tex, sprite.spriteScale, sprite.renderflags, fakeside, fakefloor, fakeceiling, sec, spriteshade, foggy, thingColormap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -216,11 +216,6 @@ namespace swrenderer
|
||||||
if (vis->RenderStyle.Flags & STYLEF_InvertSource)
|
if (vis->RenderStyle.Flags & STYLEF_InvertSource)
|
||||||
invertcolormap = !invertcolormap;
|
invertcolormap = !invertcolormap;
|
||||||
|
|
||||||
if (current_sector->sectornum != thing->Sector->sectornum) // compare sectornums to account for R_FakeFlat copies.
|
|
||||||
{
|
|
||||||
basecolormap = thing->Sector->ColorMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vis->RenderStyle == LegacyRenderStyles[STYLE_Add] && basecolormap->Fade != 0)
|
if (vis->RenderStyle == LegacyRenderStyles[STYLE_Add] && basecolormap->Fade != 0)
|
||||||
{
|
{
|
||||||
basecolormap = GetSpecialLights(basecolormap->Color, 0, basecolormap->Desaturate);
|
basecolormap = GetSpecialLights(basecolormap->Color, 0, basecolormap->Desaturate);
|
||||||
|
|
|
@ -166,11 +166,6 @@ namespace swrenderer
|
||||||
invertcolormap = !invertcolormap;
|
invertcolormap = !invertcolormap;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (current_sector->sectornum != thing->Sector->sectornum) // compare sectornums to account for R_FakeFlat copies.
|
|
||||||
{
|
|
||||||
basecolormap = thing->Sector->ColorMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sprites that are added to the scene must fade to black.
|
// Sprites that are added to the scene must fade to black.
|
||||||
if (vis->RenderStyle == LegacyRenderStyles[STYLE_Add] && basecolormap->Fade != 0)
|
if (vis->RenderStyle == LegacyRenderStyles[STYLE_Add] && basecolormap->Fade != 0)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue