]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/constants.qh
Merge branch 'master' into terencehill/itemstime
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / constants.qh
index e5b121ca3e1a7b5f32bcd6b74d8baf2fac381513..1dbafdddf5b53270001f290c23f3de49d7b43718 100644 (file)
 // Revision 22: hook shot origin
 #define CSQC_REVISION 22
 
-// probably put these in common/
-// so server/ and client/ can be synced better
-const float GAME_DEATHMATCH            = 1;
-const float GAME_TEAM_DEATHMATCH       = 2;
-const float GAME_DOMINATION            = 3;
-const float GAME_CTF                   = 4;
-const float GAME_RUNEMATCH             = 5;
-const float GAME_LMS                   = 6;
-const float GAME_ARENA         = 7;
-const float GAME_KEYHUNT               = 8;
-const float GAME_ASSAULT               = 9;
-const float GAME_ONSLAUGHT     = 10;
-const float GAME_RACE  = 11;
-const float GAME_NEXBALL = 12;
-const float GAME_CTS = 13;
-const float GAME_CA            = 14;
-const float GAME_FREEZETAG             = 15;
-const float GAME_KEEPAWAY              = 16;
-
 const float AS_STRING          = 1;
 const float AS_INT             = 2;
 const float AS_FLOAT_TRUNCATED = 2;
@@ -55,12 +36,12 @@ const float TE_CSQC_NEXGUNBEAMPARTICLE = 104;
 const float TE_CSQC_LIGHTNINGARC = 105;
 const float TE_CSQC_TEAMNAGGER = 106;
 const float TE_CSQC_PINGPLREPORT = 107;
-const float TE_CSQC_VOTE = 108;
-const float TE_CSQC_VOTERESET = 109;
 const float TE_CSQC_ANNOUNCE = 110;
 const float TE_CSQC_TARGET_MUSIC = 111;
-const float TE_CSQC_NOTIFY = 112;
-const float TE_CSQC_WEAPONCOMPLAIN = 113;
+const float TE_CSQC_KILLNOTIFY = 112;
+const float TE_CSQC_KILLCENTERPRINT = 113;
+const float TE_CSQC_CENTERPRINT_GENERIC = 114;
+const float TE_CSQC_WEAPONCOMPLAIN = 115;
 const float TE_CSQC_NEX_SCOPE = 116;
 const float TE_CSQC_MINELAYER_MAXMINES = 117;
 const float TE_CSQC_HAGAR_MAXROCKETS = 118;
@@ -81,9 +62,6 @@ const float RACE_NET_SERVER_RANKINGS = 11;
 const float RACE_NET_SERVER_STATUS = 12;
 const float RANKINGS_CNT = 15;
 
-const float CSQC_KILLNOTIFY = 0;
-const float CSQC_CENTERPRINT = 1;
-
 const float ENT_CLIENT = 0;
 const float ENT_CLIENT_DEAD = 1;
 const float ENT_CLIENT_ENTCS = 2;
@@ -117,6 +95,7 @@ const float ENT_CLIENT_GAUNTLET = 29;
 const float ENT_CLIENT_ACCURACY = 30;
 const float ENT_CLIENT_SHOWNAMES = 31;
 const float ENT_CLIENT_WARPZONE_TELEPORTED = 32;
+const float ENT_CLIENT_MODEL = 33;
 
 const float ENT_CLIENT_TURRET = 40;
 const float ENT_CLIENT_AUXILIARYXHAIR = 50;
@@ -124,7 +103,9 @@ const float ENT_CLIENT_VEHICLE = 60;
 
 const float SPRITERULE_DEFAULT = 0;
 const float SPRITERULE_TEAMPLAY = 1;
+const float SPRITERULE_SPECTATOR = 2;
 
+const float RADARICON_NONE = 0;
 const float RADARICON_FLAG = 1;
 const float RADARICON_FLAGCARRIER = 1;
 const float RADARICON_HERE = 1; // TODO make these 3 and 4, and make images for them
@@ -136,151 +117,7 @@ const float RADARICON_GENERATOR = 1;
 const float RADARICON_OBJECTIVE = 1;
 const float RADARICON_DOMPOINT = 1;
 const float RADARICON_POWERUP = 1;
