X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fstats.qh;h=7649954b325e6c40b85eefd3691bb12859840060;hb=c3f4bfe02b1f024b183210717a4da3f84ddc0079;hp=c8822926f2bd7892df35470dd543836e635ec83d;hpb=c8fd00088a08034de5a36427187ec269308dfbb4;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/stats.qh b/qcsrc/common/stats.qh index c8822926f..9b8f04041 100644 --- a/qcsrc/common/stats.qh +++ b/qcsrc/common/stats.qh @@ -1,7 +1,8 @@ #pragma once #ifdef SVQC -#include +#include +#include #endif // Full list of all stat constants, included in a single location for easy reference @@ -41,56 +42,51 @@ const int MAX_CL_STATS = 256; #define stat_VIEWHEIGHT view_ofs_z #endif +#ifdef SVQC +vector weaponsInMap; +#endif REGISTER_STAT(WEAPONS, vectori) -REGISTER_STAT(WEAPONSINMAP, vectori) +REGISTER_STAT(WEAPONSINMAP, vectori, weaponsInMap) -REGISTER_STAT(PL_VIEW_OFS, vector, autocvar_sv_player_viewoffset) -REGISTER_STAT(PL_CROUCH_VIEW_OFS, vector, autocvar_sv_player_crouch_viewoffset) +REGISTER_STAT(PL_VIEW_OFS, vector) +REGISTER_STAT(PL_CROUCH_VIEW_OFS, vector) -REGISTER_STAT(PL_MIN, vector, autocvar_sv_player_mins) -REGISTER_STAT(PL_CROUCH_MIN, vector, autocvar_sv_player_crouch_mins) +REGISTER_STAT(PL_MIN, vector) +REGISTER_STAT(PL_CROUCH_MIN, vector) -REGISTER_STAT(PL_MAX, vector, autocvar_sv_player_maxs) -REGISTER_STAT(PL_CROUCH_MAX, vector, autocvar_sv_player_crouch_maxs) +REGISTER_STAT(PL_MAX, vector) +REGISTER_STAT(PL_CROUCH_MAX, vector) REGISTER_STAT(KH_KEYS, int) -/** weapon requested to switch to; next WANTED weapon (for HUD) */ -REGISTER_STAT(SWITCHWEAPON, int) -/** weapon currently being switched to (is copied from switchweapon once switch is possible) */ -REGISTER_STAT(SWITCHINGWEAPON, int) -REGISTER_STAT(WEAPON_NEXTTHINK, float) #ifdef SVQC -SPECTATE_COPYFIELD(_STAT(WEAPON_NEXTTHINK)) float W_WeaponRateFactor(entity this); +float game_stopped; +float game_starttime; +float round_starttime; +bool autocvar_g_allow_oldvortexbeam; +int autocvar_leadlimit; #endif REGISTER_STAT(WEAPONRATEFACTOR, float, W_WeaponRateFactor(this)) - -REGISTER_STAT(GAMESTARTTIME, float) +REGISTER_STAT(GAME_STOPPED, int, game_stopped) +REGISTER_STAT(GAMESTARTTIME, float, game_starttime) REGISTER_STAT(STRENGTH_FINISHED, float) REGISTER_STAT(INVINCIBLE_FINISHED, float) /** arc heat in [0,1] */ -REGISTER_STAT(ARC_HEAT, float) REGISTER_STAT(PRESSED_KEYS, int) /** this stat could later contain some other bits of info, like, more server-side particle config */ -REGISTER_STAT(ALLOW_OLDVORTEXBEAM, bool) +REGISTER_STAT(ALLOW_OLDVORTEXBEAM, bool, autocvar_g_allow_oldvortexbeam) REGISTER_STAT(FUEL, int) REGISTER_STAT(NB_METERSTART, float) /** compressShotOrigin */ REGISTER_STAT(SHOTORG, int) -REGISTER_STAT(LEADLIMIT, float) -REGISTER_STAT(WEAPON_CLIPLOAD, int) -REGISTER_STAT(WEAPON_CLIPSIZE, int) +REGISTER_STAT(LEADLIMIT, float, autocvar_leadlimit) -REGISTER_STAT(VORTEX_CHARGE, float) REGISTER_STAT(LAST_PICKUP, float) REGISTER_STAT(HUD, int) -REGISTER_STAT(VORTEX_CHARGEPOOL, float) REGISTER_STAT(HIT_TIME, float) REGISTER_STAT(DAMAGE_DEALT_TOTAL, int) REGISTER_STAT(TYPEHIT_TIME, float) -REGISTER_STAT(LAYED_MINES, int) -REGISTER_STAT(HAGAR_LOAD, int) REGISTER_STAT(SUPERWEAPONS_FINISHED, float) REGISTER_STAT(VEHICLESTAT_HEALTH, int) REGISTER_STAT(VEHICLESTAT_SHIELD, int) @@ -104,7 +100,7 @@ REGISTER_STAT(NADE_TIMER, float) REGISTER_STAT(SECRETS_TOTAL, float) REGISTER_STAT(SECRETS_FOUND, float) REGISTER_STAT(RESPAWN_TIME, float) -REGISTER_STAT(ROUNDSTARTTIME, float) +REGISTER_STAT(ROUNDSTARTTIME, float, round_starttime) REGISTER_STAT(MONSTERS_TOTAL, int) REGISTER_STAT(MONSTERS_KILLED, int) REGISTER_STAT(BUFFS, int) @@ -114,8 +110,6 @@ REGISTER_STAT(NADE_BONUS_SCORE, float) REGISTER_STAT(HEALING_ORB, float) REGISTER_STAT(HEALING_ORB_ALPHA, float) REGISTER_STAT(PLASMA, int) -REGISTER_STAT(OK_AMMO_CHARGE, float) -REGISTER_STAT(OK_AMMO_CHARGEPOOL, float) REGISTER_STAT(FROZEN, int) REGISTER_STAT(REVIVE_PROGRESS, float) REGISTER_STAT(ROUNDLOST, int) @@ -125,6 +119,19 @@ REGISTER_STAT(CAPTURE_PROGRESS, float) REGISTER_STAT(ENTRAP_ORB, float) REGISTER_STAT(ENTRAP_ORB_ALPHA, float) REGISTER_STAT(ITEMSTIME, int, autocvar_sv_itemstime) +REGISTER_STAT(KILL_TIME, float) +REGISTER_STAT(VEIL_ORB, float) +REGISTER_STAT(VEIL_ORB_ALPHA, float) + +#ifdef SVQC +float autocvar_sv_showfps = 5; +#endif +REGISTER_STAT(SHOWFPS, float, autocvar_sv_showfps) + +#ifdef SVQC +bool autocvar_g_ctf_leaderboard; +#endif +REGISTER_STAT(CTF_SHOWLEADERBOARD, bool, autocvar_g_ctf_leaderboard) #ifdef SVQC int autocvar_g_multijump; @@ -210,28 +217,40 @@ float autocvar_sv_dodging_wall_distance_threshold; bool autocvar_sv_dodging_frozen; bool autocvar_sv_dodging_frozen_doubletap; float autocvar_sv_dodging_height_threshold; -float autocvar_sv_dodging_horiz_speed; -float autocvar_sv_dodging_horiz_speed_frozen; +float autocvar_sv_dodging_horiz_speed_min; +float autocvar_sv_dodging_horiz_speed_max; +float autocvar_sv_dodging_horiz_force_slowest; +float autocvar_sv_dodging_horiz_force_fastest; +float autocvar_sv_dodging_horiz_force_frozen; float autocvar_sv_dodging_ramp_time; float autocvar_sv_dodging_up_speed; bool autocvar_sv_dodging_wall_dodging; bool autocvar_sv_dodging_air_dodging; +float autocvar_sv_dodging_maxspeed; +float autocvar_sv_dodging_air_maxspeed; #endif +#if 0 REGISTER_STAT(DODGING, int, g_dodging) REGISTER_STAT(DODGING_DELAY, float, autocvar_sv_dodging_delay) REGISTER_STAT(DODGING_DISTANCE_THRESHOLD, float, autocvar_sv_dodging_wall_distance_threshold) -REGISTER_STAT(DODGING_FROZEN, int, autocvar_sv_dodging_frozen) -REGISTER_STAT(DODGING_FROZEN_NO_DOUBLETAP, int, autocvar_sv_dodging_frozen_doubletap) +REGISTER_STAT(DODGING_FROZEN_DOUBLETAP, int, autocvar_sv_dodging_frozen_doubletap) REGISTER_STAT(DODGING_HEIGHT_THRESHOLD, float, autocvar_sv_dodging_height_threshold) -REGISTER_STAT(DODGING_HORIZ_SPEED, float, autocvar_sv_dodging_horiz_speed) -REGISTER_STAT(DODGING_HORIZ_SPEED_FROZEN, float, autocvar_sv_dodging_horiz_speed_frozen) +REGISTER_STAT(DODGING_HORIZ_SPEED_MIN, float, autocvar_sv_dodging_horiz_speed_min) +REGISTER_STAT(DODGING_HORIZ_SPEED_MAX, float, autocvar_sv_dodging_horiz_speed_max) +REGISTER_STAT(DODGING_HORIZ_FORCE_SLOWEST, float, autocvar_sv_dodging_horiz_force_slowest) +REGISTER_STAT(DODGING_HORIZ_FORCE_FASTEST, float, autocvar_sv_dodging_horiz_force_fastest) +REGISTER_STAT(DODGING_HORIZ_FORCE_FROZEN, float, autocvar_sv_dodging_horiz_force_frozen) REGISTER_STAT(DODGING_RAMP_TIME, float, autocvar_sv_dodging_ramp_time) -/** cvar loopback */ -REGISTER_STAT(DODGING_TIMEOUT, float) REGISTER_STAT(DODGING_UP_SPEED, float, autocvar_sv_dodging_up_speed) REGISTER_STAT(DODGING_WALL, bool, autocvar_sv_dodging_wall_dodging) REGISTER_STAT(DODGING_AIR, bool, autocvar_sv_dodging_air_dodging) +REGISTER_STAT(DODGING_MAXSPEED, float, autocvar_sv_dodging_maxspeed) +REGISTER_STAT(DODGING_AIR_MAXSPEED, float, autocvar_sv_dodging_air_maxspeed) +#endif +/** cvar loopback */ +REGISTER_STAT(DODGING_FROZEN, int, autocvar_sv_dodging_frozen) +REGISTER_STAT(DODGING_TIMEOUT, float) REGISTER_STAT(JETPACK_ACCEL_SIDE, float, autocvar_g_jetpack_acceleration_side) REGISTER_STAT(JETPACK_ACCEL_UP, float, autocvar_g_jetpack_acceleration_up) @@ -241,7 +260,21 @@ REGISTER_STAT(JETPACK_MAXSPEED_SIDE, float, autocvar_g_jetpack_maxspeed_side) REGISTER_STAT(JETPACK_MAXSPEED_UP, float, autocvar_g_jetpack_maxspeed_up) REGISTER_STAT(JETPACK_REVERSE_THRUST, float, autocvar_g_jetpack_reverse_thrust) -REGISTER_STAT(MOVEVARS_HIGHSPEED, float, autocvar_g_movement_highspeed) +REGISTER_STAT(MOVEVARS_HIGHSPEED, float) + +#ifdef SVQC +AUTOCVAR(g_walljump, bool, false, "Enable wall jumping mutator"); +AUTOCVAR(g_walljump_delay, float, 1, "Minimum delay between wall jumps"); +AUTOCVAR(g_walljump_force, float, 300, "How far to bounce/jump off the wall"); +AUTOCVAR(g_walljump_velocity_xy_factor, float, 1.15, "How much to slow down along horizontal axis, higher value = higher deceleration, if factor is < 1, you accelerate by wall jumping"); +AUTOCVAR(g_walljump_velocity_z_factor, float, 0.5, "Upwards velocity factor, multiplied by normal jump velocity"); +#endif +REGISTER_STAT(WALLJUMP, int, autocvar_g_walljump) +REGISTER_STAT(WALLJUMP_VELOCITY_Z_FACTOR, float, autocvar_g_walljump_velocity_z_factor) +REGISTER_STAT(WALLJUMP_VELOCITY_XY_FACTOR, float, autocvar_g_walljump_velocity_xy_factor) +REGISTER_STAT(WALLJUMP_DELAY, float, autocvar_g_walljump_delay) +REGISTER_STAT(WALLJUMP_FORCE, float, autocvar_g_walljump_force) +REGISTER_STAT(LASTWJ, float) // freeze tag, clan arena REGISTER_STAT(REDALIVE, int) @@ -263,15 +296,30 @@ REGISTER_STAT(CAMERA_SPECTATOR, int) REGISTER_STAT(SPECTATORSPEED, float) +#ifdef SVQC +bool autocvar_sv_slick_applygravity; +#endif +REGISTER_STAT(SLICK_APPLYGRAVITY, bool, autocvar_sv_slick_applygravity) + #ifdef SVQC #include "physics/movetypes/movetypes.qh" +float warmup_limit; +#endif + +#ifdef SVQC +bool autocvar_g_shootfromcenter; +bool autocvar_g_shootfromeye; #endif +REGISTER_STAT(SHOOTFROMEYE, bool, autocvar_g_shootfromeye) +REGISTER_STAT(SHOOTFROMCENTER, bool, autocvar_g_shootfromcenter) REGISTER_STAT(MOVEVARS_AIRACCEL_QW_STRETCHFACTOR, float) REGISTER_STAT(MOVEVARS_AIRCONTROL_PENALTY, float) REGISTER_STAT(MOVEVARS_AIRSPEEDLIMIT_NONQW, float) REGISTER_STAT(MOVEVARS_AIRSTRAFEACCEL_QW, float) REGISTER_STAT(MOVEVARS_AIRCONTROL_POWER, float) +REGISTER_STAT(MOVEVARS_AIRCONTROL_BACKWARDS, bool) +REGISTER_STAT(MOVEVARS_AIRCONTROL_SIDEWARDS, bool) noref bool autocvar_sv_gameplayfix_nogravityonground; REGISTER_STAT(MOVEFLAGS, int, MOVEFLAG_VALID | (autocvar_sv_gameplayfix_q2airaccelerate ? MOVEFLAG_Q2AIRACCELERATE : 0) @@ -306,10 +354,12 @@ REGISTER_STAT(MOVEVARS_AIRACCELERATE, float) // FIXME: Was 0 on server, 1 on client. Still want that? REGISTER_STAT(MOVEVARS_ENTGRAVITY, float, (this.gravity) ? this.gravity : 1) REGISTER_STAT(MOVEVARS_JUMPVELOCITY, float) +REGISTER_STAT(MOVEVARS_JUMPVELOCITY_CROUCH, float) REGISTER_STAT(MOVEVARS_MAXAIRSPEED, float) REGISTER_STAT(MOVEVARS_STEPHEIGHT, float, autocvar_sv_stepheight) REGISTER_STAT(MOVEVARS_AIRACCEL_QW, float) REGISTER_STAT(MOVEVARS_AIRACCEL_SIDEWAYS_FRICTION, float) +REGISTER_STAT(MOVEVARS_SPECIALCOMMAND, bool) #ifdef CSQC @@ -319,7 +369,7 @@ noref int autocvar_cl_gunalign; .int cvar_cl_gunalign; REPLICATE(cvar_cl_gunalign, int, "cl_gunalign"); #endif -REGISTER_STAT(GUNALIGN, int, this.cvar_cl_gunalign) +REGISTER_STAT(GUNALIGN, int) #ifdef SVQC SPECTATE_COPYFIELD(_STAT(GUNALIGN)) #endif