]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_brush.h
changed the Sys_Error to a Con_Printf. LordHavoc, please check if the equation REALLY...
[xonotic/darkplaces.git] / model_brush.h
index cd46206e9986a5c38ca669d53b048970945178df..854faf509730ac5742c3513fa97a15a55da7bbe2 100644 (file)
@@ -72,13 +72,13 @@ mplane_t;
 #define MATERIALFLAG_WATERALPHA 16
 // draw with no lighting
 #define MATERIALFLAG_FULLBRIGHT 32
-// drawn as a normal lightmapped wall
+// drawn as a normal surface (alternative to SKY)
 #define MATERIALFLAG_WALL 64
-// swirling water effect
-#define MATERIALFLAG_WATER 128
-// this surface shows the sky
+// this surface shows the sky in its place, alternative to WALL
 // skipped if transparent
-#define MATERIALFLAG_SKY 256
+#define MATERIALFLAG_SKY 128
+// swirling water effect (used with MATERIALFLAG_WALL)
+#define MATERIALFLAG_WATERSCROLL 256
 // skips drawing the surface
 #define MATERIALFLAG_NODRAW 512
 // probably used only on q1bsp water
@@ -104,10 +104,12 @@ mplane_t;
 #define MATERIALFLAG_REFRACTION 524288
 // render reflection
 #define MATERIALFLAG_REFLECTION 1048576
-// render water, comprising refraction and reflection (note: this is always opaque, the shader does the alpha effect)
-#define MATERIALFLAG_SORTTRANSPARENT 2097152
+// use model lighting on this material (q1bsp lightmap sampling or q3bsp lightgrid, implies FULLBRIGHT is false)
+#define MATERIALFLAG_MODELLIGHT 4194304
+// add directional model lighting to this material (q3bsp lightgrid only)
+#define MATERIALFLAG_MODELLIGHT_DIRECTIONAL 8388608
 // combined mask of all attributes that require depth sorted rendering
-#define MATERIALFLAGMASK_DEPTHSORTED (MATERIALFLAG_SORTTRANSPARENT | MATERIALFLAG_BLENDED | MATERIALFLAG_NODEPTHTEST)
+#define MATERIALFLAGMASK_DEPTHSORTED (MATERIALFLAG_BLENDED | MATERIALFLAG_NODEPTHTEST)
 
 typedef struct medge_s
 {
@@ -391,6 +393,7 @@ typedef struct q2darea_s
 //Q3 bsp stuff
 
 #define Q3BSPVERSION   46
+#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)
@@ -482,6 +485,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];
@@ -506,7 +517,7 @@ typedef struct q3deffect_s
 }
 q3deffect_t;
 
-#define Q3FACETYPE_POLYGON 1 // common
+#define Q3FACETYPE_FLAT 1 // common
 #define Q3FACETYPE_PATCH 2 // common
 #define Q3FACETYPE_MESH 3 // common
 #define Q3FACETYPE_FLARE 4 // rare (is this ever used?)
@@ -533,14 +544,14 @@ typedef struct q3dface_s
                unknown;
                struct
                {
-                       // Q3FACETYPE_POLYGON
-                       // polygon is simply a convex polygon, renderable as a mesh
+                       // Q3FACETYPE_FLAT
+                       // mesh is a collection of triangles on a plane, renderable as a mesh (NOT a polygon)
                        float lightmap_origin[3];
                        float lightmap_vectors[2][3];
                        float normal[3];
                        int unused1[2];
                }
-               polygon;
+               flat;
                struct
                {
                        // Q3FACETYPE_PATCH