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