about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorJohan Althoff <teetow@gmail.com>2007-12-18 21:26:15 +0000
committerJohan Althoff <teetow@gmail.com>2007-12-18 21:26:15 +0000
commit2848006ee22d254ac48de16e3384f366a68c99a5 (patch)
treeb6933dc99e122d5b2ec8b11184758a45a62e191a /src
parent5abbc0bce7ce376f6a63629aaaf2ee2515d20652 (diff)
downloadzcatch-2848006ee22d254ac48de16e3384f366a68c99a5.tar.gz
zcatch-2848006ee22d254ac48de16e3384f366a68c99a5.zip
fixed server browser sorting on win32. bizar implementation of qsort on win32.
Diffstat (limited to 'src')
-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()