- fixed: The PolyBSPs weren't fully initialized. Some GZDoom-only fields in the segs were skipped.

This commit is contained in:
Christoph Oelckers 2014-10-14 08:54:08 +02:00
parent 5d032f3fcf
commit 9f1f17c306
2 changed files with 7 additions and 2 deletions

View file

@ -267,6 +267,11 @@ static void AddPolyobjs(subsector_t *sub)
if (sub->BSP == NULL || sub->BSP->bDirty)
{
sub->BuildPolyBSP();
for (unsigned i = 0; i < sub->BSP->Segs.Size(); i++)
{
sub->BSP->Segs[i].Subsector = sub;
sub->BSP->Segs[i].PartnerSeg = NULL;
}
}
if (sub->BSP->Nodes.Size() == 0)
{

View file

@ -1631,7 +1631,7 @@ void GLWall::Process(seg_t *seg, sector_t * frontsector, sector_t * backsector)
else if (!(seg->sidedef->Flags & WALLF_POLYOBJ))
{
// skip processing if the back is a malformed subsector
if (!(seg->PartnerSeg->Subsector->hacked & 4))
if (seg->PartnerSeg != NULL && !(seg->PartnerSeg->Subsector->hacked & 4))
{
gl_drawinfo->AddUpperMissingTexture(seg->sidedef, sub, bch1a);
}
@ -1704,7 +1704,7 @@ void GLWall::Process(seg_t *seg, sector_t * frontsector, sector_t * backsector)
!(seg->sidedef->Flags & WALLF_POLYOBJ))
{
// skip processing if the back is a malformed subsector
if (!(seg->PartnerSeg->Subsector->hacked & 4))
if (seg->PartnerSeg != NULL && !(seg->PartnerSeg->Subsector->hacked & 4))
{
gl_drawinfo->AddLowerMissingTexture(seg->sidedef, sub, bfh1);
}