about summary refs log tree commit diff
path: root/src/engine/e_protocol.h
blob: 033db43cab3b89aff0d543390a0104ca994a30c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/* copyright (c) 2007 magnus auvinen, see licence.txt for more info */
#include <base/system.h>

/*
	Connection diagram - How the initilization works.
	
	Client -> INFO -> Server
		Contains version info, name, and some other info.
		
	Client <- MAP <- Server
		Contains current map.
	
	Client -> READY -> Server
		The client has loaded the map and is ready to go,
		but the mod needs to send it's information aswell.
		modc_connected is called on the client and
		mods_connected is called on the server.
		The client should call client_entergame when the
		mod has done it's initilization.
		
	Client -> ENTERGAME -> Server
		Tells the server to start sending snapshots.
		client_entergame and server_client_enter is called.
*/


enum
{
	NETMSG_NULL=0,
	
	/* the first thing sent by the client
	contains the version info for the client */
	NETMSG_INFO=1,
	
	/* sent by server */
	NETMSG_MAP_CHANGE,		/* sent when client should switch map */
	NETMSG_MAP_DATA,		/* map transfer, contains a chunk of the map file */
	NETMSG_SNAP,			/* normal snapshot, multiple parts */
	NETMSG_SNAPEMPTY,		/* empty snapshot */
	NETMSG_SNAPSINGLE,		/* ? */
	NETMSG_SNAPSMALL,		/* */
	NETMSG_RCON_AUTH_STATUS,/* result of the authentication */
	NETMSG_RCON_LINE,		/* line that should be printed to the remote console */

	NETMSG_AUTH_CHALLANGE,	/* */
	NETMSG_AUTH_RESULT,		/* */
	
	/* sent by client */
	NETMSG_READY,			/* */
	NETMSG_ENTERGAME,
	NETMSG_INPUT,			/* contains the inputdata from the client */
	NETMSG_RCON_CMD,		/* */ 
	NETMSG_RCON_AUTH,		/* */
	NETMSG_REQUEST_MAP_DATA,/* */

	NETMSG_AUTH_START,		/* */
	NETMSG_AUTH_RESPONSE,	/* */
	
	/* sent by both */
	NETMSG_PING,
	NETMSG_PING_REPLY,
	NETMSG_ERROR
};


/* this should be revised */
enum
{
	MAX_CLANNAME_LENGTH=32,
	MAX_INPUT_SIZE=128,
	MAX_SNAPSHOT_PACKSIZE=900
};