network.h
author tron
Mon, 25 Jul 2005 07:16:10 +0000
changeset 2189 5cdc11ffeaa4
parent 2186 db48cf29b983
child 2380 392bba57462d
permissions -rw-r--r--
(svn r2704) Remove . from include path again, too much trouble. Also add some #ifdefs and #includes for the Windows build
2186
db48cf29b983 (svn r2701) Insert Id tags into all source files
tron
parents: 2153
diff changeset
     1
/* $Id$ */
db48cf29b983 (svn r2701) Insert Id tags into all source files
tron
parents: 2153
diff changeset
     2
211
2954c4b30525 (svn r212) -Fix: Network-gui fixes (sign_de)
darkvater
parents:
diff changeset
     3
#ifndef NETWORK_H
2954c4b30525 (svn r212) -Fix: Network-gui fixes (sign_de)
darkvater
parents:
diff changeset
     4
#define NETWORK_H
2954c4b30525 (svn r212) -Fix: Network-gui fixes (sign_de)
darkvater
parents:
diff changeset
     5
663
80c66fd07863 (svn r1098) -Fix: server without revision build doesn't care about the client's version. Also moved all revision things where it belongs (network.c)
darkvater
parents: 662
diff changeset
     6
#define NOREV_STRING "norev000"
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
     7
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
     8
#ifdef ENABLE_NETWORK
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
     9
2153
ecfc674410b4 (svn r2663) Include variables.h only in these files which need it, not globally via openttd.h
tron
parents: 2079
diff changeset
    10
#include "player.h"
ecfc674410b4 (svn r2663) Include variables.h only in these files which need it, not globally via openttd.h
tron
parents: 2079
diff changeset
    11
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    12
// If this line is enable, every frame will have a sync test
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    13
//  this is not needed in normal games. Normal is like 1 sync in 100
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    14
//  frames. You can enable this if you have a lot of desyncs on a certain
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    15
//  game.
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    16
// Remember: both client and server have to be compiled with this
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    17
//  option enabled to make it to work. If one of the two has it disabled
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    18
//  nothing will happen.
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    19
//#define ENABLE_NETWORK_SYNC_EVERY_FRAME
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    20
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    21
// In theory sending 1 of the 2 seeds is enough to check for desyncs
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    22
//   so in theory, this next define can be left off.
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    23
//#define NETWORK_SEND_DOUBLE_SEED
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    24
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    25
// How many clients can we have? Like.. MAX_PLAYERS - 1 is the amount of
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    26
//  players that can really play.. so.. a max of 4 spectators.. gives us..
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    27
//  MAX_PLAYERS + 3
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    28
#define MAX_CLIENTS (MAX_PLAYERS + 3)
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    29
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    30
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    31
// Do not change this next line. It should _ALWAYS_ be MAX_CLIENTS + 1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    32
#define MAX_CLIENT_INFO (MAX_CLIENTS + 1)
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    33
668
1fe298df8526 (svn r1106) -Add: [Network] Added master-server protocol and advertise to
truelight
parents: 663
diff changeset
    34
/* Stuff for the master-server */
1fe298df8526 (svn r1106) -Add: [Network] Added master-server protocol and advertise to
truelight
parents: 663
diff changeset
    35
#define NETWORK_MASTER_SERVER_PORT 3978
1fe298df8526 (svn r1106) -Add: [Network] Added master-server protocol and advertise to
truelight
parents: 663
diff changeset
    36
#define NETWORK_MASTER_SERVER_HOST "master.openttd.org"
1fe298df8526 (svn r1106) -Add: [Network] Added master-server protocol and advertise to
truelight
parents: 663
diff changeset
    37
