Core.Object | +--UWindow.UWindowBase | +--UWindow.UWindowWindow | +--UWindow.UWindowDialogControl | +--UWindow.UWindowListControl | +--UWindow.UWindowPulldownMenu | +--UMenu.UMenuMultiplayerMenu
string
BrowserHelp
BrowserName
UBrowserMainWindow
BrowserWindow
DisconnectHelp
DisconnectName
LANHelp
LANName
Reconnect,
OpenLocation
OpenLocationHelp
OpenLocationName
PatchHelp
PatchName
ReconnectHelp
ReconnectName
StartGameClassName
StartHelp
StartName
SuggestPlayerSetup,
SuggestNetspeed
SuggestNetspeedText
SuggestNetspeedTitle
SuggestPlayerSetupText
SuggestPlayerSetupTitle
UBrowserClassName
bool
bOpenLAN
bOpenLocation
void
Created()
ExecuteItem(UWindowPulldownMenuItem I)
LoadUBrowser()
MessageBoxDone(UWindowMessageBox W, MessageBoxResult Result)
NotifyAfterLevelChange()
NotifyBeforeLevelChange()
NotifyQuitUnreal()
ResolutionChanged(float W, float H)
Select(UWindowPulldownMenuItem I)
WindowShown()
00001 class UMenuMultiplayerMenu extends UWindowPulldownMenu; 00002 00003 var UWindowPulldownMenuItem Start, Browser, LAN, Patch, Disconnect, Reconnect, OpenLocation; 00004 var UBrowserMainWindow BrowserWindow; 00005 00006 var localized string StartName; 00007 var localized string StartHelp; 00008 var localized string BrowserName; 00009 var localized string BrowserHelp; 00010 var localized string LANName; 00011 var localized string LANHelp; 00012 var localized string OpenLocationName; 00013 var localized string OpenLocationHelp; 00014 var localized string PatchName; 00015 var localized string PatchHelp; 00016 var localized string DisconnectName; 00017 var localized string DisconnectHelp; 00018 var localized string ReconnectName; 00019 var localized string ReconnectHelp; 00020 var localized string SuggestPlayerSetupTitle; 00021 var localized string SuggestPlayerSetupText; 00022 var localized string SuggestNetspeedTitle; 00023 var localized string SuggestNetspeedText; 00024 00025 var config string UBrowserClassName; 00026 var config string StartGameClassName; 00027 00028 var UWindowMessageBox SuggestPlayerSetup, SuggestNetspeed; 00029 var bool bOpenLocation; 00030 var bool bOpenLAN; 00031 00032 function Created() 00033 { 00034 Super.Created(); 00035 00036 Browser = AddMenuItem(BrowserName, None); 00037 Start = AddMenuItem(StartName, None); 00038 LAN = AddMenuItem(LanName, None); 00039 OpenLocation = AddMenuItem(OpenLocationName, None); 00040 AddMenuItem("-", None); 00041 Disconnect = AddMenuItem(DisconnectName, None); 00042 Reconnect = AddMenuItem(ReconnectName, None); 00043 AddMenuItem("-", None); 00044 Patch = AddMenuItem(PatchName, None); 00045 } 00046 00047 function WindowShown() 00048 { 00049 Super.WindowShown(); 00050 00051 if(GetLevel().NetMode == NM_Client) 00052 { 00053 Disconnect.bDisabled = False; 00054 Reconnect.bDisabled = False; 00055 } 00056 else 00057 { 00058 Disconnect.bDisabled = True; 00059 Reconnect.bDisabled = GetLevel() != GetEntryLevel(); 00060 } 00061 } 00062 00063 function ResolutionChanged(float W, float H) 00064 { 00065 if(BrowserWindow != None) 00066 BrowserWindow.ResolutionChanged(W, H); 00067 Super.ResolutionChanged(W, H); 00068 } 00069 00070 function NotifyQuitUnreal() 00071 { 00072 if(BrowserWindow != None && !BrowserWindow.bWindowVisible) 00073 BrowserWindow.NotifyQuitUnreal(); 00074 Super.NotifyQuitUnreal(); 00075 } 00076 00077 function NotifyBeforeLevelChange() 00078 { 00079 if(BrowserWindow != None && !BrowserWindow.bWindowVisible) 00080 BrowserWindow.NotifyBeforeLevelChange(); 00081 Super.NotifyBeforeLevelChange(); 00082 } 00083 00084 function NotifyAfterLevelChange() 00085 { 00086 if(BrowserWindow != None && !BrowserWindow.bWindowVisible) 00087 BrowserWindow.NotifyAfterLevelChange(); 00088 Super.NotifyAfterLevelChange(); 00089 } 00090 00091 function Select(UWindowPulldownMenuItem I) 00092 { 00093 switch(I) 00094 { 00095 case Start: 00096 UMenuMenuBar(GetMenuBar()).SetHelp(StartHelp); 00097 break; 00098 case Browser: 00099 UMenuMenuBar(GetMenuBar()).SetHelp(BrowserHelp); 00100 break; 00101 case LAN: 00102 UMenuMenuBar(GetMenuBar()).SetHelp(LANHelp); 00103 break; 00104 case OpenLocation: 00105 UMenuMenuBar(GetMenuBar()).SetHelp(OpenLocationHelp); 00106 break; 00107 case Patch: 00108 UMenuMenuBar(GetMenuBar()).SetHelp(PatchHelp); 00109 break; 00110 case Disconnect: 00111 UMenuMenuBar(GetMenuBar()).SetHelp(DisconnectHelp); 00112 break; 00113 case Reconnect: 00114 UMenuMenuBar(GetMenuBar()).SetHelp(ReconnectHelp); 00115 break; 00116 } 00117 00118 Super.Select(I); 00119 } 00120 00121 function ExecuteItem(UWindowPulldownMenuItem I) 00122 { 00123 local class<UMenuStartGameWindow> StartGameClass; 00124 00125 switch(I) 00126 { 00127 case Start: 00128 // Create start network game dialog. 00129 StartGameClass = class<UMenuStartGameWindow>(DynamicLoadObject(StartGameClassName, class'Class')); 00130 Root.CreateWindow(StartGameClass, 100, 100, 200, 200, Self, True); 00131 break; 00132 case OpenLocation: 00133 case Browser: 00134 case LAN: 00135 bOpenLAN = (I == LAN); 00136 bOpenLocation = (I == OpenLocation); 00137 00138 if(GetPlayerOwner().PlayerReplicationInfo.PlayerName ~= "Player") 00139 SuggestPlayerSetup = MessageBox(SuggestPlayerSetupTitle, SuggestPlayerSetupText, MB_YesNo, MR_None, MR_None); 00140 else 00141 if(!class'UMenuNetworkClientWindow'.default.bShownWindow && !bOpenLAN) 00142 SuggestNetspeed = MessageBox(SuggestNetspeedTitle, SuggestNetspeedText, MB_YesNo, MR_None, MR_None); 00143 else 00144 LoadUBrowser(); 00145 break; 00146 case Patch: 00147 GetPlayerOwner().ConsoleCommand("start http://unreal.epicgames.com/"); 00148 break; 00149 case Disconnect: 00150 GetPlayerOwner().ConsoleCommand("disconnect"); 00151 Root.Console.CloseUWindow(); 00152 break; 00153 case Reconnect: 00154 if(GetLevel().NetMode == NM_Client) 00155 GetPlayerOwner().ConsoleCommand("disconnect"); 00156 GetPlayerOwner().ConsoleCommand("reconnect"); 00157 Root.Console.CloseUWindow(); 00158 break; 00159 } 00160 00161 Super.ExecuteItem(I); 00162 } 00163 00164 function MessageBoxDone(UWindowMessageBox W, MessageBoxResult Result) 00165 { 00166 switch(W) 00167 { 00168 case SuggestPlayerSetup: 00169 switch(Result) 00170 { 00171 case MR_Yes: 00172 UMenuMenuBar(GetMenuBar()).Options.PlayerSetup(); 00173 break; 00174 case MR_No: 00175 LoadUBrowser(); 00176 break; 00177 } 00178 break; 00179 case SuggestNetspeed: 00180 switch(Result) 00181 { 00182 case MR_Yes: 00183 UMenuMenuBar(GetMenuBar()).Options.ShowPreferences(True); 00184 break; 00185 case MR_No: 00186 LoadUBrowser(); 00187 break; 00188 } 00189 break; 00190 } 00191 } 00192 00193 function LoadUBrowser() 00194 { 00195 local class<UBrowserMainWindow> UBrowserClass; 00196 00197 if(BrowserWindow == None) 00198 { 00199 UBrowserClass = class<UBrowserMainWindow>(DynamicLoadObject(UBrowserClassName, class'Class')); 00200 BrowserWindow = UBrowserMainWindow(Root.CreateWindow(UBrowserClass, 50, 30, 500, 300)); 00201 } 00202 else 00203 { 00204 BrowserWindow.ShowWindow(); 00205 BrowserWindow.BringToFront(); 00206 } 00207 if(bOpenLocation) 00208 BrowserWindow.ShowOpenWindow(); 00209 00210 if(bOpenLAN) 00211 BrowserWindow.SelectLAN(); 00212 else 00213 BrowserWindow.SelectInternet(); 00214 00215 bOpenLocation = False; 00216 } 00217 00218 defaultproperties 00219 { 00220 StartName="&Start New Multiplayer Game" 00221 StartHelp="Start your own network game which others can join." 00222 BrowserName="&Find Internet Games" 00223 BrowserHelp="Search for games currently in progress on the Internet." 00224 LANName="Find &LAN Games" 00225 LANHelp="Search for games of your local LAN." 00226 OpenLocationName="Open &Location" 00227 OpenLocationHelp="Connect to a server using its IP address or unreal:// URL." 00228 PatchName="Download Latest &Update" 00229 PatchHelp="Find the latest update to Unreal Tournament on the web!" 00230 DisconnectName="&Disconnect from Server" 00231 DisconnectHelp="Disconnect from the current server." 00232 ReconnectName="&Reconnect to Server" 00233 ReconnectHelp="Attempt to reconnect to the last server you were connected to." 00234 SuggestPlayerSetupTitle="Check Player Name" 00235 SuggestPlayerSetupText="Your name is currently set to Player. It is recommended that you go to Player Setup and give yourself another name before playing a multiplayer game.\n\nWould you like to go to Player Setup instead?" 00236 SuggestNetspeedTitle="Check Internet Speed" 00237 SuggestNetspeedText="You haven't yet configured the type of Internet connection you will be playing with. It is recommended that you go to the Network Settings screen to ensure you have the best online gaming experience.\n\nWould you like to go to Network Settings instead?" 00238 UBrowserClassName="UBrowser.UBrowserMainWindow" 00239 StartGameClassName="UMenu.UMenuStartGameWindow" 00240 }