2010-11-20 10:37:14 +00:00
|
|
|
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
|
|
|
|
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
2010-05-29 07:25:38 +00:00
|
|
|
#ifndef ENGINE_SHARED_PROTOCOL_H
|
|
|
|
#define ENGINE_SHARED_PROTOCOL_H
|
|
|
|
|
|
|
|
#include <base/system.h>
|
|
|
|
|
|
|
|
/*
|
|
|
|
Connection diagram - How the initilization works.
|
2011-04-13 18:37:12 +00:00
|
|
|
|
2010-05-29 07:25:38 +00:00
|
|
|
Client -> INFO -> Server
|
|
|
|
Contains version info, name, and some other info.
|
2011-04-13 18:37:12 +00:00
|
|
|
|
2010-05-29 07:25:38 +00:00
|
|
|
Client <- MAP <- Server
|
|
|
|
Contains current map.
|
2011-04-13 18:37:12 +00:00
|
|
|
|
2010-05-29 07:25:38 +00:00
|
|
|
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.
|
2011-04-13 18:37:12 +00:00
|
|
|
|
2010-05-29 07:25:38 +00:00
|
|
|
Client -> ENTERGAME -> Server
|
|
|
|
Tells the server to start sending snapshots.
|
|
|
|
client_entergame and server_client_enter is called.
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
NETMSG_NULL=0,
|
2011-04-13 18:37:12 +00:00
|
|
|
|
2010-05-29 07:25:38 +00:00
|
|
|
// the first thing sent by the client
|
|
|
|
// contains the version info for the client
|
|
|
|
NETMSG_INFO=1,
|
2011-04-13 18:37:12 +00:00
|
|
|
|
2010-05-29 07:25:38 +00:00
|
|
|
// sent by server
|
|
|
|
NETMSG_MAP_CHANGE, // sent when client should switch map
|
|
|
|
NETMSG_MAP_DATA, // map transfer, contains a chunk of the map file
|
2011-03-15 08:58:57 +00:00
|
|
|
NETMSG_CON_READY, // connection is ready, client should send start info
|
2010-05-29 07:25:38 +00:00
|
|
|
NETMSG_SNAP, // normal snapshot, multiple parts
|
|
|
|
NETMSG_SNAPEMPTY, // empty snapshot
|
|
|
|
NETMSG_SNAPSINGLE, // ?
|
|
|
|
NETMSG_SNAPSMALL, //
|
|
|
|
NETMSG_INPUTTIMING, // reports how off the input was
|
|
|
|
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, //
|
2011-04-13 18:37:12 +00:00
|
|
|
|
2010-05-29 07:25:38 +00:00
|
|
|
// sent by client
|
|
|
|
NETMSG_READY, //
|
|
|
|
NETMSG_ENTERGAME,
|
|
|
|
NETMSG_INPUT, // contains the inputdata from the client
|
2011-04-13 18:37:12 +00:00
|
|
|
NETMSG_RCON_CMD, //
|
2010-05-29 07:25:38 +00:00
|
|
|
NETMSG_RCON_AUTH, //
|
|
|
|
NETMSG_REQUEST_MAP_DATA,//
|
|
|
|
|
|
|
|
NETMSG_AUTH_START, //
|
|
|
|
NETMSG_AUTH_RESPONSE, //
|
2011-04-13 18:37:12 +00:00
|
|
|
|
2010-05-29 07:25:38 +00:00
|
|
|
// sent by both
|
|
|
|
NETMSG_PING,
|
|
|
|
NETMSG_PING_REPLY,
|
2011-07-14 20:07:21 +00:00
|
|
|
NETMSG_ERROR,
|
|
|
|
|
|
|
|
// sent by server (todo: move it up)
|
|
|
|
NETMSG_RCON_CMD_ADD,
|
|
|
|
NETMSG_RCON_CMD_REM,
|
2010-05-29 07:25:38 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
// this should be revised
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
SERVER_TICK_SPEED=50,
|
|
|
|
SERVER_FLAG_PASSWORD = 0x1,
|
|
|
|
|
2013-12-31 05:13:57 +00:00
|
|
|
MAX_CLIENTS=64,
|
|
|
|
VANILLA_MAX_CLIENTS=16,
|
2010-05-29 07:25:38 +00:00
|
|
|
|
|
|
|
MAX_INPUT_SIZE=128,
|
|
|
|
MAX_SNAPSHOT_PACKSIZE=900,
|
|
|
|
|
2011-03-15 10:23:49 +00:00
|
|
|
MAX_NAME_LENGTH=16,
|
|
|
|
MAX_CLAN_LENGTH=12,
|
2010-05-29 07:25:38 +00:00
|
|
|
|
|
|
|
// message packing
|
|
|
|
MSGFLAG_VITAL=1,
|
|
|
|
MSGFLAG_FLUSH=2,
|
|
|
|
MSGFLAG_NORECORD=4,
|
|
|
|
MSGFLAG_RECORD=8,
|
|
|
|
MSGFLAG_NOSEND=16
|
|
|
|
};
|
|
|
|
|
2014-01-30 15:49:15 +00:00
|
|
|
enum
|
|
|
|
{
|
|
|
|
VERSION_VANILLA = 0,
|
|
|
|
VERSION_DDRACE = 1,
|
|
|
|
VERSION_DDNET_OLD = 2,
|
|
|
|
VERSION_DDNET_WHISPER = 217,
|
2014-02-19 20:55:37 +00:00
|
|
|
VERSION_DDNET_GOODHOOK = 221,
|
2014-01-30 15:49:15 +00:00
|
|
|
};
|
|
|
|
|
2010-05-29 07:25:38 +00:00
|
|
|
#endif
|