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 Foobar; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
20 ===========================================================================
21 */
22 
23 #define ITEM_TYPE_TEXT 0                  // simple text
24 #define ITEM_TYPE_BUTTON 1                // button, basically text with a border
25 #define ITEM_TYPE_RADIOBUTTON 2           // toggle button, may be grouped
26 #define ITEM_TYPE_CHECKBOX 3              // check box
27 #define ITEM_TYPE_EDITFIELD 4             // editable text, associated with a cvar
28 #define ITEM_TYPE_COMBO 5                 // drop down list
29 #define ITEM_TYPE_LISTBOX 6               // scrollable list
30 #define ITEM_TYPE_MODEL 7                 // model
31 #define ITEM_TYPE_OWNERDRAW 8             // owner draw, name specs what it is
32 #define ITEM_TYPE_NUMERICFIELD 9          // editable text, associated with a cvar
33 #define ITEM_TYPE_SLIDER 10               // mouse speed, volume, etc.
34 #define ITEM_TYPE_YESNO 11                // yes no cvar setting
35 #define ITEM_TYPE_MULTI 12                // multiple list setting, enumerated
36 #define ITEM_TYPE_BIND 13		              // multiple list setting, enumerated
37 
38 #define ITEM_ALIGN_LEFT 0                 // left alignment
39 #define ITEM_ALIGN_CENTER 1               // center alignment
40 #define ITEM_ALIGN_RIGHT 2                // right alignment
41 
42 #define ITEM_TEXTSTYLE_NORMAL 0           // normal text
43 #define ITEM_TEXTSTYLE_BLINK 1            // fast blinking
44 #define ITEM_TEXTSTYLE_PULSE 2            // slow pulsing
45 #define ITEM_TEXTSTYLE_SHADOWED 3         // drop shadow ( need a color for this )
46 #define ITEM_TEXTSTYLE_OUTLINED 4         // drop shadow ( need a color for this )
47 #define ITEM_TEXTSTYLE_OUTLINESHADOWED 5  // drop shadow ( need a color for this )
48 #define ITEM_TEXTSTYLE_SHADOWEDMORE 6         // drop shadow ( need a color for this )
49 
50 #define WINDOW_BORDER_NONE 0              // no border
51 #define WINDOW_BORDER_FULL 1              // full border based on border color ( single pixel )
52 #define WINDOW_BORDER_HORZ 2              // horizontal borders only
53 #define WINDOW_BORDER_VERT 3              // vertical borders only
54 #define WINDOW_BORDER_KCGRADIENT 4        // horizontal border using the gradient bars
55 
56 #define WINDOW_STYLE_EMPTY 0              // no background
57 #define WINDOW_STYLE_FILLED 1             // filled with background color
58 #define WINDOW_STYLE_GRADIENT 2           // gradient bar based on background color
59 #define WINDOW_STYLE_SHADER   3           // gradient bar based on background color
60 #define WINDOW_STYLE_TEAMCOLOR 4          // team color
61 #define WINDOW_STYLE_CINEMATIC 5          // cinematic
62 
63 #define MENU_TRUE 1                       // uh.. true
64 #define MENU_FALSE 0                      // and false
65 
66 #define HUD_VERTICAL				0x00
67 #define HUD_HORIZONTAL				0x01
68 
69 // list box element types
70 #define LISTBOX_TEXT  0x00
71 #define LISTBOX_IMAGE 0x01
72 
73 // list feeders
74 #define FEEDER_HEADS						0x00			// model heads
75 #define FEEDER_MAPS							0x01			// text maps based on game type
76 #define FEEDER_SERVERS						0x02			// servers
77 #define FEEDER_CLANS						0x03			// clan names
78 #define FEEDER_ALLMAPS						0x04			// all maps available, in graphic format
79 #define FEEDER_REDTEAM_LIST					0x05			// red team members
80 #define FEEDER_BLUETEAM_LIST				0x06			// blue team members
81 #define FEEDER_PLAYER_LIST					0x07			// players
82 #define FEEDER_TEAM_LIST					0x08			// team members for team voting
83 #define FEEDER_MODS							0x09			// team members for team voting
84 #define FEEDER_DEMOS 						0x0a			// team members for team voting
85 #define FEEDER_SCOREBOARD					0x0b			// team members for team voting
86 #define FEEDER_Q3HEADS		 				0x0c			// model heads
87 #define FEEDER_SERVERSTATUS					0x0d			// server status
88 #define FEEDER_FINDPLAYER					0x0e			// find player
89 #define FEEDER_CINEMATICS					0x0f			// cinematics
90 
91 // display flags
92 #define CG_SHOW_BLUE_TEAM_HAS_REDFLAG     0x00000001
93 #define CG_SHOW_RED_TEAM_HAS_BLUEFLAG     0x00000002
94 #define CG_SHOW_ANYTEAMGAME               0x00000004
95 #define CG_SHOW_HARVESTER                 0x00000008
96 #define CG_SHOW_ONEFLAG                   0x00000010
97 #define CG_SHOW_CTF                       0x00000020
98 #define CG_SHOW_OBELISK                   0x00000040
99 #define CG_SHOW_HEALTHCRITICAL            0x00000080
100 #define CG_SHOW_SINGLEPLAYER              0x00000100
101 #define CG_SHOW_TOURNAMENT                0x00000200
102 #define CG_SHOW_DURINGINCOMINGVOICE       0x00000400
103 #define CG_SHOW_IF_PLAYER_HAS_FLAG				0x00000800
104 #define CG_SHOW_LANPLAYONLY								0x00001000
105 #define CG_SHOW_MINED											0x00002000
106 #define CG_SHOW_HEALTHOK			            0x00004000
107 #define CG_SHOW_TEAMINFO			            0x00008000
108 #define CG_SHOW_NOTEAMINFO		            0x00010000
109 #define CG_SHOW_OTHERTEAMHASFLAG          0x00020000
110 #define CG_SHOW_YOURTEAMHASENEMYFLAG      0x00040000
111 #define CG_SHOW_ANYNONTEAMGAME            0x00080000
112 #define CG_SHOW_2DONLY										0x10000000
113 
114 
115 #define UI_SHOW_LEADER				            0x00000001
116 #define UI_SHOW_NOTLEADER			            0x00000002
117 #define UI_SHOW_FAVORITESERVERS						0x00000004
118 #define UI_SHOW_ANYNONTEAMGAME						0x00000008
119 #define UI_SHOW_ANYTEAMGAME								0x00000010
120 #define UI_SHOW_NEWHIGHSCORE							0x00000020
121 #define UI_SHOW_DEMOAVAILABLE							0x00000040
122 #define UI_SHOW_NEWBESTTIME								0x00000080
123 #define UI_SHOW_FFA												0x00000100
124 #define UI_SHOW_NOTFFA										0x00000200
125 #define UI_SHOW_NETANYNONTEAMGAME	 				0x00000400
126 #define UI_SHOW_NETANYTEAMGAME		 				0x00000800
127 #define UI_SHOW_NOTFAVORITESERVERS				0x00001000
128 
129 
130 
131 
132 // owner draw types
133 // ideally these should be done outside of this file but
134 // this makes it much easier for the macro expansion to
135 // convert them for the designers ( from the .menu files )
136 #define CG_OWNERDRAW_BASE 1
137 #define CG_PLAYER_ARMOR_ICON 1
138 #define CG_PLAYER_ARMOR_VALUE 2
139 #define CG_PLAYER_HEAD 3
140 #define CG_PLAYER_HEALTH 4
141 #define CG_PLAYER_AMMO_ICON 5
142 #define CG_PLAYER_AMMO_VALUE 6
143 #define CG_SELECTEDPLAYER_HEAD 7
144 #define CG_SELECTEDPLAYER_NAME 8
145 #define CG_SELECTEDPLAYER_LOCATION 9
146 #define CG_SELECTEDPLAYER_STATUS 10
147 #define CG_SELECTEDPLAYER_WEAPON 11
148 #define CG_SELECTEDPLAYER_POWERUP 12
149 
150 #define CG_FLAGCARRIER_HEAD 13
151 #define CG_FLAGCARRIER_NAME 14
152 #define CG_FLAGCARRIER_LOCATION 15
153 #define CG_FLAGCARRIER_STATUS 16
154 #define CG_FLAGCARRIER_WEAPON 17
155 #define CG_FLAGCARRIER_POWERUP 18
156 
157 #define CG_PLAYER_ITEM 19
158 #define CG_PLAYER_SCORE 20
159 
160 #define CG_BLUE_FLAGHEAD 21
161 #define CG_BLUE_FLAGSTATUS 22
162 #define CG_BLUE_FLAGNAME 23
163 #define CG_RED_FLAGHEAD 24
164 #define CG_RED_FLAGSTATUS 25
165 #define CG_RED_FLAGNAME 26
166 
167 #define CG_BLUE_SCORE 27
168 #define CG_RED_SCORE 28
169 #define CG_RED_NAME 29
170 #define CG_BLUE_NAME 30
171 #define CG_HARVESTER_SKULLS 31					// only shows in harvester
172 #define CG_ONEFLAG_STATUS 32						// only shows in one flag
173 #define CG_PLAYER_LOCATION 33
174 #define CG_TEAM_COLOR 34
175 #define CG_CTF_POWERUP 35
176 
177 #define CG_AREA_POWERUP	36
178 #define CG_AREA_LAGOMETER	37            // painted with old system
179 #define CG_PLAYER_HASFLAG 38
180 #define CG_GAME_TYPE 39                 // not done
181 
182 #define CG_SELECTEDPLAYER_ARMOR 40
183 #define CG_SELECTEDPLAYER_HEALTH 41
184 #define CG_PLAYER_STATUS 42
185 #define CG_FRAGGED_MSG 43               // painted with old system
186 #define CG_PROXMINED_MSG 44             // painted with old system
187 #define CG_AREA_FPSINFO 45              // painted with old system
188 #define CG_AREA_SYSTEMCHAT 46           // painted with old system
189 #define CG_AREA_TEAMCHAT 47             // painted with old system
190 #define CG_AREA_CHAT 48                 // painted with old system
191 #define CG_GAME_STATUS 49
192 #define CG_KILLER 50
193 #define CG_PLAYER_ARMOR_ICON2D 51
194 #define CG_PLAYER_AMMO_ICON2D 52
195 #define CG_ACCURACY 53
196 #define CG_ASSISTS 54
197 #define CG_DEFEND 55
198 #define CG_EXCELLENT 56
199 #define CG_IMPRESSIVE 57
200 #define CG_PERFECT 58
201 #define CG_GAUNTLET 59
202 #define CG_SPECTATORS 60
203 #define CG_TEAMINFO 61
204 #define CG_VOICE_HEAD 62
205 #define CG_VOICE_NAME 63
206 #define CG_PLAYER_HASFLAG2D 64
207 #define CG_HARVESTER_SKULLS2D 65					// only shows in harvester
208 #define CG_CAPFRAGLIMIT 66
209 #define CG_1STPLACE 67
210 #define CG_2NDPLACE 68
211 #define CG_CAPTURES 69
212 
213 
214 
215 
216 #define UI_OWNERDRAW_BASE 200
217 #define UI_HANDICAP 200
218 #define UI_EFFECTS 201
219 #define UI_PLAYERMODEL 202
220 #define UI_CLANNAME 203
221 #define UI_CLANLOGO 204
222 #define UI_GAMETYPE 205
223 #define UI_MAPPREVIEW 206
224 #define UI_SKILL 207
225 #define UI_BLUETEAMNAME 208
226 #define UI_REDTEAMNAME 209
227 #define UI_BLUETEAM1 210
228 #define UI_BLUETEAM2 211
229 #define UI_BLUETEAM3 212
230 #define UI_BLUETEAM4 213
231 #define UI_BLUETEAM5 214
232 #define UI_REDTEAM1 215
233 #define UI_REDTEAM2 216
234 #define UI_REDTEAM3 217
235 #define UI_REDTEAM4 218
236 #define UI_REDTEAM5 219
237 #define UI_NETSOURCE 220
238 #define UI_NETMAPPREVIEW 221
239 #define UI_NETFILTER 222
240 #define UI_TIER 223
241 #define UI_OPPONENTMODEL 224
242 #define UI_TIERMAP1 225
243 #define UI_TIERMAP2 226
244 #define UI_TIERMAP3 227
245 #define UI_PLAYERLOGO 228
246 #define UI_OPPONENTLOGO 229
247 #define UI_PLAYERLOGO_METAL 230
248 #define UI_OPPONENTLOGO_METAL 231
249 #define UI_PLAYERLOGO_NAME 232
250 #define UI_OPPONENTLOGO_NAME 233
251 #define UI_TIER_MAPNAME 234
252 #define UI_TIER_GAMETYPE 235
253 #define UI_ALLMAPS_SELECTION 236
254 #define UI_OPPONENT_NAME 237
255 #define UI_VOTE_KICK 238
256 #define UI_BOTNAME 239
257 #define UI_BOTSKILL 240
258 #define UI_REDBLUE 241
259 #define UI_CROSSHAIR 242
260 #define UI_SELECTEDPLAYER 243
261 #define UI_MAPCINEMATIC 244
262 #define UI_NETGAMETYPE 245
263 #define UI_NETMAPCINEMATIC 246
264 #define UI_SERVERREFRESHDATE 247
265 #define UI_SERVERMOTD 248
266 #define UI_GLINFO  249
267 #define UI_KEYBINDSTATUS 250
268 #define UI_CLANCINEMATIC 251
269 #define UI_MAP_TIMETOBEAT 252
270 #define UI_JOINGAMETYPE 253
271 #define UI_PREVIEWCINEMATIC 254
272 #define UI_STARTMAPCINEMATIC 255
273 #define UI_MAPS_SELECTION 256
274 
275 #define VOICECHAT_GETFLAG			"getflag"				// command someone to get the flag
276 #define VOICECHAT_OFFENSE			"offense"				// command someone to go on offense
277 #define VOICECHAT_DEFEND			"defend"				// command someone to go on defense
278 #define VOICECHAT_DEFENDFLAG		"defendflag"			// command someone to defend the flag
279 #define VOICECHAT_PATROL			"patrol"				// command someone to go on patrol (roam)
280 #define VOICECHAT_CAMP				"camp"					// command someone to camp (we don't have sounds for this one)
281 #define VOICECHAT_FOLLOWME			"followme"				// command someone to follow you
282 #define VOICECHAT_RETURNFLAG		"returnflag"			// command someone to return our flag
283 #define VOICECHAT_FOLLOWFLAGCARRIER	"followflagcarrier"		// command someone to follow the flag carrier
284 #define VOICECHAT_YES				"yes"					// yes, affirmative, etc.
285 #define VOICECHAT_NO				"no"					// no, negative, etc.
286 #define VOICECHAT_ONGETFLAG			"ongetflag"				// I'm getting the flag
287 #define VOICECHAT_ONOFFENSE			"onoffense"				// I'm on offense
288 #define VOICECHAT_ONDEFENSE			"ondefense"				// I'm on defense
289 #define VOICECHAT_ONPATROL			"onpatrol"				// I'm on patrol (roaming)
290 #define VOICECHAT_ONCAMPING			"oncamp"				// I'm camping somewhere
291 #define VOICECHAT_ONFOLLOW			"onfollow"				// I'm following
292 #define VOICECHAT_ONFOLLOWCARRIER	"onfollowcarrier"		// I'm following the flag carrier
293 #define VOICECHAT_ONRETURNFLAG		"onreturnflag"			// I'm returning our flag
294 #define VOICECHAT_INPOSITION		"inposition"			// I'm in position
295 #define VOICECHAT_IHAVEFLAG			"ihaveflag"				// I have the flag
296 #define VOICECHAT_BASEATTACK		"baseattack"			// the base is under attack
297 #define VOICECHAT_ENEMYHASFLAG		"enemyhasflag"			// the enemy has our flag (CTF)
298 #define VOICECHAT_STARTLEADER		"startleader"			// I'm the leader
299 #define VOICECHAT_STOPLEADER		"stopleader"			// I resign leadership
300 #define VOICECHAT_TRASH				"trash"					// lots of trash talk
301 #define VOICECHAT_WHOISLEADER		"whoisleader"			// who is the team leader
302 #define VOICECHAT_WANTONDEFENSE		"wantondefense"			// I want to be on defense
303 #define VOICECHAT_WANTONOFFENSE		"wantonoffense"			// I want to be on offense
304 #define VOICECHAT_KILLINSULT		"kill_insult"			// I just killed you
305 #define VOICECHAT_TAUNT				"taunt"					// I want to taunt you
306 #define VOICECHAT_DEATHINSULT		"death_insult"			// you just killed me
307 #define VOICECHAT_KILLGAUNTLET		"kill_gauntlet"			// I just killed you with the gauntlet
308 #define VOICECHAT_PRAISE			"praise"				// you did something good
309