3D floor flats now respect r_dithertransparency flag (how did this make it into vkdoom but not gzdoom?)

This commit is contained in:
Dileep V. Reddy 2025-01-30 22:10:45 -07:00 committed by Rachael Alexanderson
parent 232b93534d
commit 2223ea6227

View file

@ -698,10 +698,50 @@ static ETraceStatus TraceCallbackForDitherTransparency(FTraceResults& res, void*
}
break;
case TRACE_HitFloor:
res.Sector->floorplane.dithertransflag = true;
if (res.HitPos.Z == res.Sector->floorplane.ZatPoint(res.HitPos))
{
res.Sector->floorplane.dithertransflag = true;
}
else if (res.Sector->e->XFloor.ffloors.Size()) // Maybe it was 3D floors
{
F3DFloor *rover;
int kk;
for (kk = 0; kk < (int)res.Sector->e->XFloor.ffloors.Size(); kk++)
{
rover = res.Sector->e->XFloor.ffloors[kk];
if ((rover->flags&(FF_EXISTS | FF_RENDERPLANES | FF_THISINSIDE)) == (FF_EXISTS | FF_RENDERPLANES))
{
if (res.HitPos.Z == rover->top.plane->ZatPoint(res.HitPos))
{
rover->top.plane->dithertransflag = true;
break; // Out of for loop
}
}
}
}
break;
case TRACE_HitCeiling:
res.Sector->ceilingplane.dithertransflag = true;
if (res.HitPos.Z == res.Sector->ceilingplane.ZatPoint(res.HitPos))
{
res.Sector->ceilingplane.dithertransflag = true;
}
else if (res.Sector->e->XFloor.ffloors.Size()) // Maybe it was 3D floors
{
F3DFloor *rover;
int kk;
for (kk = 0; kk < (int)res.Sector->e->XFloor.ffloors.Size(); kk++)
{
rover = res.Sector->e->XFloor.ffloors[kk];
if ((rover->flags&(FF_EXISTS | FF_RENDERPLANES | FF_THISINSIDE)) == (FF_EXISTS | FF_RENDERPLANES))
{
if (res.HitPos.Z == rover->bottom.plane->ZatPoint(res.HitPos))
{
rover->bottom.plane->dithertransflag = true;
break; // Out of for loop
}
}
}
}
break;
case TRACE_HitActor:
default: