Core.Object | +--Engine.Actor | +--Engine.Menu | +--UnrealShare.UnrealMenu | +--UnrealShare.UnrealLongMenu | +--UnrealShare.UnrealSlotMenu | +--UnrealShare.UnrealLoadMenu
string
RestartString
void
DrawMenu(Canvas Canvas)
DrawSlots(Canvas Canvas)
bool
ProcessSelection()
MenuProcessInput(byte KeyNum, byte ActionNum)
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 }