]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/stats.qh
Stats: register FUEL
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / stats.qh
1 #ifndef STATS_H
2 #define STATS_H
3
4 // Full list of all stat constants, included in a single location for easy reference
5 // 255 is the current limit (MAX_CL_STATS - 1), engine will need to be modified if you wish to add more stats
6
7 const int MAX_CL_STATS                = 256;
8 // -Wdouble-declaration
9 // const int STAT_HEALTH                 = 0;
10 // 1 empty?
11 const int STAT_WEAPON                 = 2;
12 // -Wdouble-declaration
13 // const int STAT_AMMO                   = 3;
14 // -Wdouble-declaration
15 // const int STAT_ARMOR                  = 4;
16 // -Wdouble-declaration
17 // const int STAT_WEAPONFRAME            = 5;
18 // -Wdouble-declaration
19 // const int STAT_SHELLS                 = 6;
20 // -Wdouble-declaration
21 // const int STAT_NAILS                  = 7;
22 // -Wdouble-declaration
23 // const int STAT_ROCKETS                = 8;
24 // -Wdouble-declaration
25 // const int STAT_CELLS                  = 9;
26 // -Wdouble-declaration
27 // const int STAT_ACTIVEWEAPON           = 10;
28 // -Wdouble-declaration
29 // const int STAT_TOTALSECRETS           = 11;
30 // -Wdouble-declaration
31 // const int STAT_TOTALMONSTERS          = 12;
32 // -Wdouble-declaration
33 // const int STAT_SECRETS                = 13;
34 // -Wdouble-declaration
35 // const int STAT_MONSTERS               = 14;
36 // -Wdouble-declaration
37 // const int STAT_ITEMS                  = 15;
38 // -Wdouble-declaration
39 // const int STAT_VIEWHEIGHT             = 16;
40 // 17 empty?
41 // 18 empty?
42 // 19 empty?
43 // 20 empty?
44 const int STAT_VIEWZOOM               = 21;
45 // 22 empty?
46 // 23 empty?
47 // 24 empty?
48 // 25 empty?
49 // 26 empty?
50 // 27 empty?
51 // 28 empty?
52 // 29 empty?
53 // 30 empty?
54 // 31 empty?
55
56 enum {
57     STAT_WEAPONS = 32,
58     STAT_WEAPONS2,
59     STAT_WEAPONS3,
60
61     STAT_WEAPONSINMAP,
62     STAT_WEAPONSINMAP2,
63     STAT_WEAPONSINMAP3,
64
65     STAT_PL_VIEW_OFS1,
66     STAT_PL_VIEW_OFS2,
67     STAT_PL_VIEW_OFS3,
68
69     STAT_PL_CROUCH_VIEW_OFS1,
70     STAT_PL_CROUCH_VIEW_OFS2,
71     STAT_PL_CROUCH_VIEW_OFS3,
72
73     STAT_PL_MIN1,
74     STAT_PL_MIN2,
75     STAT_PL_MIN3,
76
77     STAT_PL_MAX1,
78     STAT_PL_MAX2,
79     STAT_PL_MAX3,
80
81     STAT_PL_CROUCH_MIN1,
82     STAT_PL_CROUCH_MIN2,
83     STAT_PL_CROUCH_MIN3,
84
85     STAT_PL_CROUCH_MAX1,
86     STAT_PL_CROUCH_MAX2,
87     STAT_PL_CROUCH_MAX3,
88
89     STAT_LAST_VECTOR
90 };
91
92 const int REGISTERED_STATS = 9;
93
94 REGISTER_STAT(KH_KEYS, int)
95 /** weapon requested to switch to; next WANTED weapon (for HUD) */
96 REGISTER_STAT(SWITCHWEAPON, int)
97 REGISTER_STAT(GAMESTARTTIME, float)
98 REGISTER_STAT(STRENGTH_FINISHED, float)
99 REGISTER_STAT(INVINCIBLE_FINISHED, float)
100 /** arc heat in [0,1] */
101 REGISTER_STAT(ARC_HEAT, float)
102 REGISTER_STAT(PRESSED_KEYS, int)
103 /** this stat could later contain some other bits of info, like, more server-side particle config */
104 REGISTER_STAT(ALLOW_OLDVORTEXBEAM, bool)
105 REGISTER_STAT(FUEL, int)
106
107 enum {
108     STAT_FIRST_MAIN = (STAT_LAST_VECTOR - 1) + REGISTERED_STATS,
109
110     STAT_NB_METERSTART,
111     /** compressShotOrigin */ STAT_SHOTORG,
112     STAT_LEADLIMIT,
113     STAT_WEAPON_CLIPLOAD,
114     STAT_WEAPON_CLIPSIZE,
115     STAT_VORTEX_CHARGE,
116     STAT_LAST_PICKUP,
117     STAT_HUD,
118     STAT_VORTEX_CHARGEPOOL,
119     STAT_HIT_TIME,
120     STAT_DAMAGE_DEALT_TOTAL,
121     STAT_TYPEHIT_TIME,
122     STAT_LAYED_MINES,
123     STAT_HAGAR_LOAD,
124     STAT_SWITCHINGWEAPON,
125     STAT_SUPERWEAPONS_FINISHED,
126     STAT_VEHICLESTAT_HEALTH,
127     STAT_VEHICLESTAT_SHIELD,
128     STAT_VEHICLESTAT_ENERGY,
129     STAT_VEHICLESTAT_AMMO1,
130     STAT_VEHICLESTAT_RELOAD1,
131     STAT_VEHICLESTAT_AMMO2,
132     STAT_VEHICLESTAT_RELOAD2,
133     STAT_VEHICLESTAT_W2MODE,
134     STAT_NADE_TIMER,
135     STAT_SECRETS_TOTAL,
136     STAT_SECRETS_FOUND,
137     STAT_RESPAWN_TIME,
138     STAT_ROUNDSTARTTIME,
139     STAT_MONSTERS_TOTAL,
140     STAT_MONSTERS_KILLED,
141     STAT_BUFFS,
142     STAT_NADE_BONUS,
143     STAT_NADE_BONUS_TYPE,
144     STAT_NADE_BONUS_SCORE,
145     STAT_HEALING_ORB,
146     STAT_HEALING_ORB_ALPHA,
147     STAT_PLASMA,
148     STAT_OK_AMMO_CHARGE,
149     STAT_OK_AMMO_CHARGEPOOL,
150     STAT_FROZEN,
151     STAT_REVIVE_PROGRESS,
152     STAT_ROUNDLOST,
153     STAT_BUFF_TIME,
154     STAT_CTF_FLAGSTATUS,
155     STAT_MULTIJUMP_DODGING,
156     STAT_MULTIJUMP_MAXSPEED,
157     STAT_GAMEPLAYFIX_UPVELOCITYCLEARSONGROUND,
158     STAT_BUGRIGS_REVERSE_STOPPING,
159     STAT_BUGRIGS_REVERSE_SPINNING,
160     STAT_BUGRIGS_CAR_JUMPING,
161     STAT_BUGRIGS_FRICTION_AIR,
162     STAT_BUGRIGS_STEER,
163     STAT_BUGRIGS_SPEED_POW,
164     STAT_BUGRIGS_SPEED_REF,
165     STAT_BUGRIGS_ACCEL,
166     STAT_BUGRIGS_FRICTION_BRAKE,
167     STAT_BUGRIGS_AIR_STEERING,
168     STAT_BUGRIGS_FRICTION_FLOOR,
169     STAT_BUGRIGS_REVERSE_SPEEDING,
170     STAT_BUGRIGS_PLANAR_MOVEMENT,
171     STAT_BUGRIGS_ANGLE_SMOOTHING,
172     STAT_BUGRIGS,
173     STAT_GAMEPLAYFIX_STEPDOWN,
174     STAT_MOVEVARS_JUMPSTEP,
175     STAT_NOSTEP,
176     STAT_GAMEPLAYFIX_UNSTICKPLAYERS,
177     STAT_GAMEPLAYFIX_STEPMULTIPLETIMES,
178     STAT_GAMEPLAYFIX_DOWNTRACEONGROUND,
179     STAT_GAMEPLAYFIX_EASIERWATERJUMP,
180     STAT_MOVEVARS_FRICTION_SLICK,
181     STAT_MOVEVARS_FRICTION_ONLAND,
182     STAT_MOVEVARS_JUMPSPEEDCAP_DISABLE_ONRAMPS,
183     STAT_MOVEVARS_TRACK_CANJUMP,
184     STAT_DOUBLEJUMP,
185     STAT_MOVEVARS_CL_TRACK_CANJUMP,
186     STAT_MULTIJUMP_ADD,
187     STAT_MULTIJUMP_SPEED,
188     STAT_MULTIJUMP,
189     STAT_DODGING_TIMEOUT,
190     STAT_DODGING_WALL,
191     STAT_DODGING_UP_SPEED,
192     STAT_DODGING_RAMP_TIME,
193     STAT_DODGING_HEIGHT_THRESHOLD,
194     STAT_DODGING_DISTANCE_THRESHOLD,
195     STAT_DODGING_HORIZ_SPEED,
196     STAT_DODGING_DELAY,
197     STAT_DODGING_FROZEN_NO_DOUBLETAP,
198     STAT_DODGING_HORIZ_SPEED_FROZEN,
199     STAT_DODGING,
200     STAT_DODGING_FROZEN,
201     STAT_JETPACK_MAXSPEED_UP,
202     STAT_JETPACK_MAXSPEED_SIDE,
203     STAT_JETPACK_FUEL,
204     STAT_JETPACK_ANTIGRAVITY,
205     STAT_JETPACK_ACCEL_SIDE,
206     STAT_JETPACK_ACCEL_UP,
207     STAT_MOVEVARS_HIGHSPEED,
208
209     STAT_LAST_MAIN
210 };
211
212 const int STAT_LAST = STAT_LAST_MAIN + 5;
213
214 /* The following stats change depending on the gamemode, so can share the same ID */
215
216 // freeze tag, clan arena, jailbreak
217 enum {
218     STAT_REDALIVE = STAT_LAST_MAIN,
219     STAT_BLUEALIVE,
220     STAT_YELLOWALIVE,
221     STAT_PINKALIVE,
222 };
223
224 // domination
225 enum {
226     STAT_DOM_TOTAL_PPS = STAT_LAST_MAIN,
227     STAT_DOM_PPS_RED,
228     STAT_DOM_PPS_BLUE,
229     STAT_DOM_PPS_YELLOW,
230     STAT_DOM_PPS_PINK,
231 };
232
233 // vip
234 enum {
235     STAT_VIP = STAT_LAST_MAIN,
236     STAT_VIP_RED,
237     STAT_VIP_BLUE,
238     STAT_VIP_YELLOW,
239     STAT_VIP_PINK,
240 };
241
242 // key hunt
243 enum {
244     STAT_KH_REDKEY_TEAM = STAT_LAST_MAIN,
245     STAT_KH_BLUEKEY_TEAM,
246     STAT_KH_YELLOWKEY_TEAM,
247     STAT_KH_PINKKEY_TEAM,
248 };
249
250 #define ASSERT_LESS(name, var, const) noref int name[(const - var + 1)];
251 ASSERT_LESS(stat_limit, STAT_LAST, 220)
252
253 const int STAT_MOVEVARS_AIRACCEL_QW_STRETCHFACTOR     = 220;
254 const int STAT_MOVEVARS_AIRCONTROL_PENALTY            = 221;
255 const int STAT_MOVEVARS_AIRSPEEDLIMIT_NONQW           = 222;
256 const int STAT_MOVEVARS_AIRSTRAFEACCEL_QW             = 223;
257 const int STAT_MOVEVARS_AIRCONTROL_POWER              = 224;
258 const int STAT_MOVEFLAGS                              = 225;
259 const int STAT_MOVEVARS_WARSOWBUNNY_AIRFORWARDACCEL   = 226;
260 const int STAT_MOVEVARS_WARSOWBUNNY_ACCEL             = 227;
261 const int STAT_MOVEVARS_WARSOWBUNNY_TOPSPEED          = 228;
262 const int STAT_MOVEVARS_WARSOWBUNNY_TURNACCEL         = 229;
263 const int STAT_MOVEVARS_WARSOWBUNNY_BACKTOSIDERATIO   = 230;
264 const int STAT_MOVEVARS_AIRSTOPACCELERATE             = 231;
265 const int STAT_MOVEVARS_AIRSTRAFEACCELERATE           = 232;
266 const int STAT_MOVEVARS_MAXAIRSTRAFESPEED             = 233;
267 const int STAT_MOVEVARS_AIRCONTROL                    = 234;
268 // -Wdouble-declaration
269 // const int STAT_FRAGLIMIT                              = 235;
270 // -Wdouble-declaration
271 // const int STAT_TIMELIMIT                              = 236;
272 const int STAT_MOVEVARS_WALLFRICTION                  = 237;
273 const int STAT_MOVEVARS_FRICTION                      = 238;
274 const int STAT_MOVEVARS_WATERFRICTION                 = 239;
275 // -Wdouble-declaration
276 // const int STAT_MOVEVARS_TICRATE                       = 240;
277 // -Wdouble-declaration
278 // const int STAT_MOVEVARS_TIMESCALE                     = 241;
279 // -Wdouble-declaration
280 // const int STAT_MOVEVARS_GRAVITY                       = 242;
281 const int STAT_MOVEVARS_STOPSPEED                     = 243;
282 const int STAT_MOVEVARS_MAXSPEED                      = 244;
283 const int STAT_MOVEVARS_SPECTATORMAXSPEED             = 245;
284 const int STAT_MOVEVARS_ACCELERATE                    = 246;
285 const int STAT_MOVEVARS_AIRACCELERATE                 = 247;
286 const int STAT_MOVEVARS_WATERACCELERATE               = 248;
287 const int STAT_MOVEVARS_ENTGRAVITY                    = 249;
288 const int STAT_MOVEVARS_JUMPVELOCITY                  = 250;
289 const int STAT_MOVEVARS_EDGEFRICTION                  = 251;
290 const int STAT_MOVEVARS_MAXAIRSPEED                   = 252;
291 const int STAT_MOVEVARS_STEPHEIGHT                    = 253;
292 const int STAT_MOVEVARS_AIRACCEL_QW                   = 254;
293 const int STAT_MOVEVARS_AIRACCEL_SIDEWAYS_FRICTION    = 255;
294 #endif