int poly_numverts;
float *poly_verts;
+ // index into model->brush.shadowmesh
+ int num_firstshadowmeshtriangle;
+
// neighboring surfaces (one per poly_numverts)
//struct msurface_s **neighborsurfaces;
// currently used only for generating static shadow volumes
int lighttemp_castshadow;
+
+ // avoid redundent surface shadows
+ int shadowmark;
}
msurface_t;
// 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