-
-///////////////////////////
-// key constants
-
-//
-// these are the key numbers that should be passed to Key_Event
-//
-const float K_TAB                      =       9;
-const float K_ENTER            =       13;
-const float K_ESCAPE           =       27;
-const float K_SPACE            =       32;
-
-// normal keys should be passed as lowercased ascii
-
-const float K_BACKSPACE        =       127;
-const float K_UPARROW          =       128;
-const float K_DOWNARROW        =       129;
-const float K_LEFTARROW        =       130;
-const float K_RIGHTARROW       =       131;
-
-const float K_ALT              =       132;
-const float K_CTRL     =       133;
-const float K_SHIFT    =       134;
-
-const float K_F1               =       135;
-const float K_F2               =       136;
-const float K_F3               =       137;
-const float K_F4               =       138;
-const float K_F5               =       139;
-const float K_F6               =       140;
-const float K_F7               =       141;
-const float K_F8               =       142;
-const float K_F9               =       143;
-const float K_F10              =       144;
-const float K_F11              =       145;
-const float K_F12              =       146;
-
-const float K_INS              =       147;
-const float K_DEL              =       148;
-const float K_PGDN     =       149;
-const float K_PGUP     =       150;
-const float K_HOME     =       151;
-const float K_END              =       152;
-
-const float K_NUMLOCK          =       154;
-const float K_CAPSLOCK         =       155;
-const float K_SCROLLOCK                =       156;
-
-const float K_KP_0                     =       157;
-const float K_KP_INS           =       K_KP_0;
-const float K_KP_1                     =       158;
-const float K_KP_END           =       K_KP_1;
-const float K_KP_2                     =       159;
-const float K_KP_DOWNARROW     =       K_KP_2;
-const float K_KP_3                     =       160;
-const float K_KP_PGDN          =       K_KP_3;
-const float K_KP_4                     =       161;
-const float K_KP_LEFTARROW     =       K_KP_4;
-const float K_KP_5                     =       162;
-const float K_KP_6                     =       163;
-const float K_KP_RIGHTARROW    =       K_KP_6;
-const float K_KP_7                     =       164;
-const float K_KP_HOME          =       K_KP_7;
-const float K_KP_8                     =       165;
-const float K_KP_UPARROW       =       K_KP_8;
-const float K_KP_9                     =       166;
-const float K_KP_PGUP          =       K_KP_9;
-const float K_KP_PERIOD                =       167;
-const float K_KP_DEL           =       K_KP_PERIOD;
-const float K_KP_DIVIDE                =       168;
-const float K_KP_SLASH         =       K_KP_DIVIDE;
-const float K_KP_MULTIPLY      =       169;
-const float K_KP_MINUS         =       170;
-const float K_KP_PLUS          =       171;
-const float K_KP_ENTER         =       172;
-const float K_KP_EQUALS                =       173;
-
-const float K_PAUSE            =       255;
-
-//
-// joystick buttons
-//
-const float K_JOY1             =       768;
-const float K_JOY2             =       769;
-const float K_JOY3             =       770;
-const float K_JOY4             =       771;
-
-//
-// aux keys are for multi-buttoned joysticks to generate so they can use
-// the normal binding process
-//
-const float K_AUX1             =       772;
-const float K_AUX2             =       773;
-const float K_AUX3             =       774;
-const float K_AUX4             =       775;
-const float K_AUX5             =       776;
-const float K_AUX6             =       777;
-const float K_AUX7             =       778;
-const float K_AUX8             =       779;
-const float K_AUX9             =       780;
-const float K_AUX10            =       781;
-const float K_AUX11            =       782;
-const float K_AUX12            =       783;
-const float K_AUX13            =       784;
-const float K_AUX14            =       785;
-const float K_AUX15            =       786;
-const float K_AUX16            =       787;
-const float K_AUX17            =       788;
-const float K_AUX18            =       789;
-const float K_AUX19            =       790;
-const float K_AUX20            =       791;
-const float K_AUX21            =       792;
-const float K_AUX22            =       793;
-const float K_AUX23            =       794;
-const float K_AUX24            =       795;
-const float K_AUX25            =       796;
-const float K_AUX26            =       797;
-const float K_AUX27            =       798;
-const float K_AUX28            =       799;
-const float K_AUX29            =       800;
-const float K_AUX30            =       801;
-const float K_AUX31            =       802;
-const float K_AUX32            =       803;
-
-//
-// mouse buttons generate virtual keys
-//
-const float K_MOUSE1           =       512;
-const float K_MOUSE2           =       513;
-const float K_MOUSE3           =       514;
-const float K_MWHEELUP =       515;
-const float K_MWHEELDOWN       =       516;
-const float K_MOUSE4           =       517;
-const float K_MOUSE5           =       518;
-const float K_MOUSE6           =       519;
-const float K_MOUSE7           =       520;
-const float K_MOUSE8           =       521;
-const float K_MOUSE9           =       522;
-const float K_MOUSE10          =       523;
-const float K_MOUSE11          =       524;
-const float K_MOUSE12          =       525;
-const float K_MOUSE13          =       526;
-const float K_MOUSE14          =       527;
-const float K_MOUSE15          =       528;
-const float K_MOUSE16          =       529;
+const float RADARICON_TAGGED = 1;
 
 ///////////////////////////
 // keys pressed
