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