Core.Object | +--Engine.Actor | +--Engine.Menu | +--UnrealShare.UnrealMenu | +--UnrealShare.UnrealLongMenu | +--UnrealShare.UnrealQuitMenu
string
NoSelString
YesSelString
bool
bResponse
void
DrawMenu(Canvas Canvas)
ProcessLeft()
ProcessNo()
ProcessRight()
ProcessSelection()
ProcessYes()
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 }