@@ -324,6 +161,7 @@ const float STAT_HIT_TIME = 54;
 const float STAT_TYPEHIT_TIME = 55;
 const float STAT_LAYED_MINES = 56;
 const float STAT_HAGAR_LOAD = 57;
+const float STAT_SWITCHINGWEAPON = 58;
 
 // see DP source, quakedef.h
 const float STAT_MOVEVARS_AIRSPEEDLIMIT_NONQW = 222;
@@ -355,6 +193,19 @@ const float STAT_VEHICLESTAT_RELOAD1 = 64;
 const float STAT_VEHICLESTAT_AMMO2   = 65;
 const float STAT_VEHICLESTAT_RELOAD2 = 66;
 
+const float STAT_SECRETS_TOTAL = 70;
+const float STAT_SECRETS_FOUND = 71;
+
+const float STAT_ARMOR_LARGE_TIME = 80;
+const float STAT_HEALTH_MEGA_TIME = 81;
+const float STAT_INVISIBLE_TIME = 82;
+const float STAT_SPEED_TIME = 83;
+const float STAT_EXTRALIFE_TIME = 84;
+const float STAT_STRENGTH_TIME = 85;
+const float STAT_SHIELD_TIME = 86;
+const float STAT_FUELREGEN_TIME = 87;
+const float STAT_JETPACK_TIME = 88;
+
 // mod stats (1xx)
 const float STAT_REDALIVE = 100;
 const float STAT_BLUEALIVE = 101;
@@ -427,51 +278,44 @@ const float STAT_DOM_PPS_YELLOW = 104;
 #define SP_SCORE 3
 // game mode specific indices are not in common/, but in server/scores_rules.qc!
 
-// this assignment must match menu/xonotic/dialog_settings_misc.c!
-float  CHAN_AUTO                               = 0;
-       // on world: announcers, ...                     INFO
-       // on players: item pickup                       ITEMS
-       // on entities: UNUSED
-       // on csqc: announcers                           INFO
-float  CHAN_WEAPON                             = 1; // Weapon fire
-       // on world: UNUSED
-       // on players: weapon firing                     WEAPONS
-       // on entities: turret firing                    WEAPONS
-       // on csqc: UNUSED
-float  CHAN_VOICE                              = 2; // Voice/Radio
-       // on world: UNUSED
-       // on players: voice                             VOICE
-       // on entities: ambient                          AMBIENT
-       // on csqc: background music                     BGM
-float  CHAN_TRIGGER                    = 3; // Triggers/Items
-       // on world: UNUSED
-       // on players: item pickup                       ITEMS
-       // on entities: platforms moving etc.            ITEMS
-       // on csqc: platforms moving etc.                ITEMS
-float  CHAN_PROJECTILE                 = 4; // Projectiles
-       // on world: UNUSED
-       // on players: projectiles hitting player        SHOTS
-       // on entities: projectiles                      SHOTS
-       // on csqc: projectile sounds                    SHOTS
-float  CHAN_WEAPON2                    = 5; // Nex fire (separated as it is a very long sound)
-       // on world: UNUSED
-       // on players: weapon firing                     WEAPONS
-       // on entities: turret firing                    WEAPONS
-       // on csqc: UNUSED
-float  CHAN_PAIN                               = 6; // Pain
-       // on world: UNUSED
-       // on players: pain                              PAIN
-       // on entities: projectiles flying               SHOTS
-       // on csqc: player pain                          PAIN
-float  CHAN_PLAYER                             = 7; // Player body
-       // on world: UNUSED
-       // on players: player sounds                     PLAYER
-       // on entities: player sounds                    PLAYER
-       // on csqc: UNUSED
+#ifdef COMPAT_XON010_CHANNELS
+float CH_INFO = 0; // only on world and csqc
+float CH_TRIGGER = 0; // only on players; compat: FALSELY CONTROLLED BY "Info"
+float CH_WEAPON_A = 1; // only on players and entities
+float CH_WEAPON_SINGLE = 5; // only on players and entities
+float CH_VOICE = 2; // only on players
+float CH_BGM_SINGLE = 2; // only on csqc; compat: FALSELY CONTROLLED BY "Voice"
+float CH_AMBIENT = 2; // only on csqc; compat: FALSELY CONTROLLED BY "Voice"
+float CH_TRIGGER_SINGLE = 3; // only on players, entities, csqc
+float CH_SHOTS = 4; // only on players, entities, csqc
+float CH_SHOTS_SINGLE = 4; // only on players, entities, csqc
+float CH_WEAPON_B = 5; // only on players and entities
+float CH_PAIN = 6; // only on players and csqc
+float CH_PAIN_SINGLE = 6; // only on players and csqc
+float CH_PLAYER = 7; // only on players and entities
+float CH_TUBA = 5; // only on csqc
+#else
+float CH_INFO = 0;
+float CH_TRIGGER = -3;
+float CH_WEAPON_A = -1;
+float CH_WEAPON_SINGLE = 1;
+float CH_VOICE = -2;
+float CH_BGM_SINGLE = 8;
+float CH_AMBIENT = -9;
+float CH_TRIGGER_SINGLE = 3;
+float CH_SHOTS = -4;
+float CH_SHOTS_SINGLE = 4;
+float CH_WEAPON_B = -1;
+float CH_PAIN = -6;
+float CH_PAIN_SINGLE = 6;
+float CH_PLAYER = -7;
+float CH_TUBA = 5;
+#endif
 
 float  ATTN_NONE                               = 0;
 float  ATTN_MIN                                = 0.015625;
 float  ATTN_NORM                               = 0.5;
