public override void CheckNodeAgainstPortals( PCZSceneNode pczsn, Portal ignorePortal )
{
if ( pczsn == mEnclosureNode ||
pczsn.AllowToVisit == false )
{
// don't do any checking of enclosure node versus portals
return;
}
PCZone connectedZone;
foreach ( Portal portal in mPortals )
{
if ( portal != ignorePortal && portal.intersects( pczsn ) != PortalIntersectResult.NO_INTERSECT )
{
connectedZone = portal.getTargetZone();
if ( connectedZone != pczsn.HomeZone &&
!pczsn.IsVisitingZone( connectedZone ) )
{
pczsn.AddZoneToVisitingZonesMap( connectedZone );
connectedZone.AddNode( pczsn );
connectedZone.CheckNodeAgainstPortals( pczsn, portal.getTargetPortal() );
}
}
}
}