Core.Object | +--UWindow.UWindowBase | +--UWindow.UWindowWindow | +--UWindow.UWindowGrid | +--UBrowser.UBrowserServerGrid | +--UTBrowser.UTBrowserServerGrid
string
ActiveText
UWindowMessageBox
AskNgStats
AskNgStatsText
AskNgStatsTitle
UBrowserServerList
ConnectToServer
EnabledText
InactiveText
UWindowGridColumn
Ver
VersionName
bool
bWaitingForNgStats
ngStats
ngStatsName
void
BeforePaint(Canvas C, float X, float Y)
int
Compare(UBrowserServerList T, UBrowserServerList B)
CreateColumns()
DrawCell(Canvas C, float X, float Y, UWindowGridColumn Column, UBrowserServerList List)
JoinServer(UBrowserServerList Server)
MessageBoxDone(UWindowMessageBox W, MessageBoxResult Result)
ReallyJoinServer(UBrowserServerList Server)
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 }