From 6d90affce01ae2b882b2679bf5371da4a49dbc99 Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 30 May 2008 20:08:32 +0000 Subject: [PATCH] (svn r13344) -Codechange: remove some code duplication. --- src/network/network.cpp | 35 ++++++++++++----------------------- src/openttd.cpp | 2 -- 2 files changed, 12 insertions(+), 25 deletions(-) diff --git a/src/network/network.cpp b/src/network/network.cpp index b0ab7a6128..713932927d 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -877,12 +877,22 @@ static void NetworkClose() } if (_network_server) { - // We are a server, also close the listensocket + /* We are a server, also close the listensocket */ closesocket(_listensocket); _listensocket = INVALID_SOCKET; DEBUG(net, 1, "Closed listener"); - NetworkUDPCloseAll(); } + NetworkUDPCloseAll(); + + /* Free all queued commands */ + while (_local_command_queue != NULL) { + CommandPacket *p = _local_command_queue; + _local_command_queue = _local_command_queue->next; + free(p); + } + + _networking = false; + _network_server = false; } // Inits the network (cleans sockets and stuff) @@ -988,7 +998,6 @@ bool NetworkClientConnectGame(const char *host, uint16 port) _settings_client.network.last_port = port; NetworkDisconnect(); - NetworkUDPCloseAll(); NetworkInitialize(); // Try to connect @@ -1114,16 +1123,6 @@ void NetworkReboot() } NetworkClose(); - - // Free all queued commands - while (_local_command_queue != NULL) { - CommandPacket *p = _local_command_queue; - _local_command_queue = _local_command_queue->next; - free(p); - } - - _networking = false; - _network_server = false; } // We want to disconnect from the host/clients @@ -1142,16 +1141,6 @@ void NetworkDisconnect() DeleteWindowById(WC_NETWORK_STATUS_WINDOW, 0); NetworkClose(); - - // Free all queued commands - while (_local_command_queue != NULL) { - CommandPacket *p = _local_command_queue; - _local_command_queue = _local_command_queue->next; - free(p); - } - - _networking = false; - _network_server = false; } // Receives something from the network diff --git a/src/openttd.cpp b/src/openttd.cpp index 2e5e4a6747..5cf5fb6ea3 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -810,10 +810,8 @@ void SwitchMode(int new_mode) if (_networking) { if (_network_server && (new_mode == SM_LOAD || new_mode == SM_NEWGAME)) { NetworkReboot(); - NetworkUDPCloseAll(); } else { NetworkDisconnect(); - NetworkUDPCloseAll(); } }