Handle rendering flags for invisible FOFs

This commit is contained in:
mazmazz 2018-09-08 09:08:32 -04:00
parent fcc7180d5c
commit fa0918c2f1

View file

@ -7547,11 +7547,13 @@ static boolean P_FadeFakeFloor(ffloor_t *rover, INT16 destvalue, INT16 speed,
rover->flags |= FF_CUTSOLIDS;
rover->target->moved = true;
}
rover->flags &= ~FF_TRANSLUCENT;
}
else
{
rover->flags |= FF_TRANSLUCENT;
if ((rover->flags & FF_CUTSOLIDS) &&
(rover->spawnflags & FF_CUTSOLIDS))
{
@ -7559,6 +7561,15 @@ static boolean P_FadeFakeFloor(ffloor_t *rover, INT16 destvalue, INT16 speed,
rover->target->moved = true;
}
}
if (!(rover->spawnflags & FF_RENDERSIDES) &&
!(rover->spawnflags & FF_RENDERPLANES))
{
if (rover->alpha > 1)
rover->flags |= FF_RENDERALL;
else
rover->flags &= ~FF_RENDERALL;
}
}
}
else
@ -7569,12 +7580,17 @@ static boolean P_FadeFakeFloor(ffloor_t *rover, INT16 destvalue, INT16 speed,
if (dotranslucent)
{
rover->flags |= FF_TRANSLUCENT;
if ((rover->flags & FF_CUTSOLIDS) &&
(rover->spawnflags & FF_CUTSOLIDS))
{
rover->flags &= ~FF_CUTSOLIDS;
rover->target->moved = true;
}
if (!(rover->spawnflags & FF_RENDERSIDES) &&
!(rover->spawnflags & FF_RENDERPLANES))
rover->flags |= FF_RENDERALL;
}
if (docollision)