about summary refs log tree commit diff
path: root/src/engine/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/client')
-rw-r--r--src/engine/client/ec_srvbrowse.c12
1 files changed, 12 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;