RMenu
Class RuneMenuServerClientWindow

source: c:\runehov\RMenu\Classes\RuneMenuServerClientWindow.uc
Core.Object
   |
   +--UWindow.UWindowBase
      |
      +--UWindow.UWindowWindow
         |
         +--UWindow.UWindowClientWindow
            |
            +--UWindow.UWindowDialogClientWindow
               |
               +--UWindow.UWindowPageWindow
                  |
                  +--RMenu.RuneMenuPageWindow
                     |
                     +--RMenu.RuneMenuServerClientWindow
Direct Known Subclasses:None

class RuneMenuServerClientWindow
extends RMenu.RuneMenuPageWindow


Variables
 UWindowSmallButton DedicatedButton
 string DedicatedHelp
           , BotConfigTab;
 string DedicatedText
           , BotConfigTab;
 class GameClass
 string GameType
 string Map
 MutatorTab, MaplistTab
           , BotConfigTab;
 string MutatorList
 UWindowPageControl Pages
 UWindowPageControlPage ServerTab
 string ServerText
           , BotConfigTab;
 UWindowSmallButton StartButton
 string StartHelp
           , BotConfigTab;
 string StartText
           , BotConfigTab;
 bool bKeepMutators
 bool bNetworkGame
           , BotConfigTab;


Function Summary
 void CreatePages()
 void Created()
 void DedicatedPressed()
 void GameChanged()
 void Notify(UWindowDialogControl C, byte E)
 void Paint(Canvas C, float X, float Y)
 void Resized()
 void SaveConfigs()
 void StartPressed()



Source Code


