UnrealShare
Class UnrealLoadMenu

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

class UnrealLoadMenu
extends UnrealShare.UnrealSlotMenu

//============================================================================= // UnrealLoadMenu //=============================================================================
Variables
 string RestartString

States
Restart, LoadGame

Function Summary
 void DrawMenu(Canvas Canvas)
 void DrawSlots(Canvas Canvas)
 bool ProcessSelection()


State Restart Function Summary
 void MenuProcessInput(byte KeyNum, byte ActionNum)


State LoadGame Function Summary
 void MenuProcessInput(byte KeyNum, byte ActionNum)



Source Code


00001	//=============================================================================
00002	// UnrealLoadMenu
00003	//=============================================================================
00004	class UnrealLoadMenu extends UnrealSlotMenu;
00005	
00006	var() localized string RestartString;
00007	
00008	function bool ProcessSelection()
00009	{
00010		if ( Selection == 1 )
00011		{
00012			GotoState('Restart');
00013			PlayerOwner.Player.Console.GotoState('EndMenuing');
00014			return true;
00015		}
00016		if ( SlotNames[Selection - 2] ~= "..Empty.." )
00017			return false;
00018		GotoState('LoadGame');
00019		PlayerOwner.Player.Console.GotoState('EndMenuing');
00020		return true;
00021	}
00022	
00023	function DrawMenu(canvas Canvas)
00024	{
00025		DrawBackGround(Canvas, (Canvas.ClipY < 320));
00026	
00027		DrawTitle(Canvas);
00028		DrawSlots(Canvas);	
00029	}
00030	
00031	function DrawSlots(canvas Canvas)
00032	{
00033		local int StartX, StartY, Spacing, i;
00034				
00035		Spacing = Clamp(0.05 * Canvas.ClipY, 12, 32);
00036		StartX = Max(20, 0.5 * (Canvas.ClipX - 206));
00037		StartY = Max(40, 0.5 * (Canvas.ClipY - MenuLength * Spacing-40));
00038		Canvas.Font = Canvas.MedFont;
00039	
00040		Canvas.SetPos(StartX, StartY);
00041		Canvas.DrawText(RestartString$Level.Title, False);
00042	
00043		For ( i=1; i<10; i++ )
00044		{
00045			Canvas.SetPos(StartX, StartY + i * Spacing );
00046			Canvas.DrawText(SlotNames[i-1], False);
00047		}
00048	
00049		// show selection
00050		Canvas.SetPos( StartX - 20, StartY + Spacing * (Selection - 1));
00051		Canvas.DrawText("[]", false);	
00052	}
00053	
00054	state LoadGame
00055	{
00056		function MenuProcessInput( byte KeyNum, byte ActionNum )
00057		{
00058			if ( (KeyNum == EInputKey.IK_Enter) 
00059				&& (ActionNum == EInputAction.IST_Release) )
00060			{
00061				PlayerOwner.ClientMessage("");
00062				bExitAllMenus = true;
00063				if ( Left(SlotNames[Selection - 2], 4) == "Net:" )
00064					Level.ServerTravel( "?load=" $ (Selection - 2), false);
00065				else
00066					PlayerOwner.ClientTravel( "?load=" $ (Selection - 2), TRAVEL_Absolute, false);
00067			}
00068		}
00069	}
00070	
00071	state Restart
00072	{
00073		function MenuProcessInput( byte KeyNum, byte ActionNum )
00074		{
00075			if ( (KeyNum == EInputKey.IK_Enter) 
00076				&& (ActionNum == EInputAction.IST_Release) )
00077				PlayerOwner.RestartLevel();
00078		}
00079	}
00080	
00081	defaultproperties
00082	{
00083	     RestartString="Restart "
00084	     MenuLength=10
00085	     MenuTitle="LOAD GAME"
00086	}

End Source Code