+float  ATTN_LARGE                              = 1;
 float  ATTN_IDLE                               = 2;
 float  ATTN_STATIC                             = 3;
 float  ATTN_MAX                                = 3.984375;
@@ -540,9 +384,7 @@ float DEATH_MIRRORDAMAGE = 10014;
 float DEATH_TOUCHEXPLODE = 10015;
 float DEATH_CHEAT = 10016;
 float DEATH_FIRE = 10017;
-float DEATH_TURRET = 10020;
 float DEATH_QUIET = 10021;
-float DEATH_HEADSHOT = 10022;
 
 float  DEATH_VHFIRST       = 10030;
 float  DEATH_VHCRUSH       = 10030;
@@ -565,16 +407,31 @@ float DEATH_WEAPON = 10100;
 
 float DEATH_CUSTOM = 10300;
 
+float DEATH_TURRET                  = 10500;
+float DEATH_TURRET_EWHEEL           = 10501;
+float DEATH_TURRET_FLAC             = 10502;
+float DEATH_TURRET_MACHINEGUN       = 10503;
+float DEATH_TURRET_WALKER_GUN       = 10504;
+float DEATH_TURRET_WALKER_MEELE     = 10505;
+float DEATH_TURRET_WALKER_ROCKET    = 10506;
+float DEATH_TURRET_HELLION          = 10507;
+float DEATH_TURRET_HK               = 10508;
+float DEATH_TURRET_MLRS             = 10509;
+float DEATH_TURRET_PLASMA           = 10510;
+float DEATH_TURRET_PHASER           = 10511;
+float DEATH_TURRET_TESLA            = 10512;
+float DEATH_TURRET_LAST            = 10512;
 
 float DEATH_WEAPONMASK = 0xFF;
 float DEATH_HITTYPEMASK = 0x1F00; // which is WAY below 10000 used for normal deaths
 float HITTYPE_SECONDARY = 0x100;
-float HITTYPE_SPLASH = 0x200;
+float HITTYPE_SPLASH = 0x200; // automatically set by RadiusDamage
 float HITTYPE_BOUNCE = 0x400;
-float HITTYPE_HEADSHOT = 0x800;
+float HITTYPE_HEADSHOT = 0x800; // automatically set by Damage (if headshotbonus is set)
 float HITTYPE_RESERVED = 0x1000; // unused yet
 
 // macros to access these
