UTBrowser
Class UTBrowserServerGrid

source: e:\games\UnrealTournament\UTBrowser\Classes\UTBrowserServerGrid.uc
Core.Object
   |
   +--UWindow.UWindowBase
      |
      +--UWindow.UWindowWindow
         |
         +--UWindow.UWindowGrid
            |
            +--UBrowser.UBrowserServerGrid
               |
               +--UTBrowser.UTBrowserServerGrid
Direct Known Subclasses:None

class UTBrowserServerGrid
extends UBrowser.UBrowserServerGrid


Variables
 string ActiveText
 UWindowMessageBox AskNgStats
 string AskNgStatsText
 string AskNgStatsTitle
 UBrowserServerList ConnectToServer
 string EnabledText
 string InactiveText
 UWindowGridColumn Ver
 string VersionName
 bool bWaitingForNgStats
 UWindowGridColumn ngStats
 string ngStatsName


Function Summary
 void BeforePaint(Canvas C, float X, float Y)
 int Compare(UBrowserServerList T, UBrowserServerList B)
 void CreateColumns()
 void DrawCell(Canvas C, float X, float Y, UWindowGridColumn Column, UBrowserServerList List)
 void JoinServer(UBrowserServerList Server)
 void MessageBoxDone(UWindowMessageBox W, MessageBoxResult Result)
 void ReallyJoinServer(UBrowserServerList Server)



Source Code


00001	class UTBrowserServerGrid expands UBrowserServerGrid;
00002	
00003	var UWindowGridColumn ngStats;
00004	var UWindowGridColumn Ver;
00005	
00006	var localized string ngStatsName;
00007	var localized string VersionName;
00008	var localized string EnabledText;
00009	var UBrowserServerList ConnectToServer;
00010	var bool bWaitingForNgStats;
00011	
00012	var UWindowMessageBox AskNgStats;
00013	var localized string AskNgStatsTitle;
00014	var localized string AskNgStatsText;
00015	
00016	var localized string ActiveText;
00017	var localized string InactiveText;
00018	
00019	function CreateColumns()
00020	{
00021		Super.CreateColumns();
00022	
00023		ngStats	= AddColumn(ngStatsName, 80);
00024		Ver	= AddColumn(VersionName, 40);
00025	}
00026	
00027	function DrawCell(Canvas C, float X, float Y, UWindowGridColumn Column, UBrowserServerList List)
00028	{
00029		switch(Column)
00030		{
00031		case Ver:
00032			Column.ClipText( C, X, Y, string(List.GameVer) );
00033			break;
00034		case ngStats:
00035			if( List.GameVer >= 406 && UTBrowserServerList(List).bNGWorldStats )
00036			{
00037				if( UTBrowserServerList(List).bNGWorldStatsActive )
00038					Column.ClipText( C, X, Y, ActiveText );
00039				else
00040					Column.ClipText( C, X, Y, InactiveText );
00041			}
00042			else
00043			if(UTBrowserServerList(List).bNGWorldStatsActive)
00044				Column.ClipText( C, X, Y, EnabledText );
00045			break;
00046		default:
00047			Super.DrawCell(C, X, Y, Column, List);
00048			break;
00049		}
00050	}
00051	
00052	function int Compare(UBrowserServerList T, UBrowserServerList B)
00053	{
00054		switch(SortByColumn)
00055		{
00056		case Ver:
00057			if( T.GameVer == B.GameVer )
00058				return ByName(T, B);
00059	
00060			if( T.GameVer >= B.GameVer )
00061			{
00062				if(bSortDescending)
00063					return 1;
00064				else
00065					return -1;
00066			}
00067			else
00068			{
00069				if(bSortDescending)
00070					return -1;
00071				else
00072					return 1;
00073			}
00074			
00075			break;
00076		case ngStats:
00077			if( UTBrowserServerList(T).bNGWorldStatsActive == UTBrowserServerList(B).bNGWorldStatsActive )
00078			{
00079				if( UTBrowserServerList(T).bNGWorldStats == UTBrowserServerList(B).bNGWorldStats )
00080					return ByName(T, B);
00081	
00082				if( UTBrowserServerList(T).bNGWorldStats )
00083				{
00084					if(bSortDescending)
00085						return 1;
00086					else
00087						return -1;
00088				}
00089				else
00090				{
00091					if(bSortDescending)
00092						return -1;
00093					else
00094						return 1;
00095				}
00096			}
00097			if(UTBrowserServerList(T).bNGWorldStatsActive)
00098			{
00099				if(bSortDescending)
00100					return 1;
00101				else
00102					return -1;
00103			}
00104			else
00105			{
00106				if(bSortDescending)
00107					return -1;
00108				else
00109					return 1;
00110			}
00111	
00112			break;
00113		default:
00114			return Super.Compare(T, B);
00115			break;
00116		}
00117	}
00118	
00119	function MessageBoxDone(UWindowMessageBox W, MessageBoxResult Result)
00120	{
00121		if(W == AskNgStats)
00122		{
00123			AskNgStats = None;
00124			if(Result == MR_Cancel)
00125				return;
00126			else
00127			if(Result == MR_Yes)
00128			{
00129				ShowModal(Root.CreateWindow(class<UWindowWindow>(DynamicLoadObject("UTMenu.ngWorldSecretWindow", class'Class')), 100, 100, 200, 200, Root, True));
00130				bWaitingForNgStats = True;
00131			}
00132			else
00133			{
00134				GetPlayerOwner().ngSecretSet = True;
00135				GetPlayerOwner().SaveConfig();
00136				ReallyJoinServer(ConnectToServer);
00137			}
00138		}
00139	}
00140	
00141	function JoinServer(UBrowserServerList Server)
00142	{
00143		if(Server != None && Server.GamePort != 0) 
00144		{
00145			if(!GetPlayerOwner().ngSecretSet && (UTBrowserServerList(Server).bNGWorldStats || UTBrowserServerList(Server).bNGWorldStatsActive) )
00146			{
00147				ConnectToServer = Server;
00148				AskNgStats = MessageBox(AskNgStatsTitle, AskNgStatsText, MB_YesNoCancel, MR_Yes);
00149			}
00150			else
00151				ReallyJoinServer(Server);
00152		}
00153	}
00154	
00155	function BeforePaint(Canvas C, float X, float Y)
00156	{
00157		Super.BeforePaint(C, X, Y);
00158		if(bWaitingForNgStats && !WaitModal())
00159		{
00160			ReallyJoinServer(ConnectToServer);
00161			bWaitingForNgStats = False;
00162		}
00163	}
00164	
00165	function ReallyJoinServer(UBrowserServerList Server)
00166	{
00167		GetPlayerOwner().ClientTravel("unreal://"$Server.IP$":"$Server.GamePort$UBrowserServerListWindow(GetParent(class'UBrowserServerListWindow')).URLAppend, TRAVEL_Absolute, false);
00168		GetParent(class'UWindowFramedWindow').Close();
00169		Root.Console.CloseUWindow();
00170	}
00171	
00172	defaultproperties
00173	{
00174	     ngStatsName="ngWorldStats"
00175	     VersionName="Version"
00176	     EnabledText="Enabled"
00177	     AskNgStatsTitle="Use ngWorldStats?"
00178	     AskNgStatsText="This server has stat accumulation enabled. Your ngWorldStats password has not been set. If you set a new ngWorldStats password, you can record all of your gameplay stats (Kills, Suicides, etc) online! If you do not set a password you will opt out of stat accumulation.\n\nDo you want to set an ngWorldStats password?"
00179	     ActiveText="Active"
00180	     InactiveText="Inactive"
00181	}

End Source Code