diff options
Diffstat (limited to 'network/core/game.h')
-rw-r--r-- | network/core/game.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/network/core/game.h b/network/core/game.h new file mode 100644 index 000000000..71268f7d2 --- /dev/null +++ b/network/core/game.h @@ -0,0 +1,47 @@ +/* $Id$ */ + +#ifndef NETWORK_CORE_GAME_H +#define NETWORK_CORE_GAME_H + +#ifdef ENABLE_NETWORK + +/** + * @file game.h Information about a game that is sent between a + * game server, game client and masterserver. + */ + +/** + * This is the struct used by both client and server + * some fields will be empty on the client (like game_password) by default + * and only filled with data a player enters. + */ +typedef struct NetworkGameInfo { + byte game_info_version; ///< Version of the game info + char server_name[NETWORK_NAME_LENGTH]; ///< Server name + char hostname[NETWORK_HOSTNAME_LENGTH]; ///< Hostname of the server (if any) + char server_revision[NETWORK_REVISION_LENGTH]; ///< The version number the server is using (e.g.: 'r304' or 0.5.0) + bool version_compatible; ///< Can we connect to this server or not? (based on server_revision) + bool compatible; ///< Can we connect to this server or not? (based on server_revision _and_ grf_match + byte server_lang; ///< Language of the server (we should make a nice table for this) + byte use_password; ///< Is set to != 0 if it uses a password + char server_password[NETWORK_PASSWORD_LENGTH]; ///< On the server: the game password, on the client: != "" if server has password + byte clients_max; ///< Max clients allowed on server + byte clients_on; ///< Current count of clients on server + byte companies_max; ///< Max companies allowed on server + byte companies_on; ///< How many started companies do we have + byte spectators_max; ///< Max spectators allowed on server + byte spectators_on; ///< How many spectators do we have? + Date game_date; ///< Current date + Date start_date; ///< When the game started + char map_name[NETWORK_NAME_LENGTH]; ///< Map which is played ["random" for a randomized map] + uint16 map_width; ///< Map width + uint16 map_height; ///< Map height + byte map_set; ///< Graphical set + bool dedicated; ///< Is this a dedicated server? + char rcon_password[NETWORK_PASSWORD_LENGTH]; ///< RCon password for the server. "" if rcon is disabled + struct GRFConfig *grfconfig; ///< List of NewGRF files used +} NetworkGameInfo; + +#endif /* ENABLE_NETWORK */ + +#endif /* NETWORK_CORE_GAME_H */ |