]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/stats.qh
Port another 10 stats
[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 = 33;
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 REGISTER_STAT(NB_METERSTART, float)
107 /** compressShotOrigin */
108 REGISTER_STAT(SHOTORG, int)
109 REGISTER_STAT(LEADLIMIT, float)
110 REGISTER_STAT(WEAPON_CLIPLOAD, int)
111 REGISTER_STAT(WEAPON_CLIPSIZE, int)
112
113 REGISTER_STAT(VORTEX_CHARGE, float)
114 REGISTER_STAT(LAST_PICKUP, float)
115 REGISTER_STAT(HUD, int)
116 REGISTER_STAT(VORTEX_CHARGEPOOL, float)
117 REGISTER_STAT(HIT_TIME, float)
118 REGISTER_STAT(DAMAGE_DEALT_TOTAL, int)
119 REGISTER_STAT(TYPEHIT_TIME, float)
120 REGISTER_STAT(LAYED_MINES, int)
121 REGISTER_STAT(HAGAR_LOAD, int)
122 REGISTER_STAT(SWITCHINGWEAPON, int)
123 REGISTER_STAT(SUPERWEAPONS_FINISHED, float)
124 REGISTER_STAT(VEHICLESTAT_HEALTH, int)
125 REGISTER_STAT(VEHICLESTAT_SHIELD, int)
126 REGISTER_STAT(VEHICLESTAT_ENERGY, int)
127 REGISTER_STAT(VEHICLESTAT_AMMO1, int)
128 REGISTER_STAT(VEHICLESTAT_RELOAD1, int)
129 REGISTER_STAT(VEHICLESTAT_AMMO2, int)
130 REGISTER_STAT(VEHICLESTAT_RELOAD2, int)
131 REGISTER_STAT(VEHICLESTAT_W2MODE, int)
132 REGISTER_STAT(NADE_TIMER, float)
133
134 enum {
135     STAT_FIRST_MAIN = (STAT_LAST_VECTOR - 1) + REGISTERED_STATS,
136
137     STAT_SECRETS_TOTAL,
138     STAT_SECRETS_FOUND,
139     STAT_RESPAWN_TIME,
140     STAT_ROUNDSTARTTIME,
141     STAT_MONSTERS_TOTAL,
142     STAT_MONSTERS_KILLED,
143     STAT_BUFFS,
144     STAT_NADE_BONUS,
145     STAT_NADE_BONUS_TYPE,
146     STAT_NADE_BONUS_SCORE,
147     STAT_HEALING_ORB,
148     STAT_HEALING_ORB_ALPHA,
149     STAT_PLASMA,
150     STAT_OK_AMMO_CHARGE,
151     STAT_OK_AMMO_CHARGEPOOL,
152     STAT_FROZEN,
153     STAT_REVIVE_PROGRESS,
154     STAT_ROUNDLOST,
155     STAT_BUFF_TIME,
156     STAT_CTF_FLAGSTATUS,
157     STAT_MULTIJUMP_DODGING,
158     STAT_MULTIJUMP_MAXSPEED,
159     STAT_GAMEPLAYFIX_UPVELOCITYCLEARSONGROUND,
160     STAT_BUGRIGS_REVERSE_STOPPING,
161     STAT_BUGRIGS_REVERSE_SPINNING,
162     STAT_BUGRIGS_CAR_JUMPING,
163     STAT_BUGRIGS_FRICTION_AIR,
164     STAT_BUGRIGS_STEER,
165     STAT_BUGRIGS_SPEED_POW,
166     STAT_BUGRIGS_SPEED_REF,
167     STAT_BUGRIGS_ACCEL,
168     STAT_BUGRIGS_FRICTION_BRAKE,
169     STAT_BUGRIGS_AIR_STEERING,
170     STAT_BUGRIGS_FRICTION_FLOOR,
171     STAT_BUGRIGS_REVERSE_SPEEDING,
172     STAT_BUGRIGS_PLANAR_MOVEMENT,
173     STAT_BUGRIGS_ANGLE_SMOOTHING,
174     STAT_BUGRIGS,
175     STAT_GAMEPLAYFIX_STEPDOWN,
176     STAT_MOVEVARS_JUMPSTEP,
177     STAT_NOSTEP,
178     STAT_GAMEPLAYFIX_UNSTICKPLAYERS,
179     STAT_GAMEPLAYFIX_STEPMULTIPLETIMES,
180     STAT_GAMEPLAYFIX_DOWNTRACEONGROUND,
181     STAT_GAMEPLAYFIX_EASIERWATERJUMP,
182     STAT_MOVEVARS_FRICTION_SLICK,
183     STAT_MOVEVARS_FRICTION_ONLAND,
184     STAT_MOVEVARS_JUMPSPEEDCAP_DISABLE_ONRAMPS,
185     STAT_MOVEVARS_TRACK_CANJUMP,
186     STAT_DOUBLEJUMP,
187     STAT_MOVEVARS_CL_TRACK_CANJUMP,
188     STAT_MULTIJUMP_ADD,
189     STAT_MULTIJUMP_SPEED,
190     STAT_MULTIJUMP,
191     STAT_DODGING_TIMEOUT,
192     STAT_DODGING_WALL,
193     STAT_DODGING_UP_SPEED,
194     STAT_DODGING_RAMP_TIME,
195     STAT_DODGING_HEIGHT_THRESHOLD,
196     STAT_DODGING_DISTANCE_THRESHOLD,
197     STAT_DODGING_HORIZ_SPEED,
198     STAT_DODGING_DELAY,
199     STAT_DODGING_FROZEN_NO_DOUBLETAP,
200     STAT_DODGING_HORIZ_SPEED_FROZEN,
201     STAT_DODGING,
202     STAT_DODGING_FROZEN,
203     STAT_JETPACK_MAXSPEED_UP,
204     STAT_JETPACK_MAXSPEED_SIDE,
205     STAT_JETPACK_FUEL,
206     STAT_JETPACK_ANTIGRAVITY,
207     STAT_JETPACK_ACCEL_SIDE,
208     STAT_JETPACK_ACCEL_UP,
209     STAT_MOVEVARS_HIGHSPEED,
210
211     STAT_LAST_MAIN
212 };
213
214 const int STAT_LAST = STAT_LAST_MAIN + 5;
215
216 /* The following stats change depending on the gamemode, so can share the same ID */
217
218 // freeze tag, clan arena, jailbreak
219 enum {
220     STAT_REDALIVE = STAT_LAST_MAIN,
221     STAT_BLUEALIVE,
222     STAT_YELLOWALIVE,
223     STAT_PINKALIVE,
224 };
225
226 // domination
227 enum {
228     STAT_DOM_TOTAL_PPS = STAT_LAST_MAIN,
229     STAT_DOM_PPS_RED,
230     STAT_DOM_PPS_BLUE,
231     STAT_DOM_PPS_YELLOW,
232     STAT_DOM_PPS_PINK,
233 };
234
235 // vip
236 enum {
237     STAT_VIP = STAT_LAST_MAIN,
238     STAT_VIP_RED,
239     STAT_VIP_BLUE,
240     STAT_VIP_YELLOW,
241     STAT_VIP_PINK,
242 };
243
244 // key hunt
245 enum {
246     STAT_KH_REDKEY_TEAM = STAT_LAST_MAIN,
247     STAT_KH_BLUEKEY_TEAM,
248     STAT_KH_YELLOWKEY_TEAM,
249     STAT_KH_PINKKEY_TEAM,
250 };
251
252 #define ASSERT_LESS(name, var, const) noref int name[(const - var + 1)];
253 ASSERT_LESS(stat_limit, STAT_LAST, 220)
254
255 const int STAT_MOVEVARS_AIRACCEL_QW_STRETCHFACTOR     = 220;
256 const int STAT_MOVEVARS_AIRCONTROL_PENALTY            = 221;
257 const int STAT_MOVEVARS_AIRSPEEDLIMIT_NONQW           = 222;
258 const int STAT_MOVEVARS_AIRSTRAFEACCEL_QW             = 223;
259 const int STAT_MOVEVARS_AIRCONTROL_POWER              = 224;
260 const int STAT_MOVEFLAGS                              = 225;
261 const int STAT_MOVEVARS_WARSOWBUNNY_AIRFORWARDACCEL   = 226;
262 const int STAT_MOVEVARS_WARSOWBUNNY_ACCEL             = 227;
263 const int STAT_MOVEVARS_WARSOWBUNNY_TOPSPEED          = 228;
264 const int STAT_MOVEVARS_WARSOWBUNNY_TURNACCEL         = 229;
265 const int STAT_MOVEVARS_WARSOWBUNNY_BACKTOSIDERATIO   = 230;
266 const int STAT_MOVEVARS_AIRSTOPACCELERATE             = 231;
267 const int STAT_MOVEVARS_AIRSTRAFEACCELERATE           = 232;
268 const int STAT_MOVEVARS_MAXAIRSTRAFESPEED             = 233;
269 const int STAT_MOVEVARS_AIRCONTROL                    = 234;
270 // -Wdouble-declaration
271 // const int STAT_FRAGLIMIT                              = 235;
272 // -Wdouble-declaration
273 // const int STAT_TIMELIMIT                              = 236;
274 const int STAT_MOVEVARS_WALLFRICTION                  = 237;
275 const int STAT_MOVEVARS_FRICTION                      = 238;
276 const int STAT_MOVEVARS_WATERFRICTION                 = 239;
277 // -Wdouble-declaration
278 // const int STAT_MOVEVARS_TICRATE                       = 240;
279 // -Wdouble-declaration
280 // const int STAT_MOVEVARS_TIMESCALE                     = 241;
281 // -Wdouble-declaration
282 // const int STAT_MOVEVARS_GRAVITY                       = 242;
283 const int STAT_MOVEVARS_STOPSPEED                     = 243;
284 const int STAT_MOVEVARS_MAXSPEED                      = 244;
285 const int STAT_MOVEVARS_SPECTATORMAXSPEED             = 245;
286 const int STAT_MOVEVARS_ACCELERATE                    = 246;
287 const int STAT_MOVEVARS_AIRACCELERATE                 = 247;
288 const int STAT_MOVEVARS_WATERACCELERATE               = 248;
289 const int STAT_MOVEVARS_ENTGRAVITY                    = 249;
290 const int STAT_MOVEVARS_JUMPVELOCITY                  = 250;
291 const int STAT_MOVEVARS_EDGEFRICTION                  = 251;
292 const int STAT_MOVEVARS_MAXAIRSPEED                   = 252;
293 const int STAT_MOVEVARS_STEPHEIGHT                    = 253;
294 const int STAT_MOVEVARS_AIRACCEL_QW                   = 254;
295 const int STAT_MOVEVARS_AIRACCEL_SIDEWAYS_FRICTION    = 255;
296 #endif