From fe7ce749ed89a2d9825531136e37ea4967a1f66e Mon Sep 17 00:00:00 2001 From: Lee Salzman Date: Mon, 22 Sep 2008 09:46:01 +0000 Subject: [PATCH] allow restoring old server sort behavior git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@2729 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/serverbrowser.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/source/src/serverbrowser.cpp b/source/src/serverbrowser.cpp index bba64fdf..cd9cf79e 100644 --- a/source/src/serverbrowser.cpp +++ b/source/src/serverbrowser.cpp @@ -452,15 +452,28 @@ void checkpings() } } +VARP(serversort, 0, 0, 1); + int sicompare(serverinfo **ap, serverinfo **bp) { serverinfo *a = *ap, *b = *bp; if((a->protocol==PROTOCOL_VERSION) > (b->protocol==PROTOCOL_VERSION)) return -1; if((b->protocol==PROTOCOL_VERSION) > (a->protocol==PROTOCOL_VERSION)) return 1; - if(a->numplayers == 0 && b->numplayers > 0) return 1; - if(a->numplayers > 0 && b->numplayers == 0) return -1; - if(a->ping>b->ping) return 1; - if(a->pingping) return -1; + if(!a->numplayers && b->numplayers) return 1; + if(a->numplayers && !b->numplayers) return -1; + loopi(2) + { + if(serversort == i) + { + if(a->ping>b->ping) return 1; + if(a->pingping) return -1; + } + else + { + if(a->numplayers>b->numplayers) return 1; + if(a->numplayersnumplayers) return -1; + } + } int namecmp = strcmp(a->name, b->name); if(namecmp) return namecmp; if(a->port>b->port) return 1;