diff options
author | rubidium <rubidium@openttd.org> | 2008-06-03 08:04:35 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2008-06-03 08:04:35 +0000 |
commit | 994779e9e288f9400b57f05340c422cd11455bc6 (patch) | |
tree | f4465a975b5e0a16c9e1057ed8b9c384ae16a443 /src/network/network.cpp | |
parent | 0cf79d70d0d1b2cccec4053fd9afa500db542b7a (diff) | |
download | openttd-994779e9e288f9400b57f05340c422cd11455bc6.tar.xz |
(svn r13369) -Codechange: remove duplication of network configuration settings between NetworkSettings and NetworkGameInfo.
-Fix: failure of changing the server password during games because the password wasn't duplicated properly.
Diffstat (limited to 'src/network/network.cpp')
-rw-r--r-- | src/network/network.cpp | 52 |
1 files changed, 7 insertions, 45 deletions
diff --git a/src/network/network.cpp b/src/network/network.cpp index 713932927..9bc144cdb 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -47,7 +47,7 @@ bool _network_available; ///< is network mode available? bool _network_dedicated; ///< are we a dedicated server? bool _network_advertise; ///< is the server advertising to the master server? bool _is_network_server; ///< Does this client wants to be a network-server? -NetworkGameInfo _network_game_info; +NetworkServerGameInfo _network_game_info; NetworkPlayerInfo _network_player_info[MAX_PLAYERS]; NetworkClientInfo _network_client_info[MAX_CLIENT_INFO]; uint16 _network_own_client_index; @@ -624,7 +624,7 @@ static NetworkTCPSocketHandler *NetworkAllocClient(SOCKET s) if (_network_server) { // Can we handle a new client? if (_network_clients_connected >= MAX_CLIENTS) return NULL; - if (_network_game_info.clients_on >= _network_game_info.clients_max) return NULL; + if (_network_game_info.clients_on >= _settings_client.network.max_clients) return NULL; // Register the login client_no = _network_clients_connected++; @@ -1019,39 +1019,13 @@ static void NetworkInitGameInfo() { NetworkClientInfo *ci; - _network_game_info.clients_max = _settings_client.network.max_clients; - _network_game_info.companies_max = _settings_client.network.max_companies; - _network_game_info.spectators_max = _settings_client.network.max_spectators; - _network_game_info.server_lang = _settings_client.network.server_lang; - ttd_strlcpy(_network_game_info.server_name, _settings_client.network.server_name, sizeof(_network_game_info.server_name)); - ttd_strlcpy(_network_game_info.server_password, _settings_client.network.server_password, sizeof(_network_game_info.server_password)); - ttd_strlcpy(_network_game_info.rcon_password, _settings_client.network.rcon_password, sizeof(_network_game_info.rcon_password)); - if (StrEmpty(_network_game_info.server_name)) { - snprintf(_network_game_info.server_name, sizeof(_network_game_info.server_name), "Unnamed Server"); + if (StrEmpty(_settings_client.network.server_name)) { + snprintf(_settings_client.network.server_name, sizeof(_settings_client.network.server_name), "Unnamed Server"); } - ttd_strlcpy(_network_game_info.server_revision, _openttd_revision, sizeof(_network_game_info.server_revision)); - - // The server is a client too ;) - if (_network_dedicated) { - _network_game_info.clients_on = 0; - _network_game_info.companies_on = 0; - _network_game_info.dedicated = true; - } else { - _network_game_info.clients_on = 1; - _network_game_info.companies_on = 1; - _network_game_info.dedicated = false; - } - - _network_game_info.spectators_on = 0; - - _network_game_info.game_date = _date; + /* The server is a client too */ + _network_game_info.clients_on = _network_dedicated ? 0 : 1; _network_game_info.start_date = ConvertYMDToDate(_settings_game.game_creation.starting_year, 0, 1); - _network_game_info.map_width = MapSizeX(); - _network_game_info.map_height = MapSizeY(); - _network_game_info.map_set = _settings_game.game_creation.landscape; - - _network_game_info.use_password = !StrEmpty(_settings_client.network.server_password); // We use _network_client_info[MAX_CLIENT_INFO - 1] to store the server-data in it // The index is NETWORK_SERVER_INDEX ( = 1) @@ -1453,19 +1427,7 @@ void NetworkStartUp() /* Generate an unique id when there is none yet */ if (StrEmpty(_settings_client.network.network_id)) NetworkGenerateUniqueId(); - { - byte cl_max = _network_game_info.clients_max; - byte cp_max = _network_game_info.companies_max; - byte sp_max = _network_game_info.spectators_max; - byte s_lang = _network_game_info.server_lang; - - memset(&_network_game_info, 0, sizeof(_network_game_info)); - _network_game_info.clients_max = cl_max; - _network_game_info.companies_max = cp_max; - _network_game_info.spectators_max = sp_max; - _network_game_info.server_lang = s_lang; - } - + memset(&_network_game_info, 0, sizeof(_network_game_info)); NetworkInitialize(); DEBUG(net, 3, "[core] network online, multiplayer available"); |