1 /* -------------------------------------------------------------------------------
3 Copyright (C) 1999-2007 id Software, Inc. and contributors.
4 For a list of contributors, see the accompanying CONTRIBUTORS file.
6 This file is part of GtkRadiant.
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.
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.
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
22 ----------------------------------------------------------------------------------
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."
27 ------------------------------------------------------------------------------- */
32 #ifndef GAME_REACTION_H
33 #define GAME_REACTION_H
37 /* -------------------------------------------------------------------------------
39 inherit content and surface flags from game_quake3.h
40 (this file must be included AFTER game_quake3.h)
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.
46 ------------------------------------------------------------------------------- */
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
67 /* -------------------------------------------------------------------------------
71 ------------------------------------------------------------------------------- */
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 */
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 */
111 /* name contentFlags contentFlagsClear surfaceFlags surfaceFlagsClear compileFlags compileFlagsClear */
114 { "default", Q_CONT_SOLID, -1, 0, -1, C_SOLID, -1 },
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 },
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 },
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 },
139 { "nonsolid", 0, Q_CONT_SOLID, Q_SURF_NONSOLID, 0, 0, C_SOLID },
141 { "trigger", Q_CONT_TRIGGER, Q_CONT_SOLID, 0, 0, C_TRANSLUCENT, C_SOLID },
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 },
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 },
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 },
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 },
158 { "slick", 0, 0, Q_SURF_SLICK, 0, 0, 0 },
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 },
187 { NULL, 0, 0, 0, 0, 0, 0 }