Core.Object | +--Engine.Actor | +--Engine.Menu | +--UnrealShare.UnrealMenu | +--UnrealShare.UnrealLongMenu | +--UnrealShare.UnrealJoinGameMenu
string
FastInternetOption
InternetOption
LANOption
LastServer
OldLastServer
void
DrawMenu(Canvas Canvas)
PostBeginPlay()
bool
ProcessLeft()
ProcessMenuEscape()
ProcessMenuInput(string InputString)
ProcessMenuUpdate(string InputString)
ProcessRight()
ProcessSelection()
SaveConfigs()
int
StepSize()
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 }