Index: src/ui/ui_public.h =================================================================== --- src/ui/ui_public.h (revision 895) +++ src/ui/ui_public.h (working copy) @@ -148,7 +148,8 @@ SORT_HOST, SORT_MAP, SORT_CLIENTS, - SORT_PING + SORT_PING, + SORT_GAME, } serverSortField_t; typedef enum { Index: src/ui/ui_main.c =================================================================== --- src/ui/ui_main.c (revision 895) +++ src/ui/ui_main.c (working copy) @@ -5056,6 +5056,11 @@ return text; } } + case SORT_GAME : + { + char *type = Info_ValueForKey(info, "game"); + return type[ 0 ] ? type : "base"; + } case SORT_MAP : return Info_ValueForKey(info, "mapname"); case SORT_CLIENTS : @@ -6307,4 +6312,3 @@ } } } - Index: src/client/cl_ui.c =================================================================== --- src/client/cl_ui.c (revision 895) +++ src/client/cl_ui.c (working copy) @@ -434,6 +434,15 @@ } break; + case SORT_GAME: + { + char *game1 = server1->game, + *game2 = server2->game; + if( !game1[ 0 ] ) game1 = "base"; + if( !game2[ 0 ] ) game2 = "base"; + res = Q_stricmp( game1, game2 ); + } + break; case SORT_MAP: res = Q_stricmp( server1->mapName, server2->mapName ); break; Index: ui/joinserver.menu =================================================================== --- ui/joinserver.menu (revision 895) +++ ui/joinserver.menu (working copy) @@ -224,7 +224,7 @@ { name serverColumn group grpColumn - rect 10 130 365 232 + rect 10 130 290 232 style WINDOW_STYLE_FILLED border 1 backcolor 0 0 0 0 @@ -236,6 +236,20 @@ itemDef { + name gameColumn + group grpColumn + rect 300 130 75 232 + style WINDOW_STYLE_FILLED + border 1 + backcolor 0 0 0 0 + bordersize 1 + bordercolor .5 .5 .5 1 + visible 1 + decoration + } + + itemDef + { name mapColumn group grpColumn rect 375 130 125 232 @@ -293,11 +307,12 @@ backcolor 0.2 0.2 0.2 1 outlinecolor 0.1 0.1 0.1 0.5 visible 1 - columns 4 - 2 40 80 ITEM_ALIGN_LEFT + columns 5 + 2 40 48 ITEM_ALIGN_LEFT 375 40 20 ITEM_ALIGN_LEFT 500 5 10 ITEM_ALIGN_LEFT 560 20 20 ITEM_ALIGN_LEFT + 300 40 20 ITEM_ALIGN_LEFT doubleClick { uiScript JoinServer } } @@ -313,7 +328,7 @@ type ITEM_TYPE_BUTTON textscale .33 style WINDOW_STYLE_EMPTY - rect 10 103 365 26 + rect 10 103 290 26 textalign ITEM_ALIGN_LEFT textalignx 10 textaligny 18 @@ -335,6 +350,34 @@ itemDef { + name game + group grpTabs + type ITEM_TYPE_BUTTON + text "Game" + textscale .33 + style WINDOW_STYLE_EMPTY + rect 300 103 75 26 + textalign ITEM_ALIGN_LEFT + textalignx 10 + textaligny 18 + border 1 + bordercolor 0.5 0.5 0.5 1 + forecolor 1 1 1 1 + backcolor 0.2 0.2 0.2 1 + outlinecolor 0.1 0.1 0.1 0.5 + visible 1 + action + { + play "sound/misc/menu1.wav"; + uiScript ServerSort 4; + + setitemcolor grpColumn backcolor 0 0 0 0; + setitemcolor gameColumn backcolor 0.3 1 1 0.5 + } + } + + itemDef + { name map group grpTabs type ITEM_TYPE_BUTTON