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->flags |= FF_CUTSOLIDS;
rover->target->moved = true; rover->target->moved = true;
} }
rover->flags &= ~FF_TRANSLUCENT; rover->flags &= ~FF_TRANSLUCENT;
} }
else else
{ {
rover->flags |= FF_TRANSLUCENT; rover->flags |= FF_TRANSLUCENT;
if ((rover->flags & FF_CUTSOLIDS) && if ((rover->flags & FF_CUTSOLIDS) &&
(rover->spawnflags & 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; 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 else
@ -7569,12 +7580,17 @@ static boolean P_FadeFakeFloor(ffloor_t *rover, INT16 destvalue, INT16 speed,
if (dotranslucent) if (dotranslucent)
{ {
rover->flags |= FF_TRANSLUCENT; rover->flags |= FF_TRANSLUCENT;
if ((rover->flags & FF_CUTSOLIDS) && if ((rover->flags & FF_CUTSOLIDS) &&
(rover->spawnflags & FF_CUTSOLIDS)) (rover->spawnflags & FF_CUTSOLIDS))
{ {
rover->flags &= ~FF_CUTSOLIDS; rover->flags &= ~FF_CUTSOLIDS;
rover->target->moved = true; rover->target->moved = true;
} }
if (!(rover->spawnflags & FF_RENDERSIDES) &&
!(rover->spawnflags & FF_RENDERPLANES))
rover->flags |= FF_RENDERALL;
} }
if (docollision) if (docollision)