+#define DEATH_ISTURRET(t)            ((t) >= DEATH_TURRET && (t) <= DEATH_TURRET_LAST)
 #define DEATH_ISSPECIAL(t)            ((t) >= DEATH_SPECIAL_START)
 #define DEATH_WEAPONOFWEAPONDEATH(t)  ((t) & DEATH_WEAPONMASK)
 #define DEATH_ISWEAPON(t,w)           (!DEATH_ISSPECIAL(t) && DEATH_WEAPONOFWEAPONDEATH(t) == (w))
@@ -587,9 +444,6 @@ float HITTYPE_RESERVED = 0x1000; // unused yet
 #define FRAGS_PLAYER_NONSOLID -616
 // we can use this frags value for both
 
-//misc. stuff
-#define NEWLINES "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
-
 // water levels
 float WATERLEVEL_NONE = 0;
 float WATERLEVEL_WETFEET = 1;
@@ -598,6 +452,19 @@ float WATERLEVEL_SUBMERGED = 3;
 
 float MAX_SHOT_DISTANCE = 32768;
 
+//centerprint ID list
+float CPID_TEAMCHANGE = 1;
+float CPID_CTF_CAPTURESHIELD = 2;
+float CPID_MINSTA_FINDAMMO = 3;
+float CPID_NIX_WPNCHANGE = 4;
+float CPID_DISCONNECT_IDLING = 5;
+float CPID_ROUND_STARTING = 6;
+float CPID_GAME_STARTING = 7;
+float CPID_TIMEOUT_COUNTDOWN = 8;
+float CPID_MOTD = 9;
+float CPID_KH_MSG = 10;
+float CPID_PREVENT_JOIN = 11;
+
 // CSQC centerprint/notify message types
 float MSG_SUICIDE = 0;
 float MSG_KILL = 1;
@@ -608,38 +475,38 @@ float MSG_INFO = 5;
 float MSG_KA = 6;
 float MSG_RACE = 10;
 
-float KILL_TEAM_RED = 10301;
-float KILL_TEAM_BLUE = 10302;
-float KILL_TEAM_SPREE = 10303;
-float KILL_FIRST_BLOOD = 10304;
-float KILL_FIRST_VICTIM = 10305;
-float KILL_TYPEFRAG = 10306;
-float KILL_TYPEFRAGGED = 10307;
-float KILL_FRAG = 10308;
-float KILL_FRAGGED = 10309;
-float KILL_SPREE = 10310;
-float KILL_END_SPREE = 10311;
-float KILL_SPREE_3 = 10312;
-float KILL_SPREE_5 = 10313;
-float KILL_SPREE_10 = 10314;
-float KILL_SPREE_15 = 10315;
-float KILL_SPREE_20 = 10316;
-float KILL_SPREE_25 = 10317;
-float KILL_SPREE_30 = 10318;
-
-float INFO_GOTFLAG = 10319;
-float INFO_PICKUPFLAG = 10320;
-float INFO_LOSTFLAG = 10321;
-float INFO_RETURNFLAG = 10322;
-float INFO_CAPTUREFLAG = 10323;
-
-float KA_PICKUPBALL = 10350;
-float KA_DROPBALL = 10351;
-
-float RACE_SERVER_RECORD = 10400;
-float RACE_NEW_TIME = 10401;
-float RACE_NEW_RANK = 10402;
-float RACE_FAIL = 10403;
+float KILL_TEAM_RED = 12001;
+float KILL_TEAM_BLUE = 12002;
+float KILL_TEAM_SPREE = 12003;
+float KILL_FIRST_BLOOD = 12004;
+float KILL_FIRST_VICTIM = 12005;
+float KILL_TYPEFRAG = 12006;
+float KILL_TYPEFRAGGED = 12007;
+float KILL_FRAG = 12008;
+float KILL_FRAGGED = 12009;
+float KILL_SPREE = 12010;
+float KILL_END_SPREE = 12011;
+float KILL_SPREE_3 = 12012;
+float KILL_SPREE_5 = 12013;
+float KILL_SPREE_10 = 12014;
+float KILL_SPREE_15 = 12015;
+float KILL_SPREE_20 = 12016;
+float KILL_SPREE_25 = 12017;
+float KILL_SPREE_30 = 12018;
+
+float INFO_GOTFLAG = 13001;
+float INFO_PICKUPFLAG = 13002;
+float INFO_LOSTFLAG = 13003;
+float INFO_RETURNFLAG = 13004;
+float INFO_CAPTUREFLAG = 13005;
+
+float KA_PICKUPBALL = 14001;
+float KA_DROPBALL = 14002;
+
+float RACE_SERVER_RECORD = 15001;
+float RACE_NEW_TIME = 15002;
+float RACE_NEW_RANK = 15003;
+float RACE_FAIL = 15004;
 
 // weapon requests
 float WR_SETUP         = 1; // (SVQC) setup weapon data
