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_server.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_server.cpp')
-rw-r--r-- | src/network/network_server.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index 95b65b3f4..d11051ea5 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -30,12 +30,40 @@ #include "../company_gui.h" #include "../window_func.h" #include "../roadveh.h" +#include "../order_backup.h" #include "../rev.h" #include "table/strings.h" /* This file handles all the server-commands */ +DECLARE_POSTFIX_INCREMENT(ClientID) +/** The identifier counter for new clients (is never decreased) */ +static ClientID _network_client_id = CLIENT_ID_FIRST; + +/** + * Create a new socket for the server side of the game connection. + * @param s The socket to connect with. + */ +ServerNetworkGameSocketHandler::ServerNetworkGameSocketHandler(SOCKET s) : NetworkGameSocketHandler(s) +{ + this->client_id = _network_client_id++; + NetworkClientInfo *ci = new NetworkClientInfo(this->client_id); + this->SetInfo(ci); + ci->client_playas = COMPANY_INACTIVE_CLIENT; + ci->join_date = _date; +} + +/** + * Clear everything related to this client. + */ +ServerNetworkGameSocketHandler::~ServerNetworkGameSocketHandler() +{ + if (_redirect_console_to_client == this->client_id) _redirect_console_to_client = INVALID_CLIENT_ID; + OrderBackup::ResetUser(this->client_id); +} + + static void NetworkHandleCommandQueue(NetworkClientSocket *cs); /*********** |