about summary refs log tree commit diff
path: root/src/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/client/ec_srvbrowse.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/engine/client/ec_srvbrowse.c b/src/engine/client/ec_srvbrowse.c
index 979b6450..d9b3f4ff 100644
--- a/src/engine/client/ec_srvbrowse.c
+++ b/src/engine/client/ec_srvbrowse.c
@@ -92,28 +92,36 @@ static int client_serverbrowse_sort_compare_ping(const void *ai, const void *bi)
 {
 	SERVERENTRY *a = serverlist[*(const int*)ai];
 	SERVERENTRY *b = serverlist[*(const int*)bi];
-	return a->info.latency > b->info.latency;
+	if(a->info.latency > b->info.latency) return 1;
+	if(a->info.latency < b->info.latency) return -1;
+	return 0;
 }
 
 static int client_serverbrowse_sort_compare_gametype(const void *ai, const void *bi)
 {
 	SERVERENTRY *a = serverlist[*(const int*)ai];
 	SERVERENTRY *b = serverlist[*(const int*)bi];
-	return a->info.game_type > b->info.game_type;
+	if(a->info.game_type > b->info.game_type) return 1;
+	if(a->info.game_type < b->info.game_type) return -1;
+	return 0;
 }
 
 static int client_serverbrowse_sort_compare_progression(const void *ai, const void *bi)
 {
 	SERVERENTRY *a = serverlist[*(const int*)ai];
 	SERVERENTRY *b = serverlist[*(const int*)bi];
-	return a->info.progression > b->info.progression;
+	if(a->info.progression > b->info.progression) return 1;
+	if(a->info.progression < b->info.progression) return -1;
+	return 0;
 }
 
 static int client_serverbrowse_sort_compare_numplayers(const void *ai, const void *bi)
 {
 	SERVERENTRY *a = serverlist[*(const int*)ai];
 	SERVERENTRY *b = serverlist[*(const int*)bi];
-	return a->info.num_players > b->info.num_players;
+	if(a->info.num_players > b->info.num_players) return 1;
+	if(a->info.num_players < b->info.num_players) return -1;
+	return 0;
 }
 
 static void client_serverbrowse_filter()