19fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 29fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamCopyright (C) 1996-1997 Id Software, Inc. 39fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 49fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamThis program is free software; you can redistribute it and/or 59fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreammodify it under the terms of the GNU General Public License 69fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamas published by the Free Software Foundation; either version 2 79fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamof the License, or (at your option) any later version. 89fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 99fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamThis program is distributed in the hope that it will be useful, 109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreambut WITHOUT ANY WARRANTY; without even the implied warranty of 119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSee the GNU General Public License for more details. 149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamYou should have received a copy of the GNU General Public License 169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamalong with this program; if not, write to the Free Software 179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/ 209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// protocol.h -- communications protocols 219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define PROTOCOL_VERSION 15 239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// if the high bit of the servercmd is set, the low bits are fast update flags: 259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_MOREBITS (1<<0) 269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_ORIGIN1 (1<<1) 279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_ORIGIN2 (1<<2) 289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_ORIGIN3 (1<<3) 299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_ANGLE2 (1<<4) 309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_NOLERP (1<<5) // don't interpolate movement 319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_FRAME (1<<6) 329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_SIGNAL (1<<7) // just differentiates from other updates 339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// svc_update can pass all of the fast update bits, plus more 359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_ANGLE1 (1<<8) 369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_ANGLE3 (1<<9) 379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_MODEL (1<<10) 389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_COLORMAP (1<<11) 399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_SKIN (1<<12) 409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_EFFECTS (1<<13) 419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define U_LONGENTITY (1<<14) 429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SU_VIEWHEIGHT (1<<0) 459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SU_IDEALPITCH (1<<1) 469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SU_PUNCH1 (1<<2) 479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SU_PUNCH2 (1<<3) 489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SU_PUNCH3 (1<<4) 499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SU_VELOCITY1 (1<<5) 509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SU_VELOCITY2 (1<<6) 519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SU_VELOCITY3 (1<<7) 529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//define SU_AIMENT (1<<8) AVAILABLE BIT 539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SU_ITEMS (1<<9) 549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SU_ONGROUND (1<<10) // no data follows, the bit is it 559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SU_INWATER (1<<11) // no data follows, the bit is it 569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SU_WEAPONFRAME (1<<12) 579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SU_ARMOR (1<<13) 589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SU_WEAPON (1<<14) 599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// a sound with no channel is a local only sound 619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SND_VOLUME (1<<0) // a byte 629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SND_ATTENUATION (1<<1) // a byte 639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define SND_LOOPING (1<<2) // a long 649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// defaults for clientinfo messages 679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DEFAULT_VIEWHEIGHT 22 689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// game types sent by serverinfo 719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// these determine which intermission screen plays 729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define GAME_COOP 0 739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define GAME_DEATHMATCH 1 749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//================== 769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// note that there are some defs.qc that mirror to these numbers 779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// also related to svc_strings[] in cl_parse 789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//================== 799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// 819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// server to client 829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// 839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_bad 0 849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_nop 1 859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_disconnect 2 869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_updatestat 3 // [byte] [long] 879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_version 4 // [long] server version 889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_setview 5 // [short] entity number 899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_sound 6 // <see code> 909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_time 7 // [float] server time 919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_print 8 // [string] null terminated string 929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_stufftext 9 // [string] stuffed into client's console buffer 939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream // the string should be \n terminated 949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_setangle 10 // [angle3] set the view angle to this absolute value 959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_serverinfo 11 // [long] version 979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream // [string] signon string 989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream // [string]..[0]model cache 999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream // [string]...[0]sounds cache 1009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_lightstyle 12 // [byte] [string] 1019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_updatename 13 // [byte] [string] 1029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_updatefrags 14 // [byte] [short] 1039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_clientdata 15 // <shortbits + data> 1049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_stopsound 16 // <see code> 1059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_updatecolors 17 // [byte] [byte] 1069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_particle 18 // [vec3] <variable> 1079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_damage 19 1089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_spawnstatic 20 1109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// svc_spawnbinary 21 1119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_spawnbaseline 22 1129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_temp_entity 23 1149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_setpause 24 // [byte] on / off 1169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_signonnum 25 // [byte] used for the signon sequence 1179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_centerprint 26 // [string] to put in center of the screen 1199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_killedmonster 27 1219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_foundsecret 28 1229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_spawnstaticsound 29 // [coord3] [byte] samp [byte] vol [byte] aten 1249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_intermission 30 // [string] music 1269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_finale 31 // [string] music [string] text 1279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_cdtrack 32 // [byte] track [byte] looptrack 1299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_sellscreen 33 1309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define svc_cutscene 34 1329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// 1349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// client to server 1359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// 1369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define clc_bad 0 1379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define clc_nop 1 1389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define clc_disconnect 2 1399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define clc_move 3 // [usercmd_t] 1409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define clc_stringcmd 4 // [string] message 1419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// 1449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// temp entity events 1459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// 1469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_SPIKE 0 1479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_SUPERSPIKE 1 1489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_GUNSHOT 2 1499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_EXPLOSION 3 1509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_TAREXPLOSION 4 1519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_LIGHTNING1 5 1529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_LIGHTNING2 6 1539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_WIZSPIKE 7 1549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_KNIGHTSPIKE 8 1559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_LIGHTNING3 9 1569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_LAVASPLASH 10 1579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_TELEPORT 11 1589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_EXPLOSION2 12 1599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// PGM 01/21/97 1619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_BEAM 13 1629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// PGM 01/21/97 1639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifdef QUAKE2 1659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_IMPLOSION 14 1669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TE_RAILTRAIL 15 1679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 168