qboolean RecursiveFillOutside (node_t *l, qboolean fill) { portal_t *p; int s; if (l->contents == CONTENTS_SOLID || l->contents == CONTENTS_SKY) return false; if (l->valid == valid) return false; if (l->occupied) { hit_occupied = l->occupied; backdraw = 1000; return true; } l->valid = valid; // fill it and it's neighbors if (fill) { l->contents = CONTENTS_SOLID; l->planenum = -1; } outleafs++; for (p=l->portals ; p ; ) { s = (p->nodes[0] == l); if (RecursiveFillOutside (p->nodes[s], fill) ) { // leaked, so stop filling if (backdraw-- > 0) { MarkLeakTrail (p); DrawLeaf (l, 2); } return true; } p = p->next[!s]; } return false; }
qboolean RecursiveFillOutside (node_t *l, qboolean fill) { portal_t *p; int s; if (l->contents == CONTENTS_SOLID || l->contents == CONTENTS_SKY) return false; if (l->valid == valid) return false; if (l->occupied) { hit_occupied = l->occupied; // LordHavoc: this was missing from the released source... odd return true; } l->valid = valid; // fill it and it's neighbors if (fill) l->contents = CONTENTS_SOLID; outleafs++; for (p = l->portals; p;) { s = (p->nodes[0] == l); if (RecursiveFillOutside (p->nodes[s], fill) ) { // leaked, so stop filling if (!hullnum) { MarkLeakTrail (p); DrawLeaf (l, 2); } return true; } p = p->next[!s]; } return false; }