Merge remote-tracking branch 'origin/divVerent/weird-shift-a'
[divverent/netradiant.git] / tools / quake3 / q3map2 / game_reaction.h
1 /* -------------------------------------------------------------------------------
2
3 Copyright (C) 1999-2007 id Software, Inc. and contributors.
4 For a list of contributors, see the accompanying CONTRIBUTORS file.
5
6 This file is part of GtkRadiant.
7
8 GtkRadiant is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
12
13 GtkRadiant is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with GtkRadiant; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
21
22 ----------------------------------------------------------------------------------
23
24 This code has been altered significantly from its original form, to support
25 several games based on the Quake III Arena engine, in the form of "Q3Map2."
26
27 ------------------------------------------------------------------------------- */
28
29
30
31 /* marker */
32 #ifndef GAME_REACTION_H
33 #define GAME_REACTION_H
34
35
36
37 /* -------------------------------------------------------------------------------
38
39 inherit content and surface flags from game_quake3.h
40 (this file must be included AFTER game_quake3.h)
41
42 Additional surface flags follow.  These were given to me (Rambetter) by TTI from the Reaction team.
43 Note that some of these values have more than one bit set.  I'm not sure how Reaction is using these
44 bits, but this is what I got from TTI.
45
46 ------------------------------------------------------------------------------- */
47
48 #define REACTION_SURF_GRAVEL    0x80000
49 #define REACTION_SURF_WOOD      0x81000
50 #define REACTION_SURF_CARPET    0x100000
51 #define REACTION_SURF_METAL2    0x101000
52 #define REACTION_SURF_GLASS     0x180000
53 #define REACTION_SURF_GRASS     0x181000
54 #define REACTION_SURF_SNOW      0x200000
55 #define REACTION_SURF_MUD       0x201000
56 #define REACTION_SURF_WOOD2     0x280000
57 #define REACTION_SURF_HARDMETAL 0x281000
58 #define REACTION_SURF_LEAVES    0x300000
59 #define REACTION_SURF_CEMENT    0x301000
60 #define REACTION_SURF_MARBLE    0x380000
61 #define REACTION_SURF_SNOW2     0x381000
62 #define REACTION_SURF_HARDSTEPS 0x400000
63 #define REACTION_SURF_SAND      0x401000
64
65
66
67 /* -------------------------------------------------------------------------------
68
69 game_t struct
70
71 ------------------------------------------------------------------------------- */
72
73 {
74         "reaction",                     /* -game x */
75         "Boomstick",                    /* default base game data dir */
76         ".Reaction",                            /* unix home sub-dir */
77         "reaction",                     /* magic path word */
78         "scripts",                      /* shader directory */
79         64,                                     /* max lightmapped surface verts */
80         999,                            /* max surface verts */
81         6000,                           /* max surface indexes */
82         qfalse,                         /* flares */
83         "flareshader",          /* default flare shader */
84         qfalse,                         /* wolf lighting model? */
85         128,                            /* lightmap width/height */
86         1.0f,                           /* lightmap gamma */
87         1.0f,                           /* lightmap exposure */
88         1.0f,                           /* lightmap compensate */
89         1.0f,                           /* lightgrid scale */
90         1.0f,                           /* lightgrid ambient scale */
91         qfalse,                         /* light angle attenuation uses half-lambert curve */
92         qfalse,                         /* disable shader lightstyles hack */
93         qfalse,                         /* keep light entities on bsp */
94         8,                                      /* default patchMeta subdivisions tolerance */
95         qfalse,                         /* patch casting enabled */
96         qfalse,                         /* compile deluxemaps */
97         0,                                      /* deluxemaps default mode */
98         512,                /* minimap size */
99         1.0f,               /* minimap sharpener */
100         0.0f,               /* minimap border */
101         qtrue,              /* minimap keep aspect */
102         MINIMAP_MODE_GRAY,  /* minimap mode */
103         "%s.tga",           /* minimap name format */
104         "IBSP",                         /* bsp file prefix */
105         46,                                     /* bsp file version */
106         qfalse,                         /* cod-style lump len/ofs order */
107         LoadIBSPFile,           /* bsp load function */
108         WriteIBSPFile,          /* bsp write function */
109
110         {
111                 /* name                         contentFlags                            contentFlagsClear                       surfaceFlags                            surfaceFlagsClear                       compileFlags                            compileFlagsClear */
112                 
113                 /* default */
114                 { "default",            Q_CONT_SOLID,                           -1,                                                     0,                                                      -1,                                                     C_SOLID,                                        -1 },
115                 
116                 
117                 /* ydnar */
118                 { "lightgrid",          0,                                                      0,                                                      0,                                                      0,                                                      C_LIGHTGRID,                            0 },
119                 { "antiportal",         0,                                                      0,                                                      0,                                                      0,                                                      C_ANTIPORTAL,                           0 },
120                 { "skip",                       0,                                                      0,                                                      0,                                                      0,                                                      C_SKIP,                                         0 },
121                 
122                 
123                 /* compiler */
124                 { "origin",                     Q_CONT_ORIGIN,                          Q_CONT_SOLID,                           0,                                                      0,                                                      C_ORIGIN | C_TRANSLUCENT,       C_SOLID },
125                 { "areaportal",         Q_CONT_AREAPORTAL,                      Q_CONT_SOLID,                           0,                                                      0,                                                      C_AREAPORTAL | C_TRANSLUCENT,   C_SOLID },
126                 { "trans",                      Q_CONT_TRANSLUCENT,                     0,                                                      0,                                                      0,                                                      C_TRANSLUCENT,                          0 },
127                 { "detail",                     Q_CONT_DETAIL,                          0,                                                      0,                                                      0,                                                      C_DETAIL,                                       0 },
128                 { "structural",         Q_CONT_STRUCTURAL,                      0,                                                      0,                                                      0,                                                      C_STRUCTURAL,                           0 },
129                 { "hint",                       0,                                                      0,                                                      Q_SURF_HINT,                            0,                                                      C_HINT,                                         0 },
130                 { "nodraw",                     0,                                                      0,                                                      Q_SURF_NODRAW,                          0,                                                      C_NODRAW,                                       0 },
131                 
132                 { "alphashadow",        0,                                                      0,                                                      Q_SURF_ALPHASHADOW,                     0,                                                      C_ALPHASHADOW | C_TRANSLUCENT,  0 },
133                 { "lightfilter",        0,                                                      0,                                                      Q_SURF_LIGHTFILTER,                     0,                                                      C_LIGHTFILTER | C_TRANSLUCENT,  0 },
134                 { "nolightmap",         0,                                                      0,                                                      Q_SURF_VERTEXLIT,                       0,                                                      C_VERTEXLIT,                            0 },
135                 { "pointlight",         0,                                                      0,                                                      Q_SURF_VERTEXLIT,                       0,                                                      C_VERTEXLIT,                            0 },
136                 
137                 
138                 /* game */
139                 { "nonsolid",           0,                                                      Q_CONT_SOLID,                           Q_SURF_NONSOLID,                        0,                                                      0,                                                      C_SOLID },
140                 
141                 { "trigger",            Q_CONT_TRIGGER,                         Q_CONT_SOLID,                           0,                                                      0,                                                      C_TRANSLUCENT,                          C_SOLID },
142                 
143                 { "water",                      Q_CONT_WATER,                           Q_CONT_SOLID,                           0,                                                      0,                                                      C_LIQUID | C_TRANSLUCENT,       C_SOLID },
144                 { "slime",                      Q_CONT_SLIME,                           Q_CONT_SOLID,                           0,                                                      0,                                                      C_LIQUID | C_TRANSLUCENT,       C_SOLID },
145                 { "lava",                       Q_CONT_LAVA,                            Q_CONT_SOLID,                           0,                                                      0,                                                      C_LIQUID | C_TRANSLUCENT,       C_SOLID },
146                 
147                 { "playerclip",         Q_CONT_PLAYERCLIP,                      Q_CONT_SOLID,                           0,                                                      0,                                                      C_DETAIL | C_TRANSLUCENT,       C_SOLID },
148                 { "monsterclip",        Q_CONT_MONSTERCLIP,                     Q_CONT_SOLID,                           0,                                                      0,                                                      C_DETAIL | C_TRANSLUCENT,       C_SOLID },
149                 { "nodrop",                     Q_CONT_NODROP,                          Q_CONT_SOLID,                           0,                                                      0,                                                      C_TRANSLUCENT,                          C_SOLID },
150                 
151                 { "clusterportal",      Q_CONT_CLUSTERPORTAL,           Q_CONT_SOLID,                           0,                                                      0,                                                      C_TRANSLUCENT,                          C_SOLID },
152                 { "donotenter",         Q_CONT_DONOTENTER,                      Q_CONT_SOLID,                           0,                                                      0,                                                      C_TRANSLUCENT,                          C_SOLID },
153                 { "botclip",            Q_CONT_BOTCLIP,                         Q_CONT_SOLID,                           0,                                                      0,                                                      C_TRANSLUCENT,                          C_SOLID },
154                 
155                 { "fog",                        Q_CONT_FOG,                                     Q_CONT_SOLID,                           0,                                                      0,                                                      C_FOG,                                          C_SOLID },
156                 { "sky",                        0,                                                      0,                                                      Q_SURF_SKY,                                     0,                                                      C_SKY,                                          0 },
157                 
158                 { "slick",                      0,                                                      0,                                                      Q_SURF_SLICK,                           0,                                                      0,                                                      0 },
159                 
160                 { "noimpact",           0,                                                      0,                                                      Q_SURF_NOIMPACT,                        0,                                                      0,                                                      0 },
161                 { "nomarks",            0,                                                      0,                                                      Q_SURF_NOMARKS,                         0,                                                      C_NOMARKS,                                      0 },
162                 { "ladder",                     0,                                                      0,                                                      Q_SURF_LADDER,                          0,                                                      0,                                                      0 },
163                 { "nodamage",           0,                                                      0,                                                      Q_SURF_NODAMAGE,                        0,                                                      0,                                                      0 },
164                 { "metalsteps",         0,                                                      0,                                                      Q_SURF_METALSTEPS,                      0,                                                      0,                                                      0 },
165                 { "flesh",                      0,                                                      0,                                                      Q_SURF_FLESH,                           0,                                                      0,                                                      0 },
166                 { "nosteps",            0,                                                      0,                                                      Q_SURF_NOSTEPS,                         0,                                                      0,                                                      0 },
167                 { "nodlight",           0,                                                      0,                                                      Q_SURF_NODLIGHT,                        0,                                                      0,                                                      0 },
168                 { "dust",                       0,                                                      0,                                                      Q_SURF_DUST,                            0,                                                      0,                                                      0 },
169                 { "rq3_gravel",         0,      0,      REACTION_SURF_GRAVEL,           0,      0,      0 },
170                 { "rq3_wood",           0,      0,      REACTION_SURF_WOOD,             0,      0,      0 },
171                 { "rq3_carpet",         0,      0,      REACTION_SURF_CARPET,           0,      0,      0 },
172                 { "rq3_metal2",         0,      0,      REACTION_SURF_METAL2,           0,      0,      0 },
173                 { "rq3_glass",          0,      0,      REACTION_SURF_GLASS,            0,      0,      0 },
174                 { "rq3_grass",          0,      0,      REACTION_SURF_GRASS,            0,      0,      0 },
175                 { "rq3_snow",           0,      0,      REACTION_SURF_SNOW,             0,      0,      0 },
176                 { "rq3_mud",            0,      0,      REACTION_SURF_MUD,              0,      0,      0 },
177                 { "rq3_wood2",          0,      0,      REACTION_SURF_WOOD2,            0,      0,      0 },
178                 { "rq3_hardmetal",      0,      0,      REACTION_SURF_HARDMETAL,        0,      0,      0 },
179                 { "rq3_leaves",         0,      0,      REACTION_SURF_LEAVES,           0,      0,      0 },
180                 { "rq3_cement",         0,      0,      REACTION_SURF_CEMENT,           0,      0,      0 },
181                 { "rq3_marble",         0,      0,      REACTION_SURF_MARBLE,           0,      0,      0 },
182                 { "rq3_snow2",          0,      0,      REACTION_SURF_SNOW2,            0,      0,      0 },
183                 { "rq3_hardsteps",      0,      0,      REACTION_SURF_HARDSTEPS,        0,      0,      0 },
184                 { "rq3_sand",           0,      0,      REACTION_SURF_SAND,             0,      0,      0 },
185                 
186                 /* null */
187                 { NULL, 0, 0, 0, 0, 0, 0 }
188         }
189 }
190
191
192
193 /* end marker */
194 #endif