From 3b0813412b5ae7eda139de40211bbbe0e803f2d7 Mon Sep 17 00:00:00 2001 From: aurhat Date: Sat, 21 May 2016 11:41:59 +0200 Subject: [PATCH] Show on serverbrowser number of all players on the servers --- config/menus_multiplayer.cfg | 1 + source/src/serverbrowser.cpp | 32 +++++++++++++++++++------------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/config/menus_multiplayer.cfg b/config/menus_multiplayer.cfg index d3470248..008f7b3f 100644 --- a/config/menus_multiplayer.cfg +++ b/config/menus_multiplayer.cfg @@ -166,6 +166,7 @@ menuitemcheckbox [F7: Only show good servers:] "$showonlygoodservers" [ showo menuitemcheckbox [F8: Show minutes remaining:] "$showminremain" [ showminremain $arg1 ] menuitemcheckbox [Sort official maps ontop:] "$serversortpreferofficial" [ serversortpreferofficial $arg1 ] menuitemcheckbox [Use gamemode acronyms:] "$modeacronyms" [ modeacronyms $arg1 ] +menuitemcheckbox [Show number of all players on the servers:] "$showallplayersnumber" [ showallplayersnumber $arg1 ] menuitemslider "Favourites tag column:\t" 0 2 "$serverbrowserhidefavtag" 1 ["Show always" "Show when used" "Hide always"] [ serverbrowserhidefavtag $arg1 ] menuitemslider "Server IP & port:\t\t" 0 2 "$serverbrowserhideip" 1 [Show "Show in grey" Hide] [ serverbrowserhideip $arg1 ] menuitemslider "Sort servers by:\t\t" 0 7 "$serversort" 1 [Ping "Number of players" "Max players" "Minutes remaining" "Map name" Gamemode "IP address" "Server description"] [ serversort $arg1 ] diff --git a/source/src/serverbrowser.cpp b/source/src/serverbrowser.cpp index 86def1da..cb8c51af 100644 --- a/source/src/serverbrowser.cpp +++ b/source/src/serverbrowser.cpp @@ -645,6 +645,7 @@ VARP(serversortdir, 0, 0, 1); VARP(showonlygoodservers, 0, 0, 1); VAR(shownamesinbrowser, 0, 0, 1); VARP(showminremain, 0, 0, 1); +VARP(showallplayersnumber, 0, 1, 1); VARP(serversortpreferofficial, 0, 1, 1); void serversortprepare() @@ -1034,24 +1035,12 @@ void refreshservers(void *menu, bool init) servers.sort(sicompare); if(menu) { - static const char *titles[NUMSERVSORT] = - { - "%s\fs\f0ping\fr\tplr\tserver%s%s", // 0: ping - "%sping\t\fs\f0plr\fr\tserver%s%s", // 1: player number - "%sping\tplr\tserver (\fs\f0max players\fr)%s%s", // 2: maxplayers - "%sping\tplr\fs\f0\fr\tserver (\fs\f0minutes remaining\fr)%s%s", // 3: minutes remaining - "%sping\tplr\tserver (\fs\f0map\fr)%s%s", // 4: map - "%sping\tplr\tserver (\fs\f0game mode\fr)%s%s", // 5: mode - "%sping\tplr\tserver (\fs\f0IP\fr)%s%s", // 6: IP - "%sping\tplr\tserver (\fs\f0description\fr)%s%s" // 7: description - }; bool showmr = showminremain || serversort == SBS_MINREM; - formatstring(title)(titles[serversort], showfavtag ? "fav\t" : "", issearch ? " search results for \f3" : " (F1: Help/Settings)", issearch ? cursearch : ""); - menutitle(menu, title); menureset(menu); menuheader(menu, NULL, NULL); string text; int curnl = 0; + int allplayers = 0; bool sbconnectexists = identexists("sbconnect"); loopv(servers) { @@ -1146,7 +1135,24 @@ void refreshservers(void *menu, bool init) } } si.menuline_to = ((gmenu *)menu)->items.length(); + if(!(showonlyfavourites > 0 && (servers[i]->favcat != showonlyfavourites - 1))) allplayers += servers[i]->numplayers; } + + static const char *titles[NUMSERVSORT] = + { + "%s\fs\f0ping\fr\t%s plr\tserver%s%s", // 0: ping + "%sping\t\fs\f0%s plr\fr\tserver%s%s", // 1: player number + "%sping\t%s plr\tserver (\fs\f0max players\fr)%s%s", // 2: maxplayers + "%sping\t%s plr\fs\f0\fr\tserver (\fs\f0minutes remaining\fr)%s%s", // 3: minutes remaining + "%sping\t%s plr\tserver (\fs\f0map\fr)%s%s", // 4: map + "%sping\t%s plr\tserver (\fs\f0game mode\fr)%s%s", // 5: mode + "%sping\t%s plr\tserver (\fs\f0IP\fr)%s%s", // 6: IP + "%sping\t%s plr\tserver (\fs\f0description\fr)%s%s" // 7: description + }; + defformatstring(allplrs)("%d", allplayers); + formatstring(title)(titles[serversort], showfavtag ? "fav\t" : "", !issearch && showallplayersnumber ? allplrs : "", issearch ? " search results for \f3" : " (F1: Help/Settings)", issearch ? cursearch : ""); + menutitle(menu, title); + static string notfoundmsg, headermsg; notfoundmsg[0] = '\0'; if(issearch)