00001	class RuneMenuServerClientWindow extends RuneMenuPageWindow;
00002	
00003	// Game Information
00004	var config string Map;
00005	var config string GameType;
00006	var config string MutatorList;
00007	var config bool bKeepMutators;
00008	var class<GameInfo> GameClass;
00009	
00010	// Window
00011	var UWindowSmallButton DedicatedButton;
00012	var UWindowPageControlPage ServerTab;
00013	var UWindowPageControl Pages;
00014	var UWindowSmallButton StartButton;
00015	
00016	var localized string StartMatchTab, RulesTab, SettingsTab, MutatorTab, MaplistTab;//, BotConfigTab;
00017	var localized string StartText;
00018	var localized string StartHelp;
00019	var localized string DedicatedText;
00020	var localized string DedicatedHelp;
00021	var localized string ServerText;
00022	var bool bNetworkGame;
00023	
00024	function Created()
00025	{
00026		if(!bKeepMutators)
00027			MutatorList = "";
00028	
00029		CreatePages();
00030	
00031		// Start
00032		StartButton = UWindowSmallButton(CreateControl(class'UWindowSmallButton', 60, WinHeight-24, 48, 16));
00033		StartButton.SetText(StartText);
00034		StartButton.SetHelpText(StartHelp);
00035	
00036		// Dedicated
00037		DedicatedButton = UWindowSmallButton(CreateControl(class'UWindowSmallButton', 10, WinHeight-24, 48, 16));
00038		DedicatedButton.SetText(DedicatedText);
00039		DedicatedButton.SetHelpText(DedicatedHelp);
00040	
00041		ServerTab = Pages.AddPage(ServerText, class'RuneMenuAdminScrollClient');
00042	
00043		Super.Created();
00044	}
00045	
00046	function CreatePages()
00047	{
00048		local class<UWindowPageWindow> PageClass;
00049	
00050		Pages = UWindowPageControl(CreateWindow(class'UWindowPageControl', 0, 0, WinWidth, WinHeight-25));
00051		Pages.SetMultiLine(True);
00052		Pages.AddPage(StartMatchTab, class'RuneMenuStartMatchScrollClient');
00053	
00054		PageClass = class<UWindowPageWindow>(DynamicLoadObject(GameClass.Default.RulesMenuType, class'Class'));
00055		if(PageClass != None)
00056			Pages.AddPage(RulesTab, PageClass);
00057	
00058		PageClass = class<UWindowPageWindow>(DynamicLoadObject(GameClass.Default.SettingsMenuType, class'Class'));
00059		if(PageClass != None)
00060			Pages.AddPage(SettingsTab, PageClass);
00061	
00062		PageClass = class<UWindowPageWindow>(DynamicLoadObject(GameClass.Default.MutatorMenuType, class'Class'));
00063		if(PageClass != None)
00064			Pages.AddPage(MutatorTab, PageClass);
00065	
00066		PageClass = class<UWindowPageWindow>(DynamicLoadObject(GameClass.Default.MaplistMenuType, class'Class'));
00067		if(PageClass != None)
00068			Pages.AddPage(MaplistTab, PageClass);
00069	
00070	//	PageClass = class<UWindowPageWindow>(DynamicLoadObject(GameClass.Default.BotMenuType, class'Class'));
00071	//	if(PageClass != None)
00072	//		Pages.AddPage(BotConfigTab, PageClass);
00073	}
00074	
00075	function Resized()
00076	{
00077		StartButton.WinLeft = WinWidth-102;
00078		StartButton.WinTop = WinHeight-20;
00079	
00080		DedicatedButton.WinLeft = WinWidth-152;
00081		DedicatedButton.WinTop = WinHeight-20;
00082	}
00083	
00084	function Paint(Canvas C, float X, float Y)
00085	{
00086		local Texture T;
00087	
00088		T = GetLookAndFeelTexture();
00089		DrawUpBevel( C, 0, LookAndFeel.TabUnselectedM.H, WinWidth, WinHeight-LookAndFeel.TabUnselectedM.H, T);
00090	}
00091	
00092	function Notify(UWindowDialogControl C, byte E)
00093	{
00094		Super.Notify(C, E);
00095	
00096		switch(E)
00097		{
00098		case DE_Click:
00099			switch (C)
00100			{
00101			case StartButton:
00102				StartPressed();
00103				break;
00104			case DedicatedButton:
00105				DedicatedPressed();
00106				break;
00107			}
00108		}
00109	}
00110	
00111	function StartPressed()
00112	{
00113		local string URL, Checksum;
00114		local GameInfo NewGame;
00115	
00116		ParentWindow.Close();
00117		Root.Console.CloseUWindow();
00118	
00119		// Reset the game class.
00120		GameClass.Static.ResetGame();
00121	
00122		URL = Map $ "?Game="$GameType$"?Mutator="$MutatorList;
00123		URL = URL $ "?Listen";
00124		class'StatLog'.Static.GetPlayerChecksum(GetPlayerOwner(), Checksum);
00125		if (Checksum == "")
00126			URL = URL $ "?Checksum=NoChecksum";
00127		else
00128			URL = URL $ "?Checksum="$Checksum;
00129	
00130		GetPlayerOwner().ClientTravel(URL, TRAVEL_Absolute, false);
00131	}
00132	
00133	function DedicatedPressed()
00134	{
00135		local string URL;
00136		local GameInfo NewGame;
00137		local string LanPlay;
00138	
00139		ParentWindow.Close();
00140		Root.Console.CloseUWindow();
00141	
00142		if(RuneMenuAdminClientWindow(RuneMenuAdminScrollClient(ServerTab.Page).ClientArea).bLanPlay)
00143			LanPlay = " -lanplay";
00144	
00145		URL = Map $ "?Game="$GameType$"?Mutator="$MutatorList;
00146		URL = URL $ "?Listen";
00147	
00148		GetPlayerOwner().ConsoleCommand("RELAUNCH "$URL$LanPlay$" -server log="$GameClass.Default.ServerLogName);
00149	}
00150	
00151	function GameChanged()
00152	{
00153		local UWindowPageControlPage RulesPage, SettingsPage, MutatorPage, MaplistPage;//, BotConfigPage;
00154		local class<UWindowPageWindow> PageClass;
00155	
00156		// Change out the rules page...
00157		PageClass = class<UWindowPageWindow>(DynamicLoadObject(GameClass.Default.RulesMenuType, class'Class'));
00158		RulesPage = Pages.GetPage(RulesTab);
00159		if(PageClass != None)
00160			Pages.InsertPage(RulesPage, RulesTab, PageClass);
00161		if (RulesPage != None)
00162			Pages.DeletePage(RulesPage);
00163	
00164		// Change out the settings page...
00165		PageClass = class<UWindowPageWindow>(DynamicLoadObject(GameClass.Default.SettingsMenuType, class'Class'));
00166		SettingsPage = Pages.GetPage(SettingsTab);
00167		if(PageClass != None)
00168			Pages.InsertPage(SettingsPage, SettingsTab, PageClass);
00169		if (SettingsPage != None)
00170			Pages.DeletePage(SettingsPage);
00171	
00172		// Change out the mutator page...
00173		PageClass = class<UWindowPageWindow>(DynamicLoadObject(GameClass.Default.MutatorMenuType, class'Class'));
00174		MutatorPage = Pages.GetPage(MutatorTab);
00175		if(PageClass != None)
00176			Pages.InsertPage(MutatorPage, MutatorTab, PageClass);
00177		if (MutatorPage != None)
00178			Pages.DeletePage(MutatorPage);
00179	
00180		// Change out the maplist page...
00181		PageClass = class<UWindowPageWindow>(DynamicLoadObject(GameClass.Default.MaplistMenuType, class'Class'));
00182		MaplistPage = Pages.GetPage(MaplistTab);
00183		if(PageClass != None)
00184			Pages.InsertPage(MaplistPage, MaplistTab, PageClass);
00185		if (MaplistPage != None)
00186			Pages.DeletePage(MaplistPage);
00187	
00188		// Change out the bots page...
00189	//	PageClass = class<UWindowPageWindow>(DynamicLoadObject(GameClass.Default.BotMenuType, class'Class'));
00190	//	BotConfigPage = Pages.GetPage(BotConfigTab);
00191	//	if(PageClass != None)
00192	//		Pages.InsertPage(BotConfigPage, BotConfigTab, PageClass);
00193	//	if (BotConfigPage != None)
00194	//		Pages.DeletePage(BotConfigPage);
00195	}
00196	
00197	function SaveConfigs()
00198	{
00199		if (GameClass != None)
00200			GameClass.Static.StaticSaveConfig();
00201		Super.SaveConfigs();
00202	}
00203	
00204	defaultproperties
00205	{
00206	     GameType="RuneI.RuneMultiPlayer"
00207	     StartMatchTab="Match"
00208	     RulesTab="Rules"
00209	     SettingsTab="Settings"
00210	     MutatorTab="Mutators"
00211	     MaplistTab="Maplists"
00212	     StartText="Start"
00213	     StartHelp="Start game with current options"
00214	     DedicatedText="Dedicated"
00215	     DedicatedHelp="Press to launch a dedicated server."
00216	     ServerText="Server"
00217	     bNetworkGame=True
00218	}

End Source Code