mirror of https://github.com/OpenTTD/OpenTTD
(svn r3478) - Fix: In the network game list do the default sorting on connectivity (so servers which you can join are on top) and sort on names as a second criteria on clients and connectivity.
parent
8b8ef85ccb
commit
ddfe8f608f
|
@ -131,6 +131,7 @@ static int CDECL NGameClientSorter(const void *a, const void *b)
|
||||||
int r = cmp2->info.clients_on - cmp1->info.clients_on;
|
int r = cmp2->info.clients_on - cmp1->info.clients_on;
|
||||||
|
|
||||||
if (r == 0) r = cmp1->info.clients_max - cmp2->info.clients_max;
|
if (r == 0) r = cmp1->info.clients_max - cmp2->info.clients_max;
|
||||||
|
if (r == 0) r = strcasecmp(cmp1->info.server_name, cmp2->info.server_name);
|
||||||
|
|
||||||
return (_internal_sort_order & 1) ? -r : r;
|
return (_internal_sort_order & 1) ? -r : r;
|
||||||
}
|
}
|
||||||
|
@ -145,6 +146,7 @@ static int CDECL NGameAllowedSorter(const void *a, const void *b)
|
||||||
int r = cmp2->info.compatible - cmp1->info.compatible;
|
int r = cmp2->info.compatible - cmp1->info.compatible;
|
||||||
|
|
||||||
if (r == 0) r = cmp1->info.use_password - cmp2->info.use_password;
|
if (r == 0) r = cmp1->info.use_password - cmp2->info.use_password;
|
||||||
|
if (r == 0) r = strcasecmp(cmp1->info.server_name, cmp2->info.server_name);
|
||||||
|
|
||||||
return (_internal_sort_order & 1) ? -r : r;
|
return (_internal_sort_order & 1) ? -r : r;
|
||||||
}
|
}
|
||||||
|
@ -540,20 +542,23 @@ static const WindowDesc _network_game_window_desc = {
|
||||||
|
|
||||||
void ShowNetworkGameWindow(void)
|
void ShowNetworkGameWindow(void)
|
||||||
{
|
{
|
||||||
static bool _first_time_show_network_game_window = true;
|
static bool first = true;
|
||||||
Window *w;
|
Window *w;
|
||||||
querystr_d *querystr;
|
querystr_d *querystr;
|
||||||
DeleteWindowById(WC_NETWORK_WINDOW, 0);
|
DeleteWindowById(WC_NETWORK_WINDOW, 0);
|
||||||
|
|
||||||
/* Only show once */
|
/* Only show once */
|
||||||
if (_first_time_show_network_game_window) {
|
if (first) {
|
||||||
char* const *srv;
|
char* const *srv;
|
||||||
|
|
||||||
_first_time_show_network_game_window = false;
|
first = false;
|
||||||
// add all servers from the config file to our list
|
// add all servers from the config file to our list
|
||||||
for (srv = &_network_host_list[0]; srv != endof(_network_host_list) && *srv != NULL; srv++) {
|
for (srv = &_network_host_list[0]; srv != endof(_network_host_list) && *srv != NULL; srv++) {
|
||||||
NetworkAddServer(*srv);
|
NetworkAddServer(*srv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_ng_sorting.criteria = 2; // sort default by collectivity (green-dots on top)
|
||||||
|
_ng_sorting.order = 0; // sort ascending by default
|
||||||
}
|
}
|
||||||
|
|
||||||
w = AllocateWindowDesc(&_network_game_window_desc);
|
w = AllocateWindowDesc(&_network_game_window_desc);
|
||||||
|
|
Loading…
Reference in New Issue