UMenu
Class UMenuMultiplayerMenu

source: e:\games\UnrealTournament\UMenu\Classes\UMenuMultiplayerMenu.uc
Core.Object
   |
   +--UWindow.UWindowBase
      |
      +--UWindow.UWindowWindow
         |
         +--UWindow.UWindowDialogControl
            |
            +--UWindow.UWindowListControl
               |
               +--UWindow.UWindowPulldownMenu
                  |
                  +--UMenu.UMenuMultiplayerMenu
Direct Known Subclasses:UTMultiplayerMenu

class UMenuMultiplayerMenu
extends UWindow.UWindowPulldownMenu


Variables
 string BrowserHelp
 string BrowserName
 UBrowserMainWindow BrowserWindow
 string DisconnectHelp
 string DisconnectName
 string LANHelp
 string LANName
 Reconnect, OpenLocation
 string OpenLocationHelp
 string OpenLocationName
 string PatchHelp
 string PatchName
 string ReconnectHelp
 string ReconnectName
 string StartGameClassName
 string StartHelp
 string StartName
 SuggestPlayerSetup, SuggestNetspeed
 string SuggestNetspeedText
 string SuggestNetspeedTitle
 string SuggestPlayerSetupText
 string SuggestPlayerSetupTitle
 string UBrowserClassName
 bool bOpenLAN
 bool bOpenLocation


Function Summary
 void Created()
 void ExecuteItem(UWindowPulldownMenuItem I)
 void LoadUBrowser()
 void MessageBoxDone(UWindowMessageBox W, MessageBoxResult Result)
 void NotifyAfterLevelChange()
 void NotifyBeforeLevelChange()
 void NotifyQuitUnreal()
 void ResolutionChanged(float W, float H)
 void Select(UWindowPulldownMenuItem I)
 void WindowShown()



Source Code


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	}

End Source Code