# tcp_game.h File Reference

Basic functions to receive and send TCP packets for game purposes. More...

`#include "os_abstraction.h"`
`#include "tcp.h"`
`#include "../network_type.h"`
`#include "../../core/pool_type.hpp"`

Go to the source code of this file.

## Data Structures

class | NetworkClientSocket
| Base socket handler for all TCP sockets. More...

## Defines

#define | FOR_ALL_CLIENT_SOCKETS_FROM(var, start) FOR_ALL_ITEMS_FROM(NetworkClientSocket, clientsocket_index, var, start)
#define | FOR_ALL_CLIENT_SOCKETS(var) FOR_ALL_CLIENT_SOCKETS_FROM(var, 0)

## Typedefs

typedef Pool < NetworkClientSocket, ClientIndex, 8, MAX_CLIENT_SLOTS > | NetworkClientSocketPool

## Enumerations

enum

{
PACKET_SERVER_FULL, PACKET_SERVER_BANNED, PACKET_CLIENT_JOIN, PACKET_SERVER_ERROR,
PACKET_CLIENT_COMPANY_INFO, PACKET_SERVER_COMPANY_INFO, PACKET_SERVER_CLIENT_INFO, PACKET_SERVER_NEED_GAME_PASSWORD,
PACKET_SERVER_NEED_COMPANY_PASSWORD, PACKET_CLIENT_GAME_PASSWORD, PACKET_CLIENT_COMPANY_PASSWORD, PACKET_SERVER_WELCOME,
PACKET_CLIENT_GETMAP, PACKET_SERVER_WAIT, PACKET_SERVER_MAP, PACKET_CLIENT_MAP_OK,
PACKET_SERVER_JOIN, PACKET_SERVER_FRAME, PACKET_SERVER_SYNC, PACKET_CLIENT_ACK,
PACKET_CLIENT_COMMAND, PACKET_SERVER_COMMAND, PACKET_CLIENT_CHAT, PACKET_SERVER_CHAT,
PACKET_CLIENT_SET_PASSWORD, PACKET_CLIENT_SET_NAME, PACKET_CLIENT_QUIT, PACKET_CLIENT_ERROR,
PACKET_SERVER_QUIT, PACKET_SERVER_ERROR_QUIT, PACKET_SERVER_SHUTDOWN, PACKET_SERVER_NEWGAME,
PACKET_SERVER_RCON, PACKET_CLIENT_RCON, PACKET_SERVER_CHECK_NEWGRFS, PACKET_CLIENT_NEWGRFS_CHECKED,
PACKET_SERVER_MOVE, PACKET_CLIENT_MOVE, PACKET_SERVER_COMPANY_UPDATE, PACKET_SERVER_CONFIG_UPDATE,
PACKET_END
}

| Enum with all types of UDP packets. More...
enum | ClientStatus { STATUS_INACTIVE, STATUS_NEWGRFS_CHECK, STATUS_AUTH_GAME, STATUS_AUTH_COMPANY, STATUS_AUTHORIZED, STATUS_MAP_WAIT, STATUS_MAP, STATUS_DONE_MAP, STATUS_PRE_ACTIVE, STATUS_ACTIVE, STATUS_END }
| Status of a client. More...

## Variables

NetworkClientSocketPool | _networkclientsocket_pool

## Detailed Description

Basic functions to receive and send TCP packets for game purposes.

Definition in file tcp_game.h.

## Enumeration Type Documentation

anonymous enum

Enum with all types of UDP packets.

The order of the first 4 packets MUST not be changed, as it protects old clients from joining newer servers (because SERVER_ERROR is the respond to a wrong revision)

Enumerator:

  PACKET_END | Must ALWAYS be on the end of this list!! (period).

Definition at line 30 of file tcp_game.h.

enum ClientStatus

Status of a client.

Enumerator:

  STATUS_INACTIVE | The client is not connected nor active.
  STATUS_NEWGRFS_CHECK | The client is checking NewGRFs.
  STATUS_AUTH_GAME | The client is authorizing with game (server) password.
  STATUS_AUTH_COMPANY | The client is authorizing with company password.
  STATUS_AUTHORIZED | The client is authorized.
  STATUS_MAP_WAIT | The client is waiting as someone else is downloading the map.
  STATUS_MAP | The client is downloading the map.
  STATUS_DONE_MAP | The client has downloaded the map.
  STATUS_PRE_ACTIVE | The client is catching up the delayed frames.
  STATUS_ACTIVE | The client is active within in the game.
  STATUS_END | Must ALWAYS be on the end of this list!! (period).

Definition at line 78 of file tcp_game.h.