- portal check is overridden by a different inverted check in the software renderer

This commit is contained in:
Magnus Norddahl 2018-10-23 09:08:41 +02:00
parent af9757abaf
commit 22422635a0
2 changed files with 4 additions and 4 deletions

View file

@ -164,7 +164,7 @@ void PolyCull::CullSubsector(subsector_t *sub)
angle_t angle2 = PointToPseudoAngle(line->v1->fX(), line->v1->fY());
angle_t angle1 = PointToPseudoAngle(line->v2->fX(), line->v2->fY());
bool lineVisible = !IsSegmentCulled(angle1, angle2);
if (lineVisible && IsBackSectorSolid(line))
if (lineVisible && IsSolidLine(line))
{
MarkSegmentCulled(angle1, angle2);
}
@ -182,13 +182,13 @@ void PolyCull::CullSubsector(subsector_t *sub)
SubsectorDepths[sub->Index()] = subsectorDepth;
}
bool PolyCull::IsBackSectorSolid(seg_t *line)
bool PolyCull::IsSolidLine(seg_t *line)
{
// One-sided
if (!line->backsector) return true;
// Portal
if (line->linedef->isVisualPortal() && line->sidedef == line->linedef->sidedef[0]) return false;
if (line->linedef->isVisualPortal() && line->sidedef == line->linedef->sidedef[0]) return true;
double frontCeilingZ1 = line->frontsector->ceilingplane.ZatPoint(line->v1);
double frontFloorZ1 = line->frontsector->floorplane.ZatPoint(line->v1);

View file

@ -56,7 +56,7 @@ private:
void MarkViewFrustum();
void InvertSegments();
static bool IsBackSectorSolid(seg_t *line);
static bool IsSolidLine(seg_t *line);
bool IsSegmentCulled(angle_t angle1, angle_t angle2) const;