1 /*
2 ===========================================================================
3 Copyright (C) 1999-2005 Id Software, Inc.
4 
5 This file is part of Quake III Arena source code.
6 
7 Quake III Arena source code is free software; you can redistribute it
8 and/or modify it under the terms of the GNU General Public License as
9 published by the Free Software Foundation; either version 2 of the License,
10 or (at your option) any later version.
11 
12 Quake III Arena source code is distributed in the hope that it will be
13 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 GNU General Public License for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with Quake III Arena source code; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
20 ===========================================================================
21 */
22 //
23 // This file must be identical in the quake and utils directories
24 
25 // contents flags are seperate bits
26 // a given brush can contribute multiple content bits
27 
28 // these definitions also need to be in q_shared.h!
29 
30 #define	CONTENTS_SOLID			1		// an eye is never valid in a solid
31 #define	CONTENTS_LAVA			8
32 #define	CONTENTS_SLIME			16
33 #define	CONTENTS_WATER			32
34 #define	CONTENTS_FOG			64
35 
36 #define CONTENTS_NOTTEAM1		0x0080
37 #define CONTENTS_NOTTEAM2		0x0100
38 #define CONTENTS_NOBOTCLIP		0x0200
39 
40 #define	CONTENTS_AREAPORTAL		0x8000
41 
42 #define	CONTENTS_PLAYERCLIP		0x10000
43 #define	CONTENTS_MONSTERCLIP	0x20000
44 //bot specific contents types
45 #define	CONTENTS_TELEPORTER		0x40000
46 #define	CONTENTS_JUMPPAD		0x80000
47 #define CONTENTS_CLUSTERPORTAL	0x100000
48 #define CONTENTS_DONOTENTER		0x200000
49 #define CONTENTS_BOTCLIP		0x400000
50 #define CONTENTS_MOVER			0x800000
51 
52 #define	CONTENTS_ORIGIN			0x1000000	// removed before bsping an entity
53 
54 #define	CONTENTS_BODY			0x2000000	// should never be on a brush, only in game
55 #define	CONTENTS_CORPSE			0x4000000
56 #define	CONTENTS_DETAIL			0x8000000	// brushes not used for the bsp
57 #define	CONTENTS_STRUCTURAL		0x10000000	// brushes used for the bsp
58 #define	CONTENTS_TRANSLUCENT	0x20000000	// don't consume surface fragments inside
59 #define	CONTENTS_TRIGGER		0x40000000
60 #define	CONTENTS_NODROP			0x80000000	// don't leave bodies or items (death fog, lava)
61 
62 #define	SURF_NODAMAGE			0x1		// never give falling damage
63 #define	SURF_SLICK				0x2		// effects game physics
64 #define	SURF_SKY				0x4		// lighting from environment map
65 #define	SURF_LADDER				0x8
66 #define	SURF_NOIMPACT			0x10	// don't make missile explosions
67 #define	SURF_NOMARKS			0x20	// don't leave missile marks
68 #define	SURF_FLESH				0x40	// make flesh sounds and effects
69 #define	SURF_NODRAW				0x80	// don't generate a drawsurface at all
70 #define	SURF_HINT				0x100	// make a primary bsp splitter
71 #define	SURF_SKIP				0x200	// completely ignore, allowing non-closed brushes
72 #define	SURF_NOLIGHTMAP			0x400	// surface doesn't need a lightmap
73 #define	SURF_POINTLIGHT			0x800	// generate lighting info at vertexes
74 #define	SURF_METALSTEPS			0x1000	// clanking footsteps
75 #define	SURF_NOSTEPS			0x2000	// no footstep sounds
76 #define	SURF_NONSOLID			0x4000	// don't collide against curves with this set
77 #define	SURF_LIGHTFILTER		0x8000	// act as a light filter during q3map -light
78 #define	SURF_ALPHASHADOW		0x10000	// do per-pixel light shadow casting in q3map
79 #define	SURF_NODLIGHT			0x20000	// don't dlight even if solid (solid lava, skies)
80 #define SURF_DUST				0x40000 // leave a dust trail when walking on this surface
81