X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=model_brush.h;h=d1d51fabd854e48edb53689763624e62bf071726;hb=4513875d934ceed8f004bf62a1248a0afcb1da76;hp=cec784638b5c7b608c11b92476399fe4f71b83bd;hpb=1f05f42cb9c14b8d8417696283ef73e2ff641fed;p=xonotic%2Fdarkplaces.git diff --git a/model_brush.h b/model_brush.h index cec78463..d1d51fab 100644 --- a/model_brush.h +++ b/model_brush.h @@ -48,8 +48,15 @@ mvertex_t; // plane_t structure typedef struct mplane_s { - vec3_t normal; - float dist; + union + { + struct + { + vec3_t normal; + vec_t dist; + }; + vec4_t normal_and_dist; + }; // for texture axis selection and fast side tests int type; // set by PlaneClassify() int signbits; // set by PlaneClassify() @@ -116,6 +123,12 @@ mplane_t; #define MATERIALFLAG_TRANSDEPTH 33554432 // like refraction, but doesn't distort etc. #define MATERIALFLAG_CAMERA 67108864 +// disable rtlight on surface, use R_LightPoint instead +#define MATERIALFLAG_NORTLIGHT 134217728 +// alphagen vertex +#define MATERIALFLAG_ALPHAGEN_VERTEX 268435456 +// use occlusion buffer for corona +#define MATERIALFLAG_OCCLUDE 536870912 // 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 @@ -123,7 +136,7 @@ mplane_t; typedef struct medge_s { - unsigned short v[2]; + unsigned int v[2]; } medge_t; @@ -147,8 +160,8 @@ typedef struct mnode_s struct mnode_s *children[2]; // q1bsp specific - unsigned short firstsurface; - unsigned short numsurfaces; + unsigned int firstsurface; + unsigned int numsurfaces; } mnode_t; @@ -221,6 +234,7 @@ svbspmesh_t; // Q2 bsp stuff +#define Q2BSPMAGIC ('I' + 'B' * 256 + 'S' * 65536 + 'P' * 16777216) #define Q2BSPVERSION 38 // leaffaces, leafbrushes, planes, and verts are still bounded by @@ -319,9 +333,13 @@ typedef struct q2dmodel_s #define Q2SURF_FLOWING 0x40 // scroll towards angle #define Q2SURF_NODRAW 0x80 // don't bother referencing the texture +#define Q2SURF_HINT 0x100 // make a primary bsp splitter +#define Q2SURF_SKIP 0x200 // completely ignore, allowing non-closed brushes +#define Q2SURF_ALPHATEST 0x02000000 // alpha test masking of color 255 in wal textures (supported by modded engines) +/* typedef struct q2dnode_s { int planenum; @@ -332,13 +350,12 @@ typedef struct q2dnode_s unsigned short numfaces; // counting both sides } q2dnode_t; - typedef struct q2texinfo_s { float vecs[2][4]; // [s/t][xyz offset] int flags; // miptex flags + overrides int value; // light emission, etc - char texture[32]; // texture name (textures/*.wal) + char texture[32]; // texture name (textures/something.wal) int nexttexinfo; // for animations, -1 = end of chain } q2texinfo_t; @@ -398,6 +415,7 @@ typedef struct q2darea_s int numareaportals; int firstareaportal; } q2darea_t; +*/ //Q3 bsp stuff @@ -636,17 +654,17 @@ q3dpvs_t; #define Q3SURFACEFLAG_NODAMAGE 1 #define Q3SURFACEFLAG_SLICK 2 #define Q3SURFACEFLAG_SKY 4 -#define Q3SURFACEFLAG_LADDER 8 +#define Q3SURFACEFLAG_LADDER 8 // has no surfaceparm #define Q3SURFACEFLAG_NOIMPACT 16 #define Q3SURFACEFLAG_NOMARKS 32 -#define Q3SURFACEFLAG_FLESH 64 +#define Q3SURFACEFLAG_FLESH 64 // has no surfaceparm #define Q3SURFACEFLAG_NODRAW 128 #define Q3SURFACEFLAG_HINT 256 -#define Q3SURFACEFLAG_SKIP 512 +#define Q3SURFACEFLAG_SKIP 512 // has no surfaceparm #define Q3SURFACEFLAG_NOLIGHTMAP 1024 #define Q3SURFACEFLAG_POINTLIGHT 2048 #define Q3SURFACEFLAG_METALSTEPS 4096 -#define Q3SURFACEFLAG_NOSTEPS 8192 +#define Q3SURFACEFLAG_NOSTEPS 8192 // has no surfaceparm #define Q3SURFACEFLAG_NONSOLID 16384 #define Q3SURFACEFLAG_LIGHTFILTER 32768 #define Q3SURFACEFLAG_ALPHASHADOW 65536