RMenu
Class RuneMenuRulesBase

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

class RuneMenuRulesBase
extends RMenu.RuneMenuPageWindow


Variables
 float ControlOffset
 UWindowEditControl FragEdit
 string FragHelp
 string FragText
 bool Initialized
 UWindowEditControl MaxPlayersEdit
 string MaxPlayersHelp
 string MaxPlayersText
 UWindowEditControl MaxSpectatorsEdit
 string MaxSpectatorsHelp
 string MaxSpectatorsText
 RuneMenuServerClientWindow ServerParent
 UWindowEditControl TimeEdit
 string TimeHelp
 string TimeText
 UWindowCheckbox WeaponsCheck
 string WeaponsHelp
 string WeaponsText
 bool bControlRight


Function Summary
 void AfterCreate()
 void BeforePaint(Canvas C, float X, float Y)
 void Created()
 void FragChanged()
 void LoadCurrentValues()
 void MaxPlayersChanged()
 void MaxSpectatorsChanged()
 void Notify(UWindowDialogControl C, byte E)
 void SetupNetworkOptions()
 void TimeChanged()
 void WeaponsChecked()



Source Code


00001	class RuneMenuRulesBase extends RuneMenuPageWindow;
00002	
00003	var RuneMenuServerClientWindow ServerParent;
00004	
00005	var bool Initialized;
00006	
00007	// Frag Limit
00008	var UWindowEditControl FragEdit;
00009	var localized string FragText;
00010	var localized string FragHelp;
00011	
00012	// Time Limit
00013	var UWindowEditControl TimeEdit;
00014	var localized string TimeText;
00015	var localized string TimeHelp;
00016	
00017	// Max Players
00018	var UWindowEditControl MaxPlayersEdit;
00019	var localized string MaxPlayersText;
00020	var localized string MaxPlayersHelp;
00021	
00022	var UWindowEditControl MaxSpectatorsEdit;
00023	var localized string MaxSpectatorsText;
00024	var localized string MaxSpectatorsHelp;
00025	
00026	// Weapons Stay
00027	var UWindowCheckbox WeaponsCheck;
00028	var localized string WeaponsText;
00029	var localized string WeaponsHelp;
00030	
00031	var float ControlOffset;
00032	var bool bControlRight;
00033	
00034	function Created()
00035	{
00036		local int S;
00037		local int ControlWidth, ControlLeft, ControlRight;
00038		local int CenterWidth, CenterPos, ButtonWidth, ButtonLeft;
00039	
00040		Super.Created();
00041	
00042		ControlWidth = WinWidth/2.5;
00043		ControlLeft = (WinWidth/2 - ControlWidth)/2;
00044		ControlRight = WinWidth/2 + ControlLeft;
00045	
00046		CenterWidth = (WinWidth/4)*3;
00047		CenterPos = (WinWidth - CenterWidth)/2;
00048	
00049		ButtonWidth = WinWidth - 140;
00050		ButtonLeft = WinWidth - ButtonWidth - 40;
00051	
00052		ServerParent = RuneMenuServerClientWindow(GetParent(class'RuneMenuServerClientWindow'));
00053		if (ServerParent == None)
00054			Log("Error: RuneMenuRulesBase without RuneMenuServerClientWindow parent.");
00055	
00056		// Frag Limit
00057		FragEdit = UWindowEditControl(CreateControl(class'UWindowEditControl', ControlLeft, ControlOffset, ControlWidth, 1));
00058		FragEdit.SetText(FragText);
00059		FragEdit.SetHelpText(FragHelp);
00060		FragEdit.SetFont(F_Normal);
00061		FragEdit.SetNumericOnly(True);
00062		FragEdit.SetMaxLength(3);
00063		FragEdit.Align = TA_Left;
00064		ControlOffset += 25;
00065	
00066		// Time Limit
00067		TimeEdit = UWindowEditControl(CreateControl(class'UWindowEditControl', ControlRight, ControlOffset, ControlWidth, 1));
00068		TimeEdit.SetText(TimeText);
00069		TimeEdit.SetHelpText(TimeHelp);
00070		TimeEdit.SetFont(F_Normal);
00071		TimeEdit.SetNumericOnly(True);
00072		TimeEdit.SetMaxLength(3);
00073		TimeEdit.Align = TA_Left;
00074		ControlOffset += 25;
00075	
00076		// WeaponsStay
00077		WeaponsCheck = UWindowCheckbox(CreateControl(class'UWindowCheckbox', ControlLeft, ControlOffset, ControlWidth, 1));
00078		WeaponsCheck.SetText(WeaponsText);
00079		WeaponsCheck.SetHelpText(WeaponsHelp);
00080		WeaponsCheck.SetFont(F_Normal);
00081		WeaponsCheck.bChecked = ServerParent.GameClass.Default.bCoopWeaponMode;
00082		WeaponsCheck.Align = TA_Left;
00083		ControlOffset += 25;
00084	
00085		SetupNetworkOptions();
00086	}
00087	
00088	function AfterCreate()
00089	{
00090		Super.AfterCreate();
00091	
00092		DesiredWidth = 270;
00093		DesiredHeight = ControlOffset;
00094	
00095		LoadCurrentValues();
00096		Initialized = True;
00097	}
00098	
00099	function SetupNetworkOptions()
00100	{
00101		local int ControlWidth, ControlLeft, ControlRight;
00102		local int CenterWidth, CenterPos, ButtonWidth, ButtonLeft;
00103	
00104		ControlWidth = WinWidth/2.5;
00105		ControlLeft = (WinWidth/2 - ControlWidth)/2;
00106		ControlRight = WinWidth/2 + ControlLeft;
00107	
00108		CenterWidth = (WinWidth/4)*3;
00109		CenterPos = (WinWidth - CenterWidth)/2;
00110	
00111		if(ServerParent.bNetworkGame)
00112		{
00113			// Max Players
00114			MaxPlayersEdit = UWindowEditControl(CreateControl(class'UWindowEditControl', ControlLeft, ControlOffset, ControlWidth, 1));
00115			MaxPlayersEdit.SetText(MaxPlayersText);
00116			MaxPlayersEdit.SetHelpText(MaxPlayersHelp);
00117			MaxPlayersEdit.SetFont(F_Normal);
00118			MaxPlayersEdit.SetNumericOnly(True);
00119			MaxPlayersEdit.SetMaxLength(2);
00120			MaxPlayersEdit.Align = TA_Left;
00121			MaxPlayersEdit.SetDelayedNotify(True);
00122			ControlOffset += 25;
00123	
00124			// Max Spectators
00125			MaxSpectatorsEdit = UWindowEditControl(CreateControl(class'UWindowEditControl', ControlRight, ControlOffset, ControlWidth, 1));
00126			MaxSpectatorsEdit.SetText(MaxSpectatorsText);
00127			MaxSpectatorsEdit.SetHelpText(MaxSpectatorsHelp);
00128			MaxSpectatorsEdit.SetFont(F_Normal);
00129			MaxSpectatorsEdit.SetNumericOnly(True);
00130			MaxSpectatorsEdit.SetMaxLength(2);
00131			MaxSpectatorsEdit.Align = TA_Left;
00132			MaxSpectatorsEdit.SetDelayedNotify(True);
00133			ControlOffset += 25;
00134		}
00135	}
00136	
00137	
00138	function LoadCurrentValues()
00139	{
00140	}
00141	
00142	function BeforePaint(Canvas C, float X, float Y)
00143	{
00144		local int ControlWidth, ControlLeft, ControlRight;
00145		local int CenterWidth, CenterPos, ButtonWidth, ButtonLeft;
00146	
00147		Super.BeforePaint(C, X, Y);
00148	
00149		ControlWidth = WinWidth/2.5;
00150		ControlLeft = (WinWidth/2 - ControlWidth)/2;
00151		ControlRight = WinWidth/2 + ControlLeft;
00152	
00153		CenterWidth = (WinWidth/4)*3;
00154		CenterPos = (WinWidth - CenterWidth)/2;
00155	
00156		FragEdit.SetSize(ControlWidth, 1);
00157		FragEdit.WinLeft = CenterPos;
00158		FragEdit.EditBoxWidth = 25;
00159	
00160		TimeEdit.SetSize(ControlWidth, 1);
00161		TimeEdit.WinLeft = CenterPos;
00162		TimeEdit.EditBoxWidth = 25;
00163	
00164		if(MaxPlayersEdit != None)
00165		{
00166			MaxPlayersEdit.SetSize(ControlWidth, 1);
00167			MaxPlayersEdit.WinLeft = CenterPos;
00168			MaxPlayersEdit.EditBoxWidth = 25;
00169		}
00170	
00171		if(MaxSpectatorsEdit != None)
00172		{
00173			MaxSpectatorsEdit.SetSize(ControlWidth, 1);
00174			MaxSpectatorsEdit.WinLeft = CenterPos;
00175			MaxSpectatorsEdit.EditBoxWidth = 25;
00176		}
00177	
00178		WeaponsCheck.SetSize(ControlWidth, 1);
00179		WeaponsCheck.WinLeft = CenterPos;
00180	}
00181	
00182	function Notify(UWindowDialogControl C, byte E)
00183	{
00184		if (!Initialized)
00185			return;
00186	
00187		Super.Notify(C, E);
00188	
00189		switch(E)
00190		{
00191		case DE_Change:
00192			switch(C)
00193			{
00194				case FragEdit:
00195					FragChanged();
00196					break;
00197				case TimeEdit:
00198					TimeChanged();
00199					break;
00200				case MaxPlayersEdit:
00201					MaxPlayersChanged();
00202					break;
00203				case MaxSpectatorsEdit:
00204					MaxSpectatorsChanged();
00205					break;
00206				case WeaponsCheck:
00207					WeaponsChecked();
00208					break;
00209			}
00210		}
00211	}
00212	
00213	function FragChanged()
00214	{
00215	}
00216	
00217	function TimeChanged()
00218	{
00219	}
00220	
00221	function MaxPlayersChanged()
00222	{
00223	}
00224	
00225	function MaxSpectatorsChanged()
00226	{
00227	}
00228	
00229	function WeaponsChecked()
00230	{
00231	}
00232	
00233	defaultproperties
00234	{
00235	     FragText="Frag Limit"
00236	     FragHelp="The game will end if a player achieves this many frags. A value of 0 sets no frag limit."
00237	     TimeText="Time Limit"
00238	     TimeHelp="The game will end if after this many minutes. A value of 0 sets no time limit."
00239	     MaxPlayersText="Max Connections"
00240	     MaxPlayersHelp="Maximum number of human players allowed to connect to the game."
00241	     MaxSpectatorsText="Max Spectators"
00242	     MaxSpectatorsHelp="Maximum number of spectators allowed to connect to the game."
00243	     WeaponsText="Weapons Stay"
00244	     WeaponsHelp="If checked, weapons will stay at their pickup location after being picked up, instead of respawning."
00245	     ControlOffset=20.000000
00246	}

End Source Code