#define NETWORK_MASTER_SERVER_WELCOME_MESSAGE "OpenTTDRegister"
1fe298df8526 (svn r1106) -Add: [Network] Added master-server protocol and advertise to
truelight
parents: 663
diff changeset
    38
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    39
#define NETWORK_DEFAULT_PORT 3979
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    40
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    41
#define MAX_INTERFACES 9
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    42
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    43
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    44
// How many vehicle/station types we put over the network
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    45
#define NETWORK_VEHICLE_TYPES 5
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    46
#define NETWORK_STATION_TYPES 5
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    47
1026
02cc18821508 (svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight
parents: 1011
diff changeset
    48
enum {
02cc18821508 (svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight
parents: 1011
diff changeset
    49
	NETWORK_NAME_LENGTH        = 80,
02cc18821508 (svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight
parents: 1011
diff changeset
    50
	NETWORK_HOSTNAME_LENGTH    = 80,
02cc18821508 (svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight
parents: 1011
diff changeset
    51
	NETWORK_REVISION_LENGTH    = 10,
02cc18821508 (svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight
parents: 1011
diff changeset
    52
	NETWORK_PASSWORD_LENGTH    = 20,
02cc18821508 (svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight
parents: 1011
diff changeset
    53
	NETWORK_PLAYERS_LENGTH     = 200,
02cc18821508 (svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight
parents: 1011
diff changeset
    54
	NETWORK_CLIENT_NAME_LENGTH = 25,
02cc18821508 (svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight
parents: 1011
diff changeset
    55
	NETWORK_RCONCOMMAND_LENGTH = 500,
2071
3083c580f4dc (svn r2581) Fix: Behave a bit safer if central server sends bogus information about clients.
ludde
parents: 1812
diff changeset
    56
3083c580f4dc (svn r2581) Fix: Behave a bit safer if central server sends bogus information about clients.
ludde
parents: 1812
diff changeset
    57
	NETWORK_NUM_LANGUAGES      = 4,
1026
02cc18821508 (svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight
parents: 1011
diff changeset
    58
};
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    59
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    60
// This is the struct used by both client and server
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    61
//  some fields will be empty on the client (like game_password) by default
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    62
//  and only filled with data a player enters.
211
2954c4b30525 (svn r212) -Fix: Network-gui fixes (sign_de)
darkvater
parents:
diff changeset
    63
typedef struct NetworkGameInfo {
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    64
	char server_name[NETWORK_NAME_LENGTH];					// Server name
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    65
	char hostname[NETWORK_HOSTNAME_LENGTH];					// Hostname of the server (if any)
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    66
	char server_revision[NETWORK_REVISION_LENGTH];	// The SVN version number the server is using (e.g.: 'r304')
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    67
																									//  It even shows a SVN version in release-version, so
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    68
																									//  it is easy to compare if a server is of the correct version
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    69
	byte server_lang;																// Language of the server (we should make a nice table for this)
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    70
	byte use_password;															// Is set to != 0 if it uses a password
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    71
	char server_password[NETWORK_PASSWORD_LENGTH];	// On the server: the game password, on the client: != "" if server has password
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    72
	byte clients_max;																// Max clients allowed on server
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    73
	byte clients_on;																// Current count of clients on server
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    74
	byte spectators_on;															// How many spectators do we have?
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    75
	uint16 game_date;																// Current date
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    76
	uint16 start_date;															// When the game started
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    77
	char map_name[NETWORK_NAME_LENGTH];							// Map which is played ["random" for a randomized map]
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    78
	uint16 map_width;																// Map width
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    79
	uint16 map_height;															// Map height
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    80
	byte map_set;																		// Graphical set
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    81
	bool dedicated;																	// Is this a dedicated server?
1026
02cc18821508 (svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight
parents: 1011
diff changeset
    82
	char rcon_password[NETWORK_PASSWORD_LENGTH];		// RCon password for the server. "" if rcon is disabled
211
2954c4b30525 (svn r212) -Fix: Network-gui fixes (sign_de)
darkvater
parents:
diff changeset
    83
} NetworkGameInfo;
2954c4b30525 (svn r212) -Fix: Network-gui fixes (sign_de)
darkvater
parents:
diff changeset
    84
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    85
typedef struct NetworkPlayerInfo {
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    86
	char company_name[NETWORK_NAME_LENGTH];					// Company name
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    87
	char password[NETWORK_PASSWORD_LENGTH];					// The password for the player
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    88
	byte inaugurated_year;													// What year the company started in
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    89
	int64 company_value;														// The company value
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    90
	int64 money;																		// The amount of money the company has
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    91
	int64 income;																		// How much did the company earned last year
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    92
	uint16 performance;															// What was his performance last month?
1011
933efc472c62 (svn r1510) -Add: Improved Network Lobby GUI: (bociusz)
truelight
parents: 841
diff changeset
    93
	byte use_password;													// 0: No password 1: There is a password
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    94
	uint16 num_vehicle[NETWORK_VEHICLE_TYPES];			// How many vehicles are there of this type?
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    95
	uint16 num_station[NETWORK_STATION_TYPES];			// How many stations are there of this type?
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    96
	char players[NETWORK_PLAYERS_LENGTH];						// The players that control this company (Name1, name2, ..)
690
3afcad69d4f7 (svn r1131) -Add: [Network] Autoclean_companies (set it with 'set autoclean_companies on/off').
truelight
parents: 670
diff changeset
    97
	uint16 months_empty;														// How many months the company is empty
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    98
} NetworkPlayerInfo;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
    99
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   100
typedef struct NetworkClientInfo {
1804
fbe724472bb4 (svn r2308) - Fix: enforce server-only and/or offline commands by giving them flags in the process table. This also fixes bug "[ 1190944 ] Many commands not checked for security"
Darkvater
parents: 1739
diff changeset
   101
	uint16 client_index;                          /// Index of the client (same as ClientState->index)
fbe724472bb4 (svn r2308) - Fix: enforce server-only and/or offline commands by giving them flags in the process table. This also fixes bug "[ 1190944 ] Many commands not checked for security"
Darkvater
parents: 1739
diff changeset
   102
	char client_name[NETWORK_CLIENT_NAME_LENGTH]; /// Name of the client
fbe724472bb4 (svn r2308) - Fix: enforce server-only and/or offline commands by giving them flags in the process table. This also fixes bug "[ 1190944 ] Many commands not checked for security"
Darkvater
parents: 1739
diff changeset
   103
	byte client_lang;                             /// The language of the client
fbe724472bb4 (svn r2308) - Fix: enforce server-only and/or offline commands by giving them flags in the process table. This also fixes bug "[ 1190944 ] Many commands not checked for security"
Darkvater
parents: 1739
diff changeset
   104
	byte client_playas;                           /// As which player is this client playing (PlayerID)
fbe724472bb4 (svn r2308) - Fix: enforce server-only and/or offline commands by giving them flags in the process table. This also fixes bug "[ 1190944 ] Many commands not checked for security"
Darkvater
parents: 1739
diff changeset
   105
	uint32 client_ip;                             /// IP-address of the client (so he can be banned)
fbe724472bb4 (svn r2308) - Fix: enforce server-only and/or offline commands by giving them flags in the process table. This also fixes bug "[ 1190944 ] Many commands not checked for security"
Darkvater
parents: 1739
diff changeset
   106
	uint16 join_date;                             /// Gamedate the player has joined
fbe724472bb4 (svn r2308) - Fix: enforce server-only and/or offline commands by giving them flags in the process table. This also fixes bug "[ 1190944 ] Many commands not checked for security"
Darkvater
parents: 1739
diff changeset
   107
	char unique_id[NETWORK_NAME_LENGTH];          /// Every play sends an unique id so we can indentify him
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   108
} NetworkClientInfo;
211
2954c4b30525 (svn r212) -Fix: Network-gui fixes (sign_de)
darkvater
parents:
diff changeset
   109
2954c4b30525 (svn r212) -Fix: Network-gui fixes (sign_de)
darkvater
parents:
diff changeset
   110
typedef struct NetworkGameList {
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   111
	NetworkGameInfo info;
211
2954c4b30525 (svn r212) -Fix: Network-gui fixes (sign_de)
darkvater
parents:
diff changeset
   112
	uint32 ip;
2954c4b30525 (svn r212) -Fix: Network-gui fixes (sign_de)
darkvater
parents:
diff changeset
   113
	uint16 port;
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   114
	bool online;																		// False if the server did not respond (default status)
738
b96ab9e63d22 (svn r1194) Feature: You can now add and remove servers from the server list. Those will be remembered until you delete them by pressing the Delete key.
dominik
parents: 716
diff changeset
   115
	bool manually;																	// True if the server was added manually
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   116
	struct NetworkGameList *next;
211
2954c4b30525 (svn r212) -Fix: Network-gui fixes (sign_de)
darkvater
parents:
diff changeset
   117
} NetworkGameList;
2954c4b30525 (svn r212) -Fix: Network-gui fixes (sign_de)
darkvater
parents:
diff changeset
   118
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   119
typedef enum {
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   120
	NETWORK_JOIN_STATUS_CONNECTING,
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   121
	NETWORK_JOIN_STATUS_AUTHORIZING,
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   122
	NETWORK_JOIN_STATUS_WAITING,
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   123
	NETWORK_JOIN_STATUS_DOWNLOADING,
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   124
	NETWORK_JOIN_STATUS_PROCESSING,
670
d164965bb35a (svn r1108) -Fix: [Network] Fixed problem around slow clients:
truelight
parents: 668
diff changeset
   125
	NETWORK_JOIN_STATUS_REGISTERING,
239
23958632a582 (svn r240) -Fix: desync on subsidy generation
signde
parents: 228
diff changeset
   126
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   127
	NETWORK_JOIN_STATUS_GETTING_COMPANY_INFO,
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   128
} NetworkJoinStatus;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   129
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   130
// language ids for server_lang and client_lang
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   131
typedef enum {
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   132
	NETLANG_ANY = 0,
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   133
	NETLANG_ENGLISH = 1,
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   134
	NETLANG_GERMAN = 2,
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   135
	NETLANG_FRENCH = 3,
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   136
} NetworkLanguage;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   137
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   138
VARDEF NetworkGameList *_network_game_list;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   139
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   140
VARDEF NetworkGameInfo _network_game_info;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   141
VARDEF NetworkPlayerInfo _network_player_info[MAX_PLAYERS];
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   142
VARDEF NetworkClientInfo _network_client_info[MAX_CLIENT_INFO];
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   143
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   144
VARDEF char _network_player_name[NETWORK_NAME_LENGTH];
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   145
VARDEF char _network_default_ip[NETWORK_HOSTNAME_LENGTH];
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   146
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   147
VARDEF uint16 _network_own_client_index;
602
f0afb4018788 (svn r1026) -Add: [Network] Added unique id, so in network, each client has an
truelight
parents: 600
diff changeset
   148
VARDEF char _network_unique_id[NETWORK_NAME_LENGTH]; // Our own unique ID
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   149
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   150
VARDEF uint32 _frame_counter_server; // The frame_counter of the server, if in network-mode
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   151
VARDEF uint32 _frame_counter_max; // To where we may go with our clients
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   152
2079
c9c32cf56cb9 (svn r2589) Fix: [network] Fixed static variable that wasn't initialized. Would stop the sync checking from working in some cases.
ludde
parents: 2071
diff changeset
   153
VARDEF uint32 _last_sync_frame; // Used in the server to store the last time a sync packet was sent to clients.
c9c32cf56cb9 (svn r2589) Fix: [network] Fixed static variable that wasn't initialized. Would stop the sync checking from working in some cases.
ludde
parents: 2071
diff changeset
   154
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   155
// networking settings
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   156
VARDEF uint32 _network_ip_list[MAX_INTERFACES + 1]; // Network IPs
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   157
VARDEF uint16 _network_game_count;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   158
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   159
VARDEF uint16 _network_lobby_company_count;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   160
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   161
VARDEF uint _network_server_port;
629
4bb1f0fb0109 (svn r1059) -Fix: [Console] Renamed 'set port' to 'set server_port'
truelight
parents: 627
diff changeset
   162
/* We use bind_ip and bind_ip_host, where bind_ip_host is the readable form of
4bb1f0fb0109 (svn r1059) -Fix: [Console] Renamed 'set port' to 'set server_port'
truelight
parents: 627
diff changeset
   163
    bind_ip_host, and bind_ip the numeric value, because we want a nice number
4bb1f0fb0109 (svn r1059) -Fix: [Console] Renamed 'set port' to 'set server_port'
truelight
parents: 627
diff changeset
   164
    in the openttd.cfg, but we wants to use the uint32 internally.. */
4bb1f0fb0109 (svn r1059) -Fix: [Console] Renamed 'set port' to 'set server_port'
truelight
parents: 627
diff changeset
   165
VARDEF uint32 _network_server_bind_ip;
4bb1f0fb0109 (svn r1059) -Fix: [Console] Renamed 'set port' to 'set server_port'
truelight
parents: 627
diff changeset
   166
VARDEF char _network_server_bind_ip_host[NETWORK_HOSTNAME_LENGTH];
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   167
VARDEF bool _is_network_server; // Does this client wants to be a network-server?
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   168
VARDEF char _network_server_name[NETWORK_NAME_LENGTH];
1026
02cc18821508 (svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight
parents: 1011
diff changeset
   169
VARDEF char _network_server_password[NETWORK_PASSWORD_LENGTH];
02cc18821508 (svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight
parents: 1011
diff changeset
   170
VARDEF char _network_rcon_password[NETWORK_PASSWORD_LENGTH];
02cc18821508 (svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight
parents: 1011
diff changeset
   171
1602
79f98b4b83fc (svn r2106) -Fix: improved the network-join algoritm, it is now a bit more stable
truelight
parents: 1441
diff changeset
   172
VARDEF uint16 _network_max_join_time;             //! Time a client can max take to join
79f98b4b83fc (svn r2106) -Fix: improved the network-join algoritm, it is now a bit more stable
truelight
parents: 1441
diff changeset
   173
VARDEF bool _network_pause_on_join;               //! Pause the game when a client tries to join (more chance of succeeding join)
79f98b4b83fc (svn r2106) -Fix: improved the network-join algoritm, it is now a bit more stable
truelight
parents: 1441
diff changeset
   174
1026
02cc18821508 (svn r1527) -Add: RCon (Remote Connection). A server can set:
truelight
parents: 1011
diff changeset
   175
VARDEF uint16 _redirect_console_to_client;
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   176
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   177
VARDEF uint16 _network_sync_freq;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   178
VARDEF uint8 _network_frame_freq;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   179
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   180
VARDEF uint32 _sync_seed_1, _sync_seed_2;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   181
VARDEF uint32 _sync_frame;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   182
VARDEF bool _network_first_time;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   183
// Vars needed for the join-GUI
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   184
VARDEF NetworkJoinStatus _network_join_status;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   185
VARDEF uint8 _network_join_waiting;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   186
VARDEF uint16 _network_join_kbytes;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   187
VARDEF uint16 _network_join_kbytes_total;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   188
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   189
VARDEF char _network_last_host[NETWORK_HOSTNAME_LENGTH];
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   190
VARDEF short _network_last_port;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   191
VARDEF uint32 _network_last_host_ip;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   192
VARDEF uint8 _network_reconnect;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   193
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   194
VARDEF bool _network_udp_server;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   195
VARDEF uint16 _network_udp_broadcast;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   196
764
7e1e17b7c7d4 (svn r1227) -Add: Ingame Server-list (select Internet, then Find Servers)
truelight
parents: 738
diff changeset
   197
VARDEF byte _network_lan_internet;
7e1e17b7c7d4 (svn r1227) -Add: Ingame Server-list (select Internet, then Find Servers)
truelight
parents: 738
diff changeset
   198
668
1fe298df8526 (svn r1106) -Add: [Network] Added master-server protocol and advertise to
truelight
parents: 663
diff changeset
   199
VARDEF bool _network_advertise;
1fe298df8526 (svn r1106) -Add: [Network] Added master-server protocol and advertise to
truelight
parents: 663
diff changeset
   200
VARDEF uint16 _network_last_advertise_date;
764
7e1e17b7c7d4 (svn r1227) -Add: Ingame Server-list (select Internet, then Find Servers)
truelight
parents: 738
diff changeset
   201
VARDEF uint8 _network_advertise_retries;
668
1fe298df8526 (svn r1106) -Add: [Network] Added master-server protocol and advertise to
truelight
parents: 663
diff changeset
   202
690
3afcad69d4f7 (svn r1131) -Add: [Network] Autoclean_companies (set it with 'set autoclean_companies on/off').
truelight
parents: 670
diff changeset
   203
VARDEF bool _network_autoclean_companies;
3afcad69d4f7 (svn r1131) -Add: [Network] Autoclean_companies (set it with 'set autoclean_companies on/off').
truelight
parents: 670
diff changeset
   204
VARDEF uint8 _network_autoclean_unprotected; // Remove a company after X months
3afcad69d4f7 (svn r1131) -Add: [Network] Autoclean_companies (set it with 'set autoclean_companies on/off').
truelight
parents: 670
diff changeset
   205
VARDEF uint8 _network_autoclean_protected;   // Unprotect a company after X months
3afcad69d4f7 (svn r1131) -Add: [Network] Autoclean_companies (set it with 'set autoclean_companies on/off').
truelight
parents: 670
diff changeset
   206
785
bba7b3b35dec (svn r1252) -Add: [Network] With 'set restart_game_date' you can set the date for in
truelight
parents: 774
diff changeset
   207
VARDEF uint16 _network_restart_game_date;    // If this year is reached, the server automaticly restarts
bba7b3b35dec (svn r1252) -Add: [Network] With 'set restart_game_date' you can set the date for in
truelight
parents: 774
diff changeset
   208
1329
6988419aa6f0 (svn r1833) byte -> char transition: the rest
tron
parents: 1093
diff changeset
   209
NetworkGameList *NetworkQueryServer(const char* host, unsigned short port, bool game_info);
1812
26b041a529e9 (svn r2316) - Fix: [ 1154454 ] Fix BeOS build on Trunk (myob)
Darkvater
parents: 1804
diff changeset
   210
void CSleep(int milliseconds);
774
bb9ec520a1b1 (svn r1240) -Fix: OpenTTD once again compiles if ENABLE_NETWORK is disabled.
darkvater
parents: 773
diff changeset
   211
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   212
#endif /* ENABLE_NETWORK */
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   213
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   214
// Those variables must always be registered!
774
bb9ec520a1b1 (svn r1240) -Fix: OpenTTD once again compiles if ENABLE_NETWORK is disabled.
darkvater
parents: 773
diff changeset
   215
#define MAX_SAVED_SERVERS 10
bb9ec520a1b1 (svn r1240) -Fix: OpenTTD once again compiles if ENABLE_NETWORK is disabled.
darkvater
parents: 773
diff changeset
   216
VARDEF char *_network_host_list[MAX_SAVED_SERVERS];
841
4874b9ce2765 (svn r1322) -Add: banning system (mostly tnx to guru3)
truelight
parents: 793
diff changeset
   217
#define MAX_BANS 25
4874b9ce2765 (svn r1322) -Add: banning system (mostly tnx to guru3)
truelight
parents: 793
diff changeset
   218
VARDEF char *_network_ban_list[MAX_BANS];
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   219
VARDEF bool _networking;
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   220
VARDEF bool _network_available;  // is network mode available?
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   221
VARDEF bool _network_server; // network-server is active
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   222
VARDEF bool _network_dedicated; // are we a dedicated server?
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   223
VARDEF byte _network_playas; // an id to play as..
211
2954c4b30525 (svn r212) -Fix: Network-gui fixes (sign_de)
darkvater
parents:
diff changeset
   224
1329
6988419aa6f0 (svn r1833) byte -> char transition: the rest
tron
parents: 1093
diff changeset
   225
void ParseConnectionString(const char **player, const char **port, char *connection_string);
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 239
diff changeset
   226
void NetworkUpdateClientInfo(uint16 client_index);
1329
6988419aa6f0 (svn r1833) byte -> char transition: the rest
tron
parents: 1093
diff changeset
   227
void NetworkAddServer(const char *b);
1093
4fdc46eaf423 (svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
tron
parents: 1026
diff changeset
   228
void NetworkRebuildHostList(void);
1739
4c8fb3905cbd (svn r2243) -Fix: Rework of console. Use 'help command|variable' to get help about it. You can assign variables with =, ++, --, or just new value. Console parser is now lenient towards typed spaces, and more robust in general (at least readable). Removed the 'set' command, instead implemented all such variables as 'variables'.
Darkvater
parents: 1602
diff changeset
   229
bool NetworkChangeCompanyPassword(byte argc, char *argv[]);
228
f65dec6727d9 (svn r229) -Fix: Some more const stuff fixed .(Tron)
darkvater
parents: 211
diff changeset
   230
211
2954c4b30525 (svn r212) -Fix: Network-gui fixes (sign_de)
darkvater
parents:
diff changeset
   231
#endif /* NETWORK_H */