diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-11-08 09:11:32 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-11-08 09:11:32 +0000 |
| commit | 711aa0db763e31bd7916ea31f5f3f934e4000ab8 (patch) | |
| tree | e1686806f10c77b8fa3e8e0225d12e726de4e136 /src/engine/client/srvbrowse.c | |
| parent | 4fcab5c8f1b2d4f8405d4ef86b69d2c916184929 (diff) | |
| download | zcatch-711aa0db763e31bd7916ea31f5f3f934e4000ab8.tar.gz zcatch-711aa0db763e31bd7916ea31f5f3f934e4000ab8.zip | |
update, gui stuff, some engine stuff
Diffstat (limited to 'src/engine/client/srvbrowse.c')
| -rw-r--r-- | src/engine/client/srvbrowse.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/engine/client/srvbrowse.c b/src/engine/client/srvbrowse.c index 471fdfd6..b3ff635a 100644 --- a/src/engine/client/srvbrowse.c +++ b/src/engine/client/srvbrowse.c @@ -94,6 +94,20 @@ static int client_serverbrowse_sort_compare_ping(const void *ai, const void *bi) return a->info.latency > b->info.latency; } +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; +} + +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; +} + static int client_serverbrowse_sort_compare_numplayers(const void *ai, const void *bi) { SERVERENTRY *a = serverlist[*(const int*)ai]; @@ -139,7 +153,7 @@ static void client_serverbrowse_filter() static int client_serverbrowse_sorthash() { - int i = config.b_sort&3; + int i = config.b_sort&0xf; i |= config.b_filter_empty<<4; i |= config.b_filter_full<<5; i |= config.b_filter_pw<<6; @@ -162,6 +176,10 @@ static void client_serverbrowse_sort() qsort(sorted_serverlist, num_sorted_servers, sizeof(int), client_serverbrowse_sort_compare_map); else if(config.b_sort == BROWSESORT_NUMPLAYERS) qsort(sorted_serverlist, num_sorted_servers, sizeof(int), client_serverbrowse_sort_compare_numplayers); + else if(config.b_sort == BROWSESORT_GAMETYPE) + qsort(sorted_serverlist, num_sorted_servers, sizeof(int), client_serverbrowse_sort_compare_gametype); + else if(config.b_sort == BROWSESORT_PROGRESSION) + qsort(sorted_serverlist, num_sorted_servers, sizeof(int), client_serverbrowse_sort_compare_progression); /* set indexes */ for(i = 0; i < num_sorted_servers; i++) |