]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_brush.h
Bounds
[xonotic/darkplaces.git] / model_brush.h
index a0a92687fb5da962b2e71c5b86ed1472f2417bef..ab2a5121833d813747eddf2cd3e0d625a0d1d255 100644 (file)
@@ -51,8 +51,8 @@ typedef struct mplane_s
        vec3_t normal;
        float dist;
        // for texture axis selection and fast side tests
-       int type;
-       int signbits;
+       int type; // set by PlaneClassify()
+       int signbits; // set by PlaneClassify()
 }
 mplane_t;
 
@@ -62,6 +62,8 @@ mplane_t;
 
 //#define SURF_PLANEBACK 2
 
+// indicates that all triangles of the surface should be added to the BIH collision system
+#define MATERIALFLAG_MESHCOLLISIONS 1
 // use alpha blend on this material
 #define MATERIALFLAG_ALPHA 2
 // use additive blend on this material
@@ -108,8 +110,16 @@ mplane_t;
 #define MATERIALFLAG_MODELLIGHT 4194304
 // add directional model lighting to this material (q3bsp lightgrid only)
 #define MATERIALFLAG_MODELLIGHT_DIRECTIONAL 8388608
+// causes RSurf_GetCurrentTexture to leave alone certain fields
+#define MATERIALFLAG_CUSTOMSURFACE 16777216
+// causes MATERIALFLAG_BLENDED to render a depth pass before rendering, hiding backfaces and other hidden geometry
+#define MATERIALFLAG_TRANSDEPTH 33554432
+// like refraction, but doesn't distort etc.
+#define MATERIALFLAG_CAMERA 67108864
 // combined mask of all attributes that require depth sorted rendering
 #define MATERIALFLAGMASK_DEPTHSORTED (MATERIALFLAG_BLENDED | MATERIALFLAG_NODEPTHTEST)
+// combined mask of all attributes that cause some sort of transparency
+#define MATERIALFLAGMASK_TRANSLUCENT (MATERIALFLAG_WATERALPHA | MATERIALFLAG_SKY | MATERIALFLAG_NODRAW | MATERIALFLAG_ALPHATEST | MATERIALFLAG_BLENDED | MATERIALFLAG_WATERSHADER | MATERIALFLAG_REFRACTION)
 
 typedef struct medge_s
 {
@@ -393,6 +403,8 @@ typedef struct q2darea_s
 //Q3 bsp stuff
 
 #define Q3BSPVERSION   46
+#define Q3BSPVERSION_LIVE 47
+#define Q3BSPVERSION_IG        48
 
 #define        Q3LUMP_ENTITIES         0 // entities to spawn (used by server and client)
 #define        Q3LUMP_TEXTURES         1 // textures used (used by faces)
@@ -412,12 +424,15 @@ typedef struct q2darea_s
 #define        Q3LUMP_LIGHTGRID        15 // lighting as a voxel grid (used by rendering)
 #define        Q3LUMP_PVS                      16 // potentially visible set; bit[clusters][clusters] (used by rendering)
 #define        Q3HEADER_LUMPS          17
+#define        Q3LUMP_ADVERTISEMENTS 17 // quake live stuff written by zeroradiant's q3map2 (ignored by DP)
+#define        Q3HEADER_LUMPS_LIVE     18
+#define        Q3HEADER_LUMPS_MAX      18
 
 typedef struct q3dheader_s
 {
        int                     ident;
        int                     version;
-       lump_t          lumps[Q3HEADER_LUMPS];
+       lump_t          lumps[Q3HEADER_LUMPS_MAX];
 } q3dheader_t;
 
 typedef struct q3dtexture_s
@@ -484,6 +499,14 @@ typedef struct q3dbrushside_s
 }
 q3dbrushside_t;
 
+typedef struct q3dbrushside_ig_s
+{
+       int planeindex;
+       int textureindex;
+       int surfaceflags;
+}
+q3dbrushside_ig_t;
+
 typedef struct q3dvertex_s
 {
        float origin3f[3];
@@ -652,7 +675,7 @@ q3dpvs_t;
 #define Q3SURFACEPARM_ORIGIN 262144
 #define Q3SURFACEPARM_PLAYERCLIP 524288
 #define Q3SURFACEPARM_SKY 1048576
-#define Q3SURFACEPARM_SLICK 2197152
+#define Q3SURFACEPARM_SLICK 2097152
 #define Q3SURFACEPARM_SLIME 4194304
 #define Q3SURFACEPARM_STRUCTURAL 8388608
 #define Q3SURFACEPARM_TRANS 16777216