* P_LoopSidedefs() needed another fix as it shouldn't try to report errors found on the second loop.

* Updated to ZDoom r2543:
- Added a compatibility option to render all segs of a polyobject in the center's subsector and automatically set it for Hexen MAP36 and HEXDD MAP47.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@894 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
gez 2010-08-15 13:10:53 +00:00
parent bd45d338fc
commit 18ae99a67a
11 changed files with 61 additions and 12 deletions

View file

@ -1752,8 +1752,8 @@ static void TranslateToStartSpot (int tag, int originX, int originY)
po->OriginalPts[i].y = po->Vertices[i]->y - po->StartSpot.y;
}
po->CalcCenter();
// subsector assignment no longer done here.
// Polyobjects will be sorted into the subsectors each frame before rendering them.
// For compatibility purposes
po->CenterSubsector = R_PointInSubsector(po->CenterSpot.x, po->CenterSpot.y);
}
//==========================================================================
@ -2193,7 +2193,29 @@ void FPolyObj::CreateSubsectorLinks()
seg->v2 = side->V2();
seg->wall = side;
}
SplitPoly(node, nodes + numnodes - 1, dummybbox);
if (!(i_compatflags & COMPATF_POLYOBJ))
{
SplitPoly(node, nodes + numnodes - 1, dummybbox);
}
else
{
subsector_t *sub = CenterSubsector;
// Link node to subsector
node->pnext = sub->polys;
if (node->pnext != NULL)
{
assert(node->pnext->state == 1337);
node->pnext->pprev = node;
}
node->pprev = NULL;
sub->polys = node;
// link node to polyobject
node->snext = node->poly->subsectorlinks;
node->poly->subsectorlinks = node;
node->subsector = sub;
}
}
//==========================================================================