]> git.xonotic.org Git - xonotic/netradiant.git/blob - tools/quake3/common/surfaceflags.h
transfer from internal tree r5311 branches/1.4-gpl
[xonotic/netradiant.git] / tools / quake3 / common / surfaceflags.h
1 /*\r
2 Copyright (C) 1999-2007 id Software, Inc. and contributors.\r
3 For a list of contributors, see the accompanying CONTRIBUTORS file.\r
4 \r
5 This file is part of GtkRadiant.\r
6 \r
7 GtkRadiant is free software; you can redistribute it and/or modify\r
8 it under the terms of the GNU General Public License as published by\r
9 the Free Software Foundation; either version 2 of the License, or\r
10 (at your option) any later version.\r
11 \r
12 GtkRadiant is distributed in the hope that it will be useful,\r
13 but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
15 GNU General Public License for more details.\r
16 \r
17 You should have received a copy of the GNU General Public License\r
18 along with GtkRadiant; if not, write to the Free Software\r
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\r
20 */\r
21 \r
22 // This file must be identical in the quake and utils directories\r
23 \r
24 // contents flags are seperate bits\r
25 // a given brush can contribute multiple content bits\r
26 \r
27 // these definitions also need to be in q_shared.h!\r
28 \r
29 #define CONTENTS_SOLID                  1               // an eye is never valid in a solid\r
30 #define CONTENTS_LAVA                   8\r
31 #define CONTENTS_SLIME                  16\r
32 #define CONTENTS_WATER                  32\r
33 #define CONTENTS_FOG                    64\r
34 \r
35 #define CONTENTS_AREAPORTAL             0x8000\r
36 \r
37 #define CONTENTS_PLAYERCLIP             0x10000\r
38 #define CONTENTS_MONSTERCLIP    0x20000\r
39 //bot specific contents types\r
40 #define CONTENTS_TELEPORTER             0x40000\r
41 #define CONTENTS_JUMPPAD                0x80000\r
42 #define CONTENTS_CLUSTERPORTAL  0x100000\r
43 #define CONTENTS_DONOTENTER             0x200000\r
44 #define CONTENTS_BOTCLIP                0x400000\r
45 \r
46 #define CONTENTS_ORIGIN                 0x1000000       // removed before bsping an entity\r
47 \r
48 #define CONTENTS_BODY                   0x2000000       // should never be on a brush, only in game\r
49 #define CONTENTS_CORPSE                 0x4000000\r
50 #define CONTENTS_DETAIL                 0x8000000       // brushes not used for the bsp\r
51 #define CONTENTS_STRUCTURAL             0x10000000      // brushes used for the bsp\r
52 #define CONTENTS_TRANSLUCENT    0x20000000      // don't consume surface fragments inside\r
53 #define CONTENTS_TRIGGER                0x40000000\r
54 #define CONTENTS_NODROP                 0x80000000      // don't leave bodies or items (death fog, lava)\r
55 \r
56 #define SURF_NODAMAGE                   0x1             // never give falling damage\r
57 #define SURF_SLICK                              0x2             // effects game physics\r
58 #define SURF_SKY                                0x4             // lighting from environment map\r
59 #define SURF_LADDER                             0x8\r
60 #define SURF_NOIMPACT                   0x10    // don't make missile explosions\r
61 #define SURF_NOMARKS                    0x20    // don't leave missile marks\r
62 #define SURF_FLESH                              0x40    // make flesh sounds and effects\r
63 #define SURF_NODRAW                             0x80    // don't generate a drawsurface at all\r
64 #define SURF_HINT                               0x100   // make a primary bsp splitter\r
65 #define SURF_SKIP                               0x200   // completely ignore, allowing non-closed brushes\r
66 #define SURF_NOLIGHTMAP                 0x400   // surface doesn't need a lightmap\r
67 #define SURF_POINTLIGHT                 0x800   // generate lighting info at vertexes\r
68 #define SURF_METALSTEPS                 0x1000  // clanking footsteps\r
69 #define SURF_NOSTEPS                    0x2000  // no footstep sounds\r
70 #define SURF_NONSOLID                   0x4000  // don't collide against curves with this set\r
71 #define SURF_LIGHTFILTER                0x8000  // act as a light filter during q3map -light\r
72 #define SURF_ALPHASHADOW                0x10000 // do per-pixel light shadow casting in q3map\r
73 #define SURF_NODLIGHT                   0x20000 // don't dlight even if solid (solid lava, skies)\r
74 #define SURF_DUST                               0x40000 // leave a dust trail when walking on this surface\r
75 \r
76 \r
77 \r
78 \r
79 /* ydnar flags */\r
80 \r
81 #define CONTENTS_OPAQUE                 0x02\r
82 #define CONTENTS_LIGHTGRID              0x04\r
83 \r
84 #define SURF_VERTEXLIT                  (SURF_POINTLIGHT | SURF_NOLIGHTMAP)\r
85 \r
86 \r
87 \r
88 /* wolfenstein flags (collisions with valid q3a flags are noted) */\r
89 \r
90 #define CONTENTS_MISSILECLIP    0x80\r
91 #define CONTENTS_ITEM                   0x100\r
92 #define CONTENTS_AI_NOSIGHT             0x1000\r
93 #define CONTENTS_CLIPSHOT               0x2000\r
94 #define CONTENTS_DONOTENTER_LARGE       0x400000        /* CONTENTS_BOTCLIP */\r
95 \r
96 #define SURF_CERAMIC                    0x40                    /* SURF_FLESH */\r
97 #define SURF_METAL                      0x1000                  /* SURF_METALSTEPS */\r
98 #define SURF_WOOD                               0x40000                 /* SURF_DUST */\r
99 #define SURF_GRASS                              0x80000\r
100 #define SURF_GRAVEL                             0x100000\r
101 #define SURF_GLASS                              0x200000\r
102 #define SURF_SNOW                               0x400000\r
103 #define SURF_ROOF                               0x800000\r
104 #define SURF_RUBBLE                             0x1000000\r
105 #define SURF_CARPET                             0x2000000\r
106 #define SURF_MONSTERSLICK               0x4000000\r
107 #define SURF_MONSLICK_W                 0x8000000\r
108 #define SURF_MONSLICK_N                 0x10000000\r
109 #define SURF_MONSLICK_E                 0x20000000\r
110 #define SURF_MONSLICK_S                 0x40000000\r
111 \r
112 \r