UnrealShare
Class UnrealQuitMenu

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

class UnrealQuitMenu
extends UnrealShare.UnrealLongMenu

//============================================================================= // UnrealQuitMenu //=============================================================================
Variables
 string NoSelString
 string YesSelString
 bool bResponse


Function Summary
 void DrawMenu(Canvas Canvas)
 bool ProcessLeft()
 bool ProcessNo()
 bool ProcessRight()
 bool ProcessSelection()
 bool ProcessYes()



Source Code


00001	//=============================================================================
00002	// UnrealQuitMenu
00003	//=============================================================================
00004	class UnrealQuitMenu extends UnrealLongMenu;
00005	
00006	var bool bResponse;
00007	var localized string YesSelString;
00008	var localized string NoSelString;
00009	
00010	function bool ProcessYes()
00011	{
00012		bResponse = true;
00013		return true;
00014	}
00015	
00016	function bool ProcessNo()
00017	{
00018		bResponse = false;
00019		return true;
00020	}
00021	
00022	function bool ProcessLeft()
00023	{
00024		bResponse = !bResponse;
00025		return true;
00026	}
00027	
00028	function bool ProcessRight()
00029	{
00030		bResponse = !bResponse;
00031		return true;
00032	}
00033	
00034	function bool ProcessSelection()
00035	{
00036		local Menu ChildMenu;
00037	
00038		ChildMenu = None;
00039	
00040		if ( bResponse )
00041		{
00042			PlayerOwner.SaveConfig();
00043			//PlayerOwner.PlayerReplicationInfo.SaveConfig();
00044			if ( Level.Game != None ) {
00045				Level.Game.SaveConfig();
00046				Level.Game.GameReplicationInfo.SaveConfig();
00047			}
00048			PlayerOwner.ConsoleCommand("Exit");
00049		}
00050		else 
00051			ExitMenu();
00052	}
00053	
00054	function DrawMenu(canvas Canvas)
00055	{
00056		local int StartX, StartY, Spacing, SecSpace;
00057		
00058		DrawBackGround(Canvas, (Canvas.ClipY < 320));
00059		
00060		StartX = 0.5 * Canvas.ClipX - 120;
00061		StartY = 2;
00062		Spacing = 9;
00063		Canvas.Font = Canvas.MedFont;
00064		
00065		Canvas.SetPos(StartX, StartY );
00066		Canvas.DrawText(MenuList[0], False);	
00067		Canvas.SetPos(StartX+72, StartY+10 );	
00068		Canvas.DrawText(MenuList[1], False);	
00069		StartX = Max(8, 0.5 * Canvas.ClipX - 116);	
00070		Spacing = Clamp(0.04 * Canvas.ClipY, 7, 40);
00071		StartY = 16 + Spacing;
00072		SecSpace = 2 + Spacing/6;
00073		Canvas.Font = Canvas.SmallFont;
00074		
00075		Canvas.DrawColor.R = 30;
00076		Canvas.DrawColor.G = 90;
00077		Canvas.DrawColor.B = 30;
00078			
00079		Canvas.SetPos(StartX, StartY);
00080		Canvas.DrawText(MenuList[2], false);
00081		Canvas.SetPos(StartX+8, StartY+Spacing);
00082		Canvas.DrawText(MenuList[3], false);
00083		Canvas.SetPos(StartX, StartY+Spacing*2+SecSpace);
00084		Canvas.DrawText(MenuList[4], false);	
00085		Canvas.SetPos(StartX+8, StartY+Spacing*3+SecSpace);
00086		Canvas.DrawText(MenuList[5],  false);	
00087		Canvas.SetPos(StartX+8, StartY+Spacing*4+SecSpace);
00088		Canvas.DrawText(MenuList[6],  false);		
00089		Canvas.SetPos(StartX+8, StartY+Spacing*5+SecSpace);
00090		Canvas.DrawText(MenuList[7],  false);
00091		
00092		Canvas.SetPos(StartX, StartY+Spacing*6+SecSpace*2);
00093		Canvas.DrawText(MenuList[8],  false);
00094		
00095		Canvas.SetPos(StartX, StartY+Spacing*7+SecSpace*3);
00096		Canvas.DrawText(MenuList[9],  false);
00097		Canvas.SetPos(StartX+8, StartY+Spacing*8+SecSpace*3);
00098		Canvas.DrawText(MenuList[10],  false);	
00099	
00100		Canvas.SetPos(StartX, StartY+Spacing*9+SecSpace*4);
00101		Canvas.DrawText(MenuList[11],  false);
00102		Canvas.SetPos(StartX+8, StartY+Spacing*10+SecSpace*4);
00103		Canvas.DrawText(MenuList[12],  false);
00104		Canvas.SetPos(StartX+8, StartY+Spacing*11+SecSpace*4);
00105		Canvas.DrawText(MenuList[13],  false);		
00106	
00107		Canvas.SetPos(StartX, StartY+Spacing*12+SecSpace*5);
00108		Canvas.DrawText(MenuList[14],  false);	
00109		Canvas.SetPos(StartX+8, StartY+Spacing*13+SecSpace*5);
00110		Canvas.DrawText(MenuList[15],  false);
00111		
00112		Canvas.SetPos(StartX, StartY+Spacing*14+SecSpace*6);
00113		Canvas.DrawText(MenuList[16],  false);	
00114	
00115		Canvas.DrawColor.R = 40;
00116		Canvas.DrawColor.G = 60;
00117		Canvas.DrawColor.B = 20;
00118		
00119		Canvas.SetPos(StartX, StartY+Spacing*15+SecSpace*7);
00120		Canvas.DrawText(MenuList[17],  false);	
00121		
00122		Canvas.SetPos(StartX, StartY+Spacing*16+SecSpace*8);
00123		Canvas.DrawText(MenuList[18],  false);
00124				
00125		// draw text
00126		Canvas.Font = Canvas.MedFont;	
00127		SetFontBrightness(Canvas, true);
00128		StartY = Clamp(StartY+Spacing*17+SecSpace*9, Canvas.ClipY - 66, Canvas.ClipY - 12);
00129		Canvas.bCenter = true;
00130		Canvas.SetPos(0, StartY );
00131		if ( bResponse )
00132			Canvas.DrawText(MenuTitle$YesSelString, False);
00133		else
00134			Canvas.DrawText(MenuTitle$NoSelString, False);
00135		Canvas.DrawColor = Canvas.Default.DrawColor;
00136		Canvas.bCenter = false;
00137	
00138		// Draw help panel
00139	//	DrawHelpPanel(Canvas, 0.5 * Canvas.ClipY + 16, 228);
00140	}
00141	
00142	defaultproperties
00143	{
00144	     YesSelString=" [YES]  No"
00145	     NoSelString="  Yes  [NO]"
00146	     HelpMessage(1)="Select yes and hit enter to return to your puny, miserable, useless real life, if you can't handle UNREALity."
00147	     MenuList(0)="A Digital Extremes/Epic Megagames"
00148	     MenuList(1)="Collaboration"
00149	     MenuList(2)="Game Design: James Schmalz"
00150	     MenuList(3)="Cliff Bleszinski"
00151	     MenuList(4)="Level Design: Cliff Bleszinski"
00152	     MenuList(5)="T. Elliot Cannon  Pancho Eekels"
00153	     MenuList(6)="Jeremy War  Cedric Fiorentino"
00154	     MenuList(7)="Shane Caudle"
00155	     MenuList(8)="Animator: Dave Carter"
00156	     MenuList(9)="Art: James Schmalz "
00157	     MenuList(10)="Mike Leatham  Artur Bialas"
00158	     MenuList(11)="Programming: Tim Sweeney  Steven Polge"
00159	     MenuList(12)="Erik de Neve  James Schmalz"
00160	     MenuList(13)="Carlo Vogelsang  Nick Michon"
00161	     MenuList(14)="Music: Alexander Brandon"
00162	     MenuList(15)="Michiel van den Bos"
00163	     MenuList(16)="Sound Effects: Dave Ewing"
00164	     MenuList(17)="Producer for GT: Jason Schreiber"
00165	     MenuList(18)="Biz:Mark Rein Nigel Kent Craig Lafferty"
00166	     MenuTitle="Quit?"
00167	}

End Source Code