// 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;
const float TE_CSQC_MINELAYER_MAXMINES = 117;
const float TE_CSQC_HAGAR_MAXROCKETS = 118;
const float TE_CSQC_VEHICLESETUP = 119;
+const float TE_CSQC_SVNOTICE = 120;
const float RACE_NET_CHECKPOINT_HIT_QUALIFYING = 0; // byte checkpoint, short time, short recordtime, string recordholder
const float RACE_NET_CHECKPOINT_CLEAR = 1;
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_ITEM = 34;
+const float ENT_CLIENT_BUMBLE_RAYGUN = 35;
const float ENT_CLIENT_TURRET = 40;
const float ENT_CLIENT_AUXILIARYXHAIR = 50;
const float KEY_RIGHT = 8;
const float KEY_JUMP = 16;
const float KEY_CROUCH = 32;
+const float KEY_ATCK = 64;
+const float KEY_ATCK2 = 128;
///////////////////////////
// cvar constants
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;
-const float STAT_MOVEVARS_AIRSTRAFEACCEL_QW = 223;
-const float STAT_MOVEVARS_MAXSPEED = 244;
-const float STAT_MOVEVARS_AIRACCEL_QW = 254;
-
-const float CTF_STATE_ATTACK = 1;
-const float CTF_STATE_DEFEND = 2;
-const float CTF_STATE_COMMANDER = 3;
-
-const float HUD_NORMAL = 0;
-const float HUD_VEHICLE_FIRST = 10;
-const float HUD_SPIDERBOT = 10;
-const float HUD_WAKIZASHI = 11;
-const float HUD_RAPTOR = 12;
-const float HUD_BUMBLEBEE = 13;
-const float HUD_VEHICLE_LAST = 13;
-
-const vector eX = '1 0 0';
-const vector eY = '0 1 0';
-const vector eZ = '0 0 1';
+const float STAT_SUPERWEAPONS_FINISHED = 59;
const float STAT_VEHICLESTAT_HEALTH = 60;
const float STAT_VEHICLESTAT_SHIELD = 61;
const float STAT_ARMOR_LARGE_TIME = 80;
const float STAT_HEALTH_MEGA_TIME = 81;
-const float STAT_STRENGTH_TIME = 82;
-const float STAT_INVISIBLE_TIME = 83;
+const float STAT_INVISIBLE_TIME = 82;
+const float STAT_SPEED_TIME = 83;
const float STAT_EXTRALIFE_TIME = 84;
-const float STAT_SPEED_TIME = 85;
+const float STAT_STRENGTH_TIME = 85;
const float STAT_SHIELD_TIME = 86;
const float STAT_FUELREGEN_TIME = 87;
const float STAT_JETPACK_TIME = 88;
+const float STAT_SUPERWEAPONS_TIME = 89;
// mod stats (1xx)
const float STAT_REDALIVE = 100;
const float STAT_FROZEN = 104;
const float STAT_REVIVE_PROGRESS = 105;
-
+// domination
const float STAT_DOM_TOTAL_PPS = 100;
const float STAT_DOM_PPS_RED = 101;
const float STAT_DOM_PPS_BLUE = 102;
//const float STAT_SPIDERBOT_AIM 53 // compressShotOrigin
//const float STAT_SPIDERBOT_TARGET 54 // compressShotOrigin
+// see DP source, quakedef.h
+const float STAT_MOVEVARS_AIRSPEEDLIMIT_NONQW = 222;
+const float STAT_MOVEVARS_AIRSTRAFEACCEL_QW = 223;
+const float STAT_MOVEVARS_MAXSPEED = 244;
+const float STAT_MOVEVARS_AIRACCEL_QW = 254;
+
+const float CTF_STATE_ATTACK = 1;
+const float CTF_STATE_DEFEND = 2;
+const float CTF_STATE_COMMANDER = 3;
+
+const float HUD_NORMAL = 0;
+const float HUD_VEHICLE_FIRST = 10;
+const float HUD_SPIDERBOT = 10;
+const float HUD_WAKIZASHI = 11;
+const float HUD_RAPTOR = 12;
+const float HUD_BUMBLEBEE = 13;
+const float HUD_BUMBLEBEE_GUN = 14;
+const float HUD_VEHICLE_LAST = 14;
+
+const vector eX = '1 0 0';
+const vector eY = '0 1 0';
+const vector eZ = '0 0 1';
+
// moved that here so the client knows the max.
// # of maps, I'll use arrays for them :P
#define MAPVOTE_COUNT 10
float PROJECTILE_WAKIROCKET = 28;
float PROJECTILE_WAKICANNON = 29;
+float PROJECTILE_BUMBLE_GUN = 30;
+float PROJECTILE_BUMBLE_BEAM = 31;
+
float SPECIES_HUMAN = 0;
float SPECIES_ROBOT_SOLID = 1;
float SPECIES_ALIEN = 2;
float DEATH_CHEAT = 10016;
float DEATH_FIRE = 10017;
float DEATH_QUIET = 10021;
-float DEATH_HEADSHOT = 10022;
float DEATH_VHFIRST = 10030;
float DEATH_VHCRUSH = 10030;
float DEATH_RAPTOR_CANNON = 10037;
float DEATH_RAPTOR_BOMB = 10038;
float DEATH_RAPTOR_BOMB_SPLIT = 10039;
-float DEATH_RAPTOR_DEATH = 10040;
-float DEATH_VHLAST = 10040;
+float DEATH_RAPTOR_DEATH = 10040;
+float DEATH_BUMB_GUN = 10041;
+float DEATH_BUMB_RAY = 10042;
+float DEATH_BUMB_RAY_HEAL = 10043;
+float DEATH_BUMB_DEATH = 10044;
+float DEATH_VHLAST = 10044;
#define DEATH_ISVEHICLE(t) ((t) >= DEATH_VHFIRST && (t) <= DEATH_VHLAST)
float DEATH_GENERIC = 10050;
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
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
+// FIXME/EXPLAINME: why?
+noref var vector autocvar_sv_player_maxs = '16 16 45';
+noref var vector autocvar_sv_player_mins = '-16 -16 -24';
+noref var vector autocvar_sv_player_viewoffset = '0 0 20';
+noref var vector autocvar_sv_player_crouch_maxs = '16 16 25';
+noref var vector autocvar_sv_player_crouch_mins = '-16 -16 -24';
+noref 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
+
+// URI handles
+#define URI_GET_DISCARD 0
+#define URI_GET_IPBAN 1
+#define URI_GET_IPBAN_END 16
+#define URI_GET_CURL 17
+#define URI_GET_CURL_END 32
+#define URI_GET_UPDATENOTIFICATION 33
+#define URI_GET_URLLIB 128
+#define URI_GET_URLLIB_END 191