]> de.git.xonotic.org Git - xonotic/netradiant.git/blob - tools/quake3/q3map2/game_reaction.h
q3map2/games: bikeshedding
[xonotic/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,             /* enable per shader prefix surface flags and .tex file */
83         qfalse,             /* flares */
84         "flareshader",      /* default flare shader */
85         qfalse,             /* wolf lighting model? */
86         128,                /* lightmap width/height */
87         1.0f,               /* lightmap gamma */
88         qfalse,             /* lightmap sRGB */
89         qfalse,             /* texture sRGB */
90         qfalse,             /* color sRGB */
91         0.0f,               /* lightmap exposure */
92         1.0f,               /* lightmap compensate */
93         1.0f,               /* lightgrid scale */
94         1.0f,               /* lightgrid ambient scale */
95         qfalse,             /* light angle attenuation uses half-lambert curve */
96         qfalse,             /* disable shader lightstyles hack */
97         qfalse,             /* keep light entities on bsp */
98         8,                  /* default patchMeta subdivisions tolerance */
99         qfalse,             /* patch casting enabled */
100         qfalse,             /* compile deluxemaps */
101         0,                  /* deluxemaps default mode */
102         512,                /* minimap size */
103         1.0f,               /* minimap sharpener */
104         0.0f,               /* minimap border */
105         qtrue,              /* minimap keep aspect */
106         MINIMAP_MODE_GRAY,  /* minimap mode */
107         "%s.tga",           /* minimap name format */
108         MINIMAP_SIDECAR_NONE, /* minimap sidecar format */
109         "IBSP",             /* bsp file prefix */
110         46,                 /* bsp file version */
111         qfalse,             /* cod-style lump len/ofs order */
112         LoadIBSPFile,       /* bsp load function */
113         WriteIBSPFile,      /* bsp write function */
114
115         {
116                 /* name                         contentFlags                            contentFlagsClear                       surfaceFlags                            surfaceFlagsClear                       compileFlags                            compileFlagsClear */
117
118                 /* default */
119                 { "default",        Q_CONT_SOLID,               -1,                         0,                          -1,                         C_SOLID,                    -1 },
120
121
122                 /* ydnar */
123                 { "lightgrid",      0,                          0,                          0,                          0,                          C_LIGHTGRID,                0 },
124                 { "antiportal",     0,                          0,                          0,                          0,                          C_ANTIPORTAL,               0 },
125                 { "skip",           0,                          0,                          0,                          0,                          C_SKIP,                     0 },
126
127
128                 /* compiler */
129                 { "origin",         Q_CONT_ORIGIN,              Q_CONT_SOLID,               0,                          0,                          C_ORIGIN | C_TRANSLUCENT,   C_SOLID },
130                 { "areaportal",     Q_CONT_AREAPORTAL,          Q_CONT_SOLID,               0,                          0,                          C_AREAPORTAL | C_TRANSLUCENT,   C_SOLID },
131                 { "trans",          Q_CONT_TRANSLUCENT,         0,                          0,                          0,                          C_TRANSLUCENT,              0 },
132                 { "detail",         Q_CONT_DETAIL,              0,                          0,                          0,                          C_DETAIL,                   0 },
133                 { "structural",     Q_CONT_STRUCTURAL,          0,                          0,                          0,                          C_STRUCTURAL,               0 },
134                 { "hint",           0,                          0,                          Q_SURF_HINT,                0,                          C_HINT,                     0 },
135                 { "nodraw",         0,                          0,                          Q_SURF_NODRAW,              0,                          C_NODRAW,                   0 },
136
137                 { "alphashadow",    0,                          0,                          Q_SURF_ALPHASHADOW,         0,                          C_ALPHASHADOW | C_TRANSLUCENT,  0 },
138                 { "lightfilter",    0,                          0,                          Q_SURF_LIGHTFILTER,         0,                          C_LIGHTFILTER | C_TRANSLUCENT,  0 },
139                 { "nolightmap",     0,                          0,                          Q_SURF_VERTEXLIT,           0,                          C_VERTEXLIT,                0 },
140                 { "pointlight",     0,                          0,                          Q_SURF_VERTEXLIT,           0,                          C_VERTEXLIT,                0 },
141
142
143                 /* game */
144                 { "nonsolid",       0,                          Q_CONT_SOLID,               Q_SURF_NONSOLID,            0,                          0,                          C_SOLID },
145
146                 { "trigger",        Q_CONT_TRIGGER,             Q_CONT_SOLID,               0,                          0,                          C_TRANSLUCENT,              C_SOLID },
147
148                 { "water",          Q_CONT_WATER,               Q_CONT_SOLID,               0,                          0,                          C_LIQUID | C_TRANSLUCENT,   C_SOLID },
149                 { "slime",          Q_CONT_SLIME,               Q_CONT_SOLID,               0,                          0,                          C_LIQUID | C_TRANSLUCENT,   C_SOLID },
150                 { "lava",           Q_CONT_LAVA,                Q_CONT_SOLID,               0,                          0,                          C_LIQUID | C_TRANSLUCENT,   C_SOLID },
151
152                 { "playerclip",     Q_CONT_PLAYERCLIP,          Q_CONT_SOLID,               0,                          0,                          C_DETAIL | C_TRANSLUCENT,   C_SOLID },
153                 { "monsterclip",    Q_CONT_MONSTERCLIP,         Q_CONT_SOLID,               0,                          0,                          C_DETAIL | C_TRANSLUCENT,   C_SOLID },
154                 { "nodrop",         Q_CONT_NODROP,              Q_CONT_SOLID,               0,                          0,                          C_TRANSLUCENT,              C_SOLID },
155
156                 { "clusterportal",  Q_CONT_CLUSTERPORTAL,       Q_CONT_SOLID,               0,                          0,                          C_TRANSLUCENT,              C_SOLID },
157                 { "donotenter",     Q_CONT_DONOTENTER,          Q_CONT_SOLID,               0,                          0,                          C_TRANSLUCENT,              C_SOLID },
158                 { "botclip",        Q_CONT_BOTCLIP,             Q_CONT_SOLID,               0,                          0,                          C_TRANSLUCENT,              C_SOLID },
159
160                 { "fog",            Q_CONT_FOG,                 Q_CONT_SOLID,               0,                          0,                          C_FOG,                      C_SOLID },
161                 { "sky",            0,                          0,                          Q_SURF_SKY,                 0,                          C_SKY,                      0 },
162
163                 { "slick",          0,                          0,                          Q_SURF_SLICK,               0,                          0,                          0 },
164
165                 { "noimpact",       0,                          0,                          Q_SURF_NOIMPACT,            0,                          0,                          0 },
166                 { "nomarks",        0,                          0,                          Q_SURF_NOMARKS,             0,                          C_NOMARKS,                  0 },
167                 { "ladder",         0,                          0,                          Q_SURF_LADDER,              0,                          0,                          0 },
168                 { "nodamage",       0,                          0,                          Q_SURF_NODAMAGE,            0,                          0,                          0 },
169                 { "metalsteps",     0,                          0,                          Q_SURF_METALSTEPS,          0,                          0,                          0 },
170                 { "flesh",          0,                          0,                          Q_SURF_FLESH,               0,                          0,                          0 },
171                 { "nosteps",        0,                          0,                          Q_SURF_NOSTEPS,             0,                          0,                          0 },
172                 { "nodlight",       0,                          0,                          Q_SURF_NODLIGHT,            0,                          0,                          0 },
173                 { "dust",           0,                          0,                          Q_SURF_DUST,                0,                          0,                          0 },
174                 { "rq3_gravel",     0,  0,  REACTION_SURF_GRAVEL,       0,  0,  0 },
175                 { "rq3_wood",       0,  0,  REACTION_SURF_WOOD,     0,  0,  0 },
176                 { "rq3_carpet",     0,  0,  REACTION_SURF_CARPET,       0,  0,  0 },
177                 { "rq3_metal2",     0,  0,  REACTION_SURF_METAL2,       0,  0,  0 },
178                 { "rq3_glass",      0,  0,  REACTION_SURF_GLASS,        0,  0,  0 },
179                 { "rq3_grass",      0,  0,  REACTION_SURF_GRASS,        0,  0,  0 },
180                 { "rq3_snow",       0,  0,  REACTION_SURF_SNOW,     0,  0,  0 },
181                 { "rq3_mud",        0,  0,  REACTION_SURF_MUD,      0,  0,  0 },
182                 { "rq3_wood2",      0,  0,  REACTION_SURF_WOOD2,        0,  0,  0 },
183                 { "rq3_hardmetal",  0,  0,  REACTION_SURF_HARDMETAL,    0,  0,  0 },
184                 { "rq3_leaves",     0,  0,  REACTION_SURF_LEAVES,       0,  0,  0 },
185                 { "rq3_cement",     0,  0,  REACTION_SURF_CEMENT,       0,  0,  0 },
186                 { "rq3_marble",     0,  0,  REACTION_SURF_MARBLE,       0,  0,  0 },
187                 { "rq3_snow2",      0,  0,  REACTION_SURF_SNOW2,        0,  0,  0 },
188                 { "rq3_hardsteps",  0,  0,  REACTION_SURF_HARDSTEPS,    0,  0,  0 },
189                 { "rq3_sand",       0,  0,  REACTION_SURF_SAND,     0,  0,  0 },
190
191                 /* null */
192                 { NULL, 0, 0, 0, 0, 0, 0 }
193         }
194 }
195
196
197
198 /* end marker */
199 #endif