UnrealShare
Class UnrealJoinGameMenu

source: e:\games\UnrealTournament\UnrealShare\Classes\UnrealJoinGameMenu.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Menu
         |
         +--UnrealShare.UnrealMenu
            |
            +--UnrealShare.UnrealLongMenu
               |
               +--UnrealShare.UnrealJoinGameMenu
Direct Known Subclasses:None

class UnrealJoinGameMenu
extends UnrealShare.UnrealLongMenu

//============================================================================= // UnrealJoinGameMenu //=============================================================================
Variables
 string FastInternetOption
 string InternetOption
 string LANOption
 string LastServer
 string OldLastServer


Function Summary
 void DrawMenu(Canvas Canvas)
 void PostBeginPlay()
 bool ProcessLeft()
 void ProcessMenuEscape()
 void ProcessMenuInput(string InputString)
 void ProcessMenuUpdate(string InputString)
 bool ProcessRight()
 bool ProcessSelection()
 void SaveConfigs()
 int StepSize()



Source Code


00001	//=============================================================================
00002	// UnrealJoinGameMenu
00003	//=============================================================================
00004	class UnrealJoinGameMenu extends UnrealLongMenu;
00005	
00006	var string LastServer;
00007	var string OldLastServer;
00008	var localized string InternetOption;
00009	var localized string FastInternetOption;
00010	var localized string LANOption;
00011	
00012	function PostBeginPlay()
00013	{
00014		Super.PostBeginPlay();
00015		OldLastServer = LastServer;
00016	} 
00017	
00018	function ProcessMenuInput( coerce string InputString )
00019	{
00020		local UnrealMeshMenu ChildMenu;
00021	
00022		if ( selection == 3 )
00023		{
00024			LastServer = InputString;
00025			SaveConfigs();
00026			ChildMenu = spawn(class'UnrealMeshMenu', owner);
00027			if ( ChildMenu != None )
00028			{
00029				ChildMenu.StartMap = LastServer;
00030				HUD(Owner).MainMenu = ChildMenu;
00031				ChildMenu.ParentMenu = self;
00032				ChildMenu.PlayerOwner = PlayerOwner;
00033			}
00034		}
00035	}
00036	
00037	function ProcessMenuEscape()
00038	{
00039		if ( selection == 3 )
00040			LastServer = OldLastServer;
00041	}
00042	
00043	function ProcessMenuUpdate( coerce string InputString )
00044	{
00045		if ( selection == 3 )
00046			LastServer = (InputString$"_");
00047	}
00048	
00049	function int StepSize()
00050	{
00051		if ( PlayerOwner.Player.CurrentNetSpeed < 5000 )
00052			return 100;
00053		else if ( PlayerOwner.Player.CurrentNetSpeed < 10000 )
00054			return 500;
00055		else
00056			return 1000;
00057	}
00058	 
00059	function bool ProcessLeft()
00060	{
00061		local int NewSpeed;
00062	
00063		if ( Selection == 4 )
00064		{
00065			if ( PlayerOwner.Player.CurrentNetSpeed <= 3000 )
00066				NewSpeed = 20000;
00067			else if ( PlayerOwner.Player.CurrentNetSpeed < 12500 )
00068				NewSpeed = 2600;
00069			else
00070				NewSpeed = 5000;
00071	
00072			PlayerOwner.ConsoleCommand("NETSPEED "$NewSpeed);
00073		}
00074		else
00075			ProcessRight();
00076	
00077		return true;
00078	}
00079	
00080	function bool ProcessRight()
00081	{
00082		local int NewSpeed;
00083	
00084		if ( Selection == 3 )
00085		{
00086			LastServer = "_";
00087			PlayerOwner.Player.Console.GotoState('MenuTyping');
00088		}
00089		else if ( Selection == 4 )
00090		{
00091			if ( PlayerOwner.Player.CurrentNetSpeed <= 3000 )
00092				NewSpeed = 5000;
00093			else if ( PlayerOwner.Player.CurrentNetSpeed < 12500 )
00094				NewSpeed = 20000;
00095			else
00096				NewSpeed = 2600;
00097	
00098			PlayerOwner.ConsoleCommand("NETSPEED "$NewSpeed);
00099		}
00100	
00101		return true;
00102	}
00103	
00104	function bool ProcessSelection()
00105	{
00106		local Menu ChildMenu;
00107		local class<Menu> ListenMenuClass;
00108	
00109		if ( Selection == 3 )
00110		{
00111			LastServer = "_";
00112			PlayerOwner.Player.Console.GotoState('MenuTyping');
00113		}
00114		else if ( Selection == 1 )
00115		{
00116			SaveConfigs();
00117			ListenMenuClass = class<Menu>(DynamicLoadObject("UnrealShare.UnrealListenMenu", class'Class'));
00118			ChildMenu = spawn(ListenMenuClass, owner);
00119		}
00120		else if ( Selection == 2 )
00121		{
00122			SaveConfigs();
00123			ChildMenu = spawn(class'UnrealFavoritesMenu', owner);
00124		}
00125		else if ( Selection == 5 )
00126		{
00127			PlayerOwner.ConsoleCommand("GSPYLITE");// PlayerOwner.ConsoleCommand("start http://www.unreal.com/serverlist");
00128		}
00129		if ( ChildMenu != None )
00130		{
00131			HUD(Owner).MainMenu = ChildMenu;
00132			ChildMenu.ParentMenu = self;
00133			ChildMenu.PlayerOwner = PlayerOwner;
00134		}
00135		return true;
00136	}
00137	
00138	function SaveConfigs()
00139	{
00140		PlayerOwner.SaveConfig();
00141		//PlayerOwner.PlayerReplicationInfo.SaveConfig();
00142		SaveConfig();
00143	}
00144	
00145	function DrawMenu(canvas Canvas)
00146	{
00147		local int StartX, StartY, Spacing;
00148		
00149		DrawBackGround(Canvas, false);	
00150		DrawTitle(Canvas);
00151	
00152		Spacing = Clamp(0.06 * Canvas.ClipY, 11, 32);
00153		StartX = Max(12, 0.5 * Canvas.ClipX - 120);
00154		StartY = Max(32, 0.5 * (Canvas.ClipY - 3 * Spacing - 128));
00155	
00156		DrawList(Canvas, false, Spacing, StartX, StartY); 
00157	
00158		Canvas.Font = Canvas.MedFont;
00159		SetFontBrightness( Canvas, (Selection == 3) );
00160		Canvas.SetPos(StartX + 100, StartY + 2 * Spacing );	
00161		Canvas.DrawText(LastServer, false);
00162		Canvas.DrawColor = Canvas.Default.DrawColor;
00163	
00164		SetFontBrightness( Canvas, (Selection == 4) );
00165		Canvas.SetPos(StartX + 100, StartY + 3 * Spacing );	
00166		if ( PlayerOwner.Player.CurrentNetSpeed <= 3000 )
00167			Canvas.DrawText(InternetOption, false);
00168		else if ( PlayerOwner.Player.CurrentNetSpeed < 12500 )
00169			Canvas.DrawText(FastInternetOption, false);
00170		else
00171			Canvas.DrawText(LANOption, false);
00172	
00173		Canvas.DrawColor = Canvas.Default.DrawColor;
00174	
00175		DrawHelpPanel(Canvas, StartY + MenuLength * Spacing + 8, 228);
00176	}
00177	
00178	defaultproperties
00179	{
00180	     InternetOption=" Internet (28.8 - 56K)"
00181	     FastInternetOption=" Fast Internet (ISDN, cable modem)"
00182	     LANOption=" LAN"
00183	     MenuLength=5
00184	     HelpMessage(1)="Listen for local servers"
00185	     HelpMessage(2)="Choose a server from a list of favorites"
00186	     HelpMessage(3)="Hit enter to type in a server address.  Hit enter again to go to this server."
00187	     HelpMessage(4)="Set networking speed."
00188	     HelpMessage(5)="Open GameSpy Lite"
00189	     MenuList(1)="Find Local Servers"
00190	     MenuList(2)="Choose From Favorites"
00191	     MenuList(3)="Open"
00192	     MenuList(4)="Net Speed"
00193	     MenuList(5)="Go to the Unreal server list"
00194	     MenuTitle="JOIN GAME"
00195	}

End Source Code