Restore portal culling code that went gone by pure accident

This commit is contained in:
Jaime Passos 2019-12-11 11:35:34 -03:00
parent 2d68eac528
commit dedd5527da
4 changed files with 12 additions and 0 deletions

View File

@ -1378,5 +1378,13 @@ void R_RenderBSPNode(INT32 bspnum)
bspnum = bsp->children[side^1]; bspnum = bsp->children[side^1];
} }
// PORTAL CULLING
if (portalcullsector) {
sector_t *sect = subsectors[bspnum & ~NF_SUBSECTOR].sector;
if (sect != portalcullsector)
return;
portalcullsector = NULL;
}
R_Subsector(bspnum == -1 ? 0 : bspnum & ~NF_SUBSECTOR); R_Subsector(bspnum == -1 ? 0 : bspnum & ~NF_SUBSECTOR);
} }

View File

@ -1008,11 +1008,13 @@ static void R_PortalFrame(portal_t *portal)
if (portal->clipline != -1) if (portal->clipline != -1)
{ {
portalclipline = &lines[portal->clipline]; portalclipline = &lines[portal->clipline];
portalcullsector = portalclipline->frontsector;
viewsector = portalclipline->frontsector; viewsector = portalclipline->frontsector;
} }
else else
{ {
portalclipline = NULL; portalclipline = NULL;
portalcullsector = NULL;
viewsector = R_PointInSubsector(viewx, viewy)->sector; viewsector = R_PointInSubsector(viewx, viewy)->sector;
} }
} }

View File

@ -26,6 +26,7 @@ UINT8 portalrender; /**< When rendering a portal, it establishes the depth of
portal_t *portal_base, *portal_cap; portal_t *portal_base, *portal_cap;
line_t *portalclipline; line_t *portalclipline;
sector_t *portalcullsector;
INT32 portalclipstart, portalclipend; INT32 portalclipstart, portalclipend;
boolean portalline; // is curline a portal seg? boolean portalline; // is curline a portal seg?

View File

@ -45,6 +45,7 @@ extern portal_t* portal_cap;
extern UINT8 portalrender; extern UINT8 portalrender;
extern line_t *portalclipline; extern line_t *portalclipline;
extern sector_t *portalcullsector;
extern INT32 portalclipstart, portalclipend; extern INT32 portalclipstart, portalclipend;
void Portal_InitList (void); void Portal_InitList (void);