Fix fog visual glitch with fading

This commit is contained in:
mazmazz 2018-09-09 22:14:24 -04:00
parent 0202bbcfd3
commit 9cc186441b

View file

@ -7481,6 +7481,7 @@ static boolean P_FadeFakeFloor(ffloor_t *rover, INT16 destvalue, INT16 speed, bo
// initialize its alpha to 1 // initialize its alpha to 1
if (dotranslucent && if (dotranslucent &&
(rover->spawnflags & FF_NOSHADE) && // do not include light blocks, which don't set FF_NOSHADE (rover->spawnflags & FF_NOSHADE) && // do not include light blocks, which don't set FF_NOSHADE
!(rover->flags & FF_FOG) && // do not include fog
!(rover->spawnflags & FF_RENDERSIDES) && !(rover->spawnflags & FF_RENDERSIDES) &&
!(rover->spawnflags & FF_RENDERPLANES) && !(rover->spawnflags & FF_RENDERPLANES) &&
!(rover->flags & FF_RENDERALL)) !(rover->flags & FF_RENDERALL))
@ -7572,7 +7573,7 @@ static boolean P_FadeFakeFloor(ffloor_t *rover, INT16 destvalue, INT16 speed, bo
rover->target->moved = true; rover->target->moved = true;
} }
if (dotranslucent) if (dotranslucent && !(rover->flags & FF_FOG))
{ {
if (alpha >= 256) if (alpha >= 256)
{ {
@ -7619,7 +7620,7 @@ static boolean P_FadeFakeFloor(ffloor_t *rover, INT16 destvalue, INT16 speed, bo
rover->flags |= FF_EXISTS; rover->flags |= FF_EXISTS;
} }
if (dotranslucent) if (dotranslucent && !(rover->flags & FF_FOG))
{ {
rover->flags |= FF_TRANSLUCENT; rover->flags |= FF_TRANSLUCENT;
@ -7667,6 +7668,8 @@ static boolean P_FadeFakeFloor(ffloor_t *rover, INT16 destvalue, INT16 speed, bo
} }
} }
if (!(rover->flags & FF_FOG)) // don't set FOG alpha
{
if (!stillfading || exactalpha) if (!stillfading || exactalpha)
rover->alpha = alpha; rover->alpha = alpha;
else // clamp fadingdata->alpha to software's alpha levels else // clamp fadingdata->alpha to software's alpha levels
@ -7694,6 +7697,7 @@ static boolean P_FadeFakeFloor(ffloor_t *rover, INT16 destvalue, INT16 speed, bo
else // Opaque else // Opaque
rover->alpha = destvalue >= 243 ? destvalue : 256; rover->alpha = destvalue >= 243 ? destvalue : 256;
} }
}
if (fadingdata) if (fadingdata)
fadingdata->alpha = alpha; fadingdata->alpha = alpha;