mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-13 11:38:19 +00:00
5ae37e6c72
This system can easily be extended by independent authors without collisions, something the old system with plain increasing integers did not allow. Do this by utilizing the previously unused message code `NETMSG_NULL` which has a value of 0. This works for engine and game messages, snapshot items and events.
117 lines
2.7 KiB
C
117 lines
2.7 KiB
C
/* (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. */
|
|
#ifndef ENGINE_SHARED_PROTOCOL_H
|
|
#define ENGINE_SHARED_PROTOCOL_H
|
|
|
|
#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_EX=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_CON_READY, // connection is ready, client should send start info
|
|
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, //
|
|
|
|
// 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,
|
|
|
|
// sent by server (todo: move it up)
|
|
NETMSG_RCON_CMD_ADD,
|
|
NETMSG_RCON_CMD_REM,
|
|
|
|
NUM_NETMSGS,
|
|
};
|
|
|
|
// this should be revised
|
|
enum
|
|
{
|
|
SERVER_TICK_SPEED=50,
|
|
SERVER_FLAG_PASSWORD = 0x1,
|
|
|
|
MAX_CLIENTS=64,
|
|
VANILLA_MAX_CLIENTS=16,
|
|
|
|
MAX_INPUT_SIZE=128,
|
|
MAX_SNAPSHOT_PACKSIZE=900,
|
|
|
|
MAX_NAME_LENGTH=16,
|
|
MAX_CLAN_LENGTH=12,
|
|
|
|
// message packing
|
|
MSGFLAG_VITAL=1,
|
|
MSGFLAG_FLUSH=2,
|
|
MSGFLAG_NORECORD=4,
|
|
MSGFLAG_RECORD=8,
|
|
MSGFLAG_NOSEND=16
|
|
};
|
|
|
|
enum
|
|
{
|
|
VERSION_VANILLA = 0,
|
|
VERSION_DDRACE = 1,
|
|
VERSION_DDNET_OLD = 2,
|
|
VERSION_DDNET_WHISPER = 217,
|
|
VERSION_DDNET_GOODHOOK = 221,
|
|
VERSION_DDNET_EXTRATUNES = 302,
|
|
VERSION_DDNET_RCONPROTECT = 408,
|
|
VERSION_DDNET_ANTIPING_PROJECTILE = 604,
|
|
VERSION_DDNET_HOOKDURATION_TUNE = 607,
|
|
VERSION_DDNET_FIREDELAY_TUNE = 701,
|
|
VERSION_DDNET_UPDATER_FIXED = 707,
|
|
VERSION_DDNET_GAMETICK = 10042,
|
|
};
|
|
|
|
#endif
|