@@ -655,6 +522,7 @@ float WR_RESETPLAYER    = 10; // (SVQC) does not need to do anything
 float WR_IMPACTEFFECT  = 11; // (CSQC) impact effect
 float WR_SWITCHABLE    = 12; // (CSQC) impact effect
 float WR_PLAYERDEATH    = 13; // (SVQC) does not need to do anything
+float WR_GONETHINK     = 14; // (SVQC) logic to run every frame, also if no longer having the weapon as long as the switch away has not been performed
 
 float HUD_PANEL_WEAPONS                = 0;
 float HUD_PANEL_AMMO           = 1;
@@ -672,7 +540,9 @@ float HUD_PANEL_CHAT                = 12;
 float HUD_PANEL_ENGINEINFO     = 13;
 float HUD_PANEL_INFOMESSAGES   = 14;
 float HUD_PANEL_PHYSICS        = 15;
-float HUD_PANEL_NUM            = 16; // always last panel id + 1, please increment when adding a new panel
+float HUD_PANEL_CENTERPRINT    = 16;
+float HUD_PANEL_ITEMSTIME              = 17;
+float HUD_PANEL_NUM                            = 18; // always last panel id + 1, please increment when adding a new panel
 
 string HUD_PANELNAME_WEAPONS           = "weapons";
 string HUD_PANELNAME_AMMO              = "ammo";
@@ -690,8 +560,43 @@ string HUD_PANELNAME_CHAT          = "chat";
 string HUD_PANELNAME_ENGINEINFO                = "engineinfo";
 string HUD_PANELNAME_INFOMESSAGES      = "infomessages";
 string HUD_PANELNAME_PHYSICS   = "physics";
+string HUD_PANELNAME_CENTERPRINT       = "centerprint";
+string HUD_PANELNAME_ITEMSTIME         = "itemstime";
 
 float HUD_MENU_ENABLE          = 0;
 
 #define SERVERFLAG_ALLOW_FULLBRIGHT 1
 #define SERVERFLAG_TEAMPLAY 2
+#define SERVERFLAG_PLAYERSTATS 4
+
+var vector autocvar_sv_player_maxs = '16 16 45';
+var vector autocvar_sv_player_mins = '-16 -16 -24';
+var vector autocvar_sv_player_viewoffset = '0 0 20';
+var vector autocvar_sv_player_crouch_maxs = '16 16 25';
+var vector autocvar_sv_player_crouch_mins = '-16 -16 -24';
+var vector autocvar_sv_player_crouch_viewoffset = '0 0 20';
+noref var vector autocvar_sv_player_headsize = '24 24 12';
+
+#define PL_VIEW_OFS autocvar_sv_player_viewoffset
+#define PL_MIN autocvar_sv_player_mins
+#define PL_MAX autocvar_sv_player_maxs
+#define PL_CROUCH_VIEW_OFS autocvar_sv_player_crouch_viewoffset
+#define PL_CROUCH_MIN autocvar_sv_player_crouch_mins
+#define PL_CROUCH_MAX autocvar_sv_player_crouch_maxs
+#define PL_HEAD autocvar_sv_player_headsize
+
+// helpers
+#define PL_VIEW_OFS_z autocvar_sv_player_viewoffset_z
+#define PL_MIN_z autocvar_sv_player_mins_z
+#define PL_MAX_z autocvar_sv_player_maxs_z
+#define PL_CROUCH_VIEW_OFS_z autocvar_sv_player_crouch_viewoffset_z
+#define PL_CROUCH_MIN_z autocvar_sv_player_mins_z
+#define PL_HEAD_x autocvar_sv_player_headsize_x
+#define PL_HEAD_y autocvar_sv_player_headsize_y
+#define PL_HEAD_z autocvar_sv_player_headsize_z
+
+// spawnpoint prios
+#define SPAWN_PRIO_NEAR_TEAMMATE_FOUND    200
+#define SPAWN_PRIO_NEAR_TEAMMATE_SAMETEAM 100
+#define SPAWN_PRIO_RACE_PREVIOUS_SPAWN     50
+#define SPAWN_PRIO_GOOD_DISTANCE           10