diff options
author | rubidium <rubidium@openttd.org> | 2010-10-15 13:22:00 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-10-15 13:22:00 +0000 |
commit | 8eb07d097e2ab53f0b41a6b7af541c4937732e0b (patch) | |
tree | 6722210c26413da2881daeff5f1a8d387814c450 /src/network/network.cpp | |
parent | 951b725b8c001003b38f0b009b6d6df55cb6ec02 (diff) | |
download | openttd-8eb07d097e2ab53f0b41a6b7af541c4937732e0b.tar.xz |
(svn r20923) -Codechange: prepare creating sub-classes of NetworkClientSocket for server and client side
Diffstat (limited to 'src/network/network.cpp')
-rw-r--r-- | src/network/network.cpp | 34 |
1 files changed, 9 insertions, 25 deletions
diff --git a/src/network/network.cpp b/src/network/network.cpp index 06c46a01d..a4b42d0d8 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -43,8 +43,6 @@ bool _ddc_fastforward = true; #endif /* DEBUG_DUMP_COMMANDS */ -DECLARE_POSTFIX_INCREMENT(ClientID) - assert_compile(NetworkClientInfoPool::MAX_SIZE == NetworkClientSocketPool::MAX_SIZE); NetworkClientInfoPool _networkclientinfo_pool("NetworkClientInfo"); @@ -94,8 +92,6 @@ static SocketList _listensockets; /* The amount of clients connected */ static byte _network_clients_connected = 0; -/* The identifier counter for new clients (is never decreased) */ -static ClientID _network_client_id = CLIENT_ID_FIRST; /* Some externs / forwards */ extern void StateGameLoop(); @@ -483,31 +479,19 @@ void ParseConnectionString(const char **company, const char **port, char *connec * Used both by the server and the client */ static NetworkClientSocket *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 >= _settings_client.network.max_clients) return NULL; - - /* Register the login */ - _network_clients_connected++; + if (!_network_server) { + return new ClientNetworkGameSocketHandler(s); } - NetworkClientSocket *cs = new NetworkClientSocket(INVALID_CLIENT_ID); - cs->sock = s; - cs->last_frame = _frame_counter; - cs->last_frame_server = _frame_counter; + /* Can we handle a new client? */ + if (_network_clients_connected >= MAX_CLIENTS) return NULL; + if (_network_game_info.clients_on >= _settings_client.network.max_clients) return NULL; - if (_network_server) { - cs->client_id = _network_client_id++; - NetworkClientInfo *ci = new NetworkClientInfo(cs->client_id); - cs->SetInfo(ci); - ci->client_playas = COMPANY_INACTIVE_CLIENT; - ci->join_date = _date; - - SetWindowDirty(WC_CLIENT_LIST, 0); - } + /* Register the login */ + _network_clients_connected++; - return cs; + SetWindowDirty(WC_CLIENT_LIST, 0); + return new ServerNetworkGameSocketHandler(s); } /* Close a connection */ |