Changeset - r9429:9bb0dfa4c67f
[Not reviewed]
master
0 2 0
rubidium - 16 years ago 2008-05-30 20:08:32
rubidium@openttd.org
(svn r13344) -Codechange: remove some code duplication.
2 files changed with 12 insertions and 25 deletions:
0 comments (0 inline, 0 general)
src/network/network.cpp
Show inline comments
 
@@ -874,18 +874,28 @@ static void NetworkClose()
 
			cs->Send_Packets();
 
		}
 
		NetworkCloseClient(cs);
 
	}
 

	
 
	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)
 
static void NetworkInitialize()
 
{
 
	NetworkTCPSocketHandler *cs;
 
@@ -985,13 +995,12 @@ bool NetworkClientConnectGame(const char
 
	if (port == 0) return false;
 

	
 
	ttd_strlcpy(_settings_client.network.last_host, host, sizeof(_settings_client.network.last_host));
 
	_settings_client.network.last_port = port;
 

	
 
	NetworkDisconnect();
 
	NetworkUDPCloseAll();
 
	NetworkInitialize();
 

	
 
	// Try to connect
 
	_networking = NetworkConnect(host, port);
 

	
 
	// We are connected
 
@@ -1111,22 +1120,12 @@ void NetworkReboot()
 
			SEND_COMMAND(PACKET_SERVER_NEWGAME)(cs);
 
			cs->Send_Packets();
 
		}
 
	}
 

	
 
	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
 
void NetworkDisconnect()
 
{
 
	if (_network_server) {
 
@@ -1139,22 +1138,12 @@ void NetworkDisconnect()
 

	
 
	if (_network_advertise) NetworkUDPRemoveAdvertise();
 

	
 
	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
 
static bool NetworkReceive()
 
{
 
	NetworkTCPSocketHandler *cs;
src/openttd.cpp
Show inline comments
 
@@ -807,16 +807,14 @@ void SwitchMode(int new_mode)
 
	/* If we are saving something, the network stays in his current state */
 
	if (new_mode != SM_SAVE) {
 
		/* If the network is active, make it not-active */
 
		if (_networking) {
 
			if (_network_server && (new_mode == SM_LOAD || new_mode == SM_NEWGAME)) {
 
				NetworkReboot();
 
				NetworkUDPCloseAll();
 
			} else {
 
				NetworkDisconnect();
 
				NetworkUDPCloseAll();
 
			}
 
		}
 

	
 
		/* If we are a server, we restart the server */
 
		if (_is_network_server) {
 
			/* But not if we are going to the menu */
0 comments (0 inline, 0 general)