src/network/core/game.h
author celestar
Thu, 11 Jan 2007 13:16:26 +0000
branchcustombridgeheads
changeset 5648 1608018c5ff2
parent 5643 3778051e8095
child 6050 77bd608748c8
permissions -rw-r--r--
(svn r8059) [cbh] - Sync with r7788:8032 from trunk
5642
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
     1
/* $Id$ */
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
     2
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
     3
#ifndef NETWORK_CORE_GAME_H
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
     4
#define NETWORK_CORE_GAME_H
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
     5
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
     6
#ifdef ENABLE_NETWORK
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
     7
5648
1608018c5ff2 (svn r8059) [cbh] - Sync with r7788:8032 from trunk
celestar
parents: 5643
diff changeset
     8
#include "config.h"
1608018c5ff2 (svn r8059) [cbh] - Sync with r7788:8032 from trunk
celestar
parents: 5643
diff changeset
     9
#include "../../date.h"
1608018c5ff2 (svn r8059) [cbh] - Sync with r7788:8032 from trunk
celestar
parents: 5643
diff changeset
    10
#include "../../newgrf_config.h"
1608018c5ff2 (svn r8059) [cbh] - Sync with r7788:8032 from trunk
celestar
parents: 5643
diff changeset
    11
5642
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    12
/**
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    13
 * @file game.h Information about a game that is sent between a
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    14
 *              game server, game client and masterserver.
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    15
 */
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    16
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    17
/**
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    18
 * This is the struct used by both client and server
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    19
 * some fields will be empty on the client (like game_password) by default
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    20
 * and only filled with data a player enters.
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    21
 */
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    22
typedef struct NetworkGameInfo {
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    23
	byte game_info_version;                         ///< Version of the game info
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    24
	char server_name[NETWORK_NAME_LENGTH];          ///< Server name
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    25
	char hostname[NETWORK_HOSTNAME_LENGTH];         ///< Hostname of the server (if any)
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    26
	char server_revision[NETWORK_REVISION_LENGTH];  ///< The version number the server is using (e.g.: 'r304' or 0.5.0)
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    27
	bool version_compatible;                        ///< Can we connect to this server or not? (based on server_revision)
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    28
	bool compatible;                                ///< Can we connect to this server or not? (based on server_revision _and_ grf_match
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    29
	byte server_lang;                               ///< Language of the server (we should make a nice table for this)
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    30
	byte use_password;                              ///< Is set to != 0 if it uses a password
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    31
	char server_password[NETWORK_PASSWORD_LENGTH];  ///< On the server: the game password, on the client: != "" if server has password
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    32
	byte clients_max;                               ///< Max clients allowed on server
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    33
	byte clients_on;                                ///< Current count of clients on server
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    34
	byte companies_max;                             ///< Max companies allowed on server
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    35
	byte companies_on;                              ///< How many started companies do we have
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    36
	byte spectators_max;                            ///< Max spectators allowed on server
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    37
	byte spectators_on;                             ///< How many spectators do we have?
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    38
	Date game_date;                                 ///< Current date
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    39
	Date start_date;                                ///< When the game started
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    40
	char map_name[NETWORK_NAME_LENGTH];             ///< Map which is played ["random" for a randomized map]
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    41
	uint16 map_width;                               ///< Map width
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    42
	uint16 map_height;                              ///< Map height
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    43
	byte map_set;                                   ///< Graphical set
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    44
	bool dedicated;                                 ///< Is this a dedicated server?
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    45
	char rcon_password[NETWORK_PASSWORD_LENGTH];    ///< RCon password for the server. "" if rcon is disabled
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    46
	struct GRFConfig *grfconfig;                    ///< List of NewGRF files used
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    47
} NetworkGameInfo;
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    48
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    49
#endif /* ENABLE_NETWORK */
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    50
bfa6074e2833 (svn r7789) [cbh] - Sync with r7720:7758 from trunk
celestar
parents:
diff changeset
    51
#endif /* NETWORK_CORE_GAME_H */