- added a nomirrors compatibility handler and applied it to Conf256's CONF55 map.

This is for disabling broken plane reflection setups.
This commit is contained in:
Christoph Oelckers 2023-09-14 20:21:06 +02:00
parent 4ad76f549e
commit 6847a9a5c1
5 changed files with 9 additions and 2 deletions

View file

@ -251,6 +251,7 @@ enum
BCOMPATF_NOSLOPEID = 1 << 9, // disable line IDs on slopes.
BCOMPATF_CLIPMIDTEX = 1 << 10, // Always Clip midtex's in the software renderer (required to run certain GZDoom maps, has no effect in the hardware renderer)
BCOMPATF_NOSECTIONMERGE = 1 << 11, // (for IWAD maps) keep separate sections for sectors with intra-sector linedefs.
BCOMPATF_NOMIRRORS = 1 << 12, // disable mirrors, for maps that have broken setups.
};
// phares 3/20/98:

View file

@ -127,6 +127,7 @@ static FCompatOption Options[] =
{ "noslopeid", BCOMPATF_NOSLOPEID, SLOT_BCOMPAT },
{ "clipmidtex", BCOMPATF_CLIPMIDTEX, SLOT_BCOMPAT },
{ "nosectionmerge", BCOMPATF_NOSECTIONMERGE, SLOT_BCOMPAT },
{ "nomirrors", BCOMPATF_NOMIRRORS, SLOT_BCOMPAT },
// list copied from g_mapinfo.cpp

View file

@ -155,7 +155,7 @@ void HWWall::SkyPlane(HWDrawInfo *di, sector_t *sector, int plane, bool allowref
break;
}
}
else if (allowreflect && sector->GetReflect(plane) > 0)
else if (allowreflect && sector->GetReflect(plane) > 0 && !(di->Level->ib_compatflags & BCOMPATF_NOMIRRORS))
{
auto vpz = di->Viewpoint.Pos.Z;
if ((plane == sector_t::ceiling && vpz > sector->ceilingplane.fD()) ||

View file

@ -1273,7 +1273,7 @@ void HWWall::DoTexture(HWDrawInfo *di, int _type,seg_t * seg, int peg,
if (!SetWallCoordinates(seg, &tci, floatceilingref, topleft, topright, bottomleft, bottomright,
seg->sidedef->GetTextureXOffset(texpos))) return;
if (seg->linedef->special == Line_Mirror && _type == RENDERWALL_M1S && gl_mirrors)
if (seg->linedef->special == Line_Mirror && _type == RENDERWALL_M1S && gl_mirrors && !(di->Level->ib_compatflags & BCOMPATF_NOMIRRORS))
{
PutPortal(di, PORTALTYPE_MIRROR, -1);
}

View file

@ -320,3 +320,8 @@ F50C91A05E1A1E646690517641F0D1DD // daedalus.wad map19
{
shorttex
}
65C155579BEA34642A7B83DF5481B29B // Conf256.pk3 CONF55
{
nomirrors
}