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