vec3_t mins;
vec3_t maxs;
+ mplane_t *plane; // != NULL
// node specific
- mplane_t *plane;
struct mnode_s *children[2];
unsigned short firstsurface;
vec3_t mins;
vec3_t maxs;
+ mplane_t *plane; // == NULL
// leaf specific
// next leaf in pvschain
struct mleaf_s *pvschain;
// used by polygon-through-portals visibility checker
int portalmarkid;
- // decompressed pvs bits (potentially visible set)
- // note: never NULL, always present, may be full of 0xFF though
- qbyte *pvsdata;
+ // -1 is not in pvs, >= 0 is pvs bit number
+ int clusterindex;
int *firstmarksurface;
int nummarksurfaces;
}
q3dpvs_t;
+#define CHECKPVSBIT(pvs,b) ((b) >= 0 ? ((pvs)[(b) >> 3] & (1 << ((b) & 7))) : false)
+#define SETPVSBIT(pvs,b) ((b) >= 0 ? ((pvs)[(b) >> 3] |= (1 << ((b) & 7))) : false)
+
#endif