diff options
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/client/ec_srvbrowse.c | 12 | ||||
| -rw-r--r-- | src/engine/e_config_variables.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/engine/client/ec_srvbrowse.c b/src/engine/client/ec_srvbrowse.c index 9fc5ec02..979b6450 100644 --- a/src/engine/client/ec_srvbrowse.c +++ b/src/engine/client/ec_srvbrowse.c @@ -158,6 +158,7 @@ static int client_serverbrowse_sorthash() i |= config.b_filter_empty<<4; i |= config.b_filter_full<<5; i |= config.b_filter_pw<<6; + i |= config.b_sort_order<<7; return i; } @@ -182,6 +183,17 @@ static void client_serverbrowse_sort() else if(config.b_sort == BROWSESORT_PROGRESSION) qsort(sorted_serverlist, num_sorted_servers, sizeof(int), client_serverbrowse_sort_compare_progression); + /* invert the list if requested */ + if(config.b_sort_order) + { + for(i = 0; i < num_sorted_servers/2; i++) + { + int temp = sorted_serverlist[i]; + sorted_serverlist[i] = sorted_serverlist[num_sorted_servers-i-1]; + sorted_serverlist[num_sorted_servers-i-1] = temp; + } + } + /* set indexes */ for(i = 0; i < num_sorted_servers; i++) serverlist[sorted_serverlist[i]]->info.sorted_index = i; diff --git a/src/engine/e_config_variables.h b/src/engine/e_config_variables.h index 1aa6b799..3aa5e8fb 100644 --- a/src/engine/e_config_variables.h +++ b/src/engine/e_config_variables.h @@ -17,6 +17,7 @@ MACRO_CONFIG_INT(b_filter_full, 0, 0, 1) MACRO_CONFIG_INT(b_filter_empty, 0, 0, 1) MACRO_CONFIG_INT(b_filter_pw, 0, 0, 1) MACRO_CONFIG_INT(b_sort, 0, 0, 256) +MACRO_CONFIG_INT(b_sort_order, 0, 0, 1) MACRO_CONFIG_INT(b_max_requests, 10, 0, 1000) MACRO_CONFIG_INT(snd_rate, 48000, 0, 0) |