Changeset - r11677:627f7f0cc1a2
[Not reviewed]
master
0 2 0
rubidium - 16 years ago 2009-04-15 20:37:00
rubidium@openttd.org
(svn r16065) -Fix: don't readd (and resolve) the last joined server each time the window gets repainted
2 files changed with 8 insertions and 6 deletions:
0 comments (0 inline, 0 general)
src/network/core/address.h
Show inline comments
 
@@ -176,13 +176,13 @@ public:
 

	
 
	/**
 
	 * Compare the address of this class with the address of another.
 
	 * @param address the other address.
 
	 * @return < 0 if address is less, 0 if equal and > 0 if address is more
 
	 */
 
	int CompareTo(NetworkAddress address)
 
	int CompareTo(NetworkAddress &address)
 
	{
 
		int r = this->GetAddressLength() - address.GetAddressLength();
 
		if (r == 0) r = this->address.ss_family - address.address.ss_family;
 
		if (r == 0) r = memcmp(&this->address, &address.address, this->address_length);
 
		if (r == 0) r = this->GetPort() - address.GetPort();
 
		return r;
 
@@ -190,32 +190,32 @@ public:
 

	
 
	/**
 
	 * Compare the address of this class with the address of another.
 
	 * @param address the other address.
 
	 * @return true if both match.
 
	 */
 
	bool operator == (NetworkAddress address)
 
	bool operator == (NetworkAddress &address)
 
	{
 
		return this->CompareTo(address) == 0;
 
	}
 

	
 
	/**
 
	 * Compare the address of this class with the address of another.
 
	 * @param address the other address.
 
	 * @return true if both match.
 
	 */
 
	bool operator == (NetworkAddress address) const
 
	bool operator == (NetworkAddress &address) const
 
	{
 
		return const_cast<NetworkAddress*>(this)->CompareTo(address) == 0;
 
	}
 

	
 
	/**
 
	 * Compare the address of this class with the address of another.
 
	 * @param address the other address.
 
	 */
 
	bool operator < (NetworkAddress address)
 
	bool operator < (NetworkAddress &address)
 
	{
 
		return this->CompareTo(address) < 0;
 
	}
 

	
 
	/**
 
	 * Connect to the given address.
src/network/network_gui.cpp
Show inline comments
 
@@ -119,12 +119,13 @@ protected:
 

	
 
	/* Constants for sorting servers */
 
	static GUIGameServerList::SortFunction * const sorter_funcs[];
 

	
 
	byte field;                  ///< selected text-field
 
	NetworkGameList *server;     ///< selected server
 
	NetworkGameList *last_joined; ///< the last joined server
 
	GUIGameServerList servers;   ///< list with game servers.
 
	ServerListPosition list_pos; ///< position of the selected server
 

	
 
	/**
 
	 * (Re)build the network game list as its amount has changed because
 
	 * an item has been added or deleted for example
 
@@ -334,12 +335,14 @@ public:
 
		this->resize.step_height = NET_PRC__SIZE_OF_ROW;
 

	
 
		this->field = NGWW_CLIENT;
 
		this->server = NULL;
 
		this->list_pos = SLP_INVALID;
 

	
 
		this->last_joined = NetworkGameListAddItem(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port));
 

	
 
		this->servers.SetListing(this->last_sorting);
 
		this->servers.SetSortFuncs(this->sorter_funcs);
 
		this->servers.ForceRebuild();
 
		this->SortNetworkGameList();
 

	
 
		this->FindWindowPlacementAndResize(desc);
 
@@ -400,15 +403,14 @@ public:
 
		for (int i = this->vscroll.pos; i < max; ++i) {
 
			const NetworkGameList *ngl = this->servers[i];
 
			this->DrawServerLine(ngl, y, ngl == sel);
 
			y += NET_PRC__SIZE_OF_ROW;
 
		}
 

	
 
		const NetworkGameList *last_joined = NetworkGameListAddItem(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port));
 
		/* Draw the last joined server, if any */
 
		if (last_joined != NULL) this->DrawServerLine(last_joined, y = this->widget[NGWW_LASTJOINED].top + 3, last_joined == sel);
 
		if (this->last_joined != NULL) this->DrawServerLine(this->last_joined, y = this->widget[NGWW_LASTJOINED].top + 3, this->last_joined == sel);
 

	
 
		/* Draw the right menu */
 
		GfxFillRect(this->widget[NGWW_DETAILS].left + 1, 43, this->widget[NGWW_DETAILS].right - 1, 92, 157);
 
		if (sel == NULL) {
 
			DrawString(this->widget[NGWW_DETAILS].left + 1, this->widget[NGWW_DETAILS].right - 1, 58, STR_NETWORK_GAME_INFO, TC_FROMSTRING, SA_CENTER);
 
		} else if (!sel->online) {
0 comments (0 inline, 0 general)