Arena
Class ArenaMenuRulesBase

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

class ArenaMenuRulesBase
extends RMenu.RuneMenuPageWindow


Variables
 float ControlOffset
 UWindowEditControl FragEdit
 string FragHelp
 string FragText
 bool Initialized
 UWindowEditControl MatchWaitEdit
 string MatchWaitHelp
 string MatchWaitText
 UWindowEditControl MaxArenaEdit
 string MaxArenaHelp
 string MaxArenaText
 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 MatchWaitChanged()
 void MaxArenaChanged()
 void MaxPlayersChanged()
 void MaxSpectatorsChanged()
 void Notify(UWindowDialogControl C, byte E)
 void SetupNetworkOptions()
 void TimeChanged()
 void WeaponsChecked()



Source Code


00001	class ArenaMenuRulesBase 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	// X-On-X
00018	var UWindowEditControl MaxArenaEdit; 
00019	var localized string MaxArenaText;
00020	var localized string MaxArenaHelp;
00021	
00022	// Match Time-Wait
00023	var UWindowEditControl MatchWaitEdit;
00024	var localized string MatchWaitText;
00025	var localized string MatchWaitHelp;
00026	
00027	// Max Players
00028	var UWindowEditControl MaxPlayersEdit;
00029	var localized string MaxPlayersText;
00030	var localized string MaxPlayersHelp;
00031	
00032	// Max Spectators
00033	var UWindowEditControl MaxSpectatorsEdit;
00034	var localized string MaxSpectatorsText;
00035	var localized string MaxSpectatorsHelp;
00036	
00037	// Weapons Stay
00038	var UWindowCheckbox WeaponsCheck;
00039	var localized string WeaponsText;
00040	var localized string WeaponsHelp;
00041	
00042	var float ControlOffset;
00043	var bool bControlRight;
00044	
00045	function Created()
00046	{
00047		local int S;
00048		local int ControlWidth, ControlLeft, ControlRight;
00049		local int CenterWidth, CenterPos, ButtonWidth, ButtonLeft;
00050	
00051		Super.Created();
00052	
00053		ControlWidth = WinWidth/2.5;
00054		ControlLeft = (WinWidth/2 - ControlWidth)/2;
00055		ControlRight = WinWidth/2 + ControlLeft;
00056	
00057		CenterWidth = (WinWidth/4)*3;
00058		CenterPos = (WinWidth - CenterWidth)/2;
00059	
00060		ButtonWidth = WinWidth - 140;
00061		ButtonLeft = WinWidth - ButtonWidth - 40;
00062	
00063		ServerParent = RuneMenuServerClientWindow(GetParent(class'RuneMenuServerClientWindow'));
00064		if (ServerParent == None)
00065			Log("Error: RuneMenuRulesBase without RuneMenuServerClientWindow parent.");
00066	
00067		// Frag Limit
00068		FragEdit = UWindowEditControl(CreateControl(class'UWindowEditControl', ControlLeft, ControlOffset, ControlWidth, 1));
00069		FragEdit.SetText(FragText);
00070		FragEdit.SetHelpText(FragHelp);
00071		FragEdit.SetFont(F_Normal);
00072		FragEdit.SetNumericOnly(True);
00073		FragEdit.SetMaxLength(3);
00074		FragEdit.Align = TA_Left;
00075		ControlOffset += 25;
00076	
00077		// Time Limit
00078		TimeEdit = UWindowEditControl(CreateControl(class'UWindowEditControl', ControlRight, ControlOffset, ControlWidth, 1));
00079		TimeEdit.SetText(TimeText);
00080		TimeEdit.SetHelpText(TimeHelp);
00081		TimeEdit.SetFont(F_Normal);
00082		TimeEdit.SetNumericOnly(True);
00083		TimeEdit.SetMaxLength(3);
00084		TimeEdit.Align = TA_Left;
00085		ControlOffset += 25;
00086	
00087		// X-On-X
00088		MaxArenaEdit = UWindowEditControl(CreateControl(class'UWindowEditControl', ControlLeft, ControlOffset, ControlWidth, 1));
00089		MaxArenaEdit.SetText(MaxArenaText);
00090		MaxArenaEdit.SetHelpText(MaxArenaHelp);
00091		MaxArenaEdit.SetFont(F_Normal);
00092		MaxArenaEdit.SetNumericOnly(True);
00093		MaxArenaEdit.SetMaxLength(1);
00094		MaxArenaEdit.Align = TA_Left;
00095		MaxArenaEdit.SetDelayedNotify(True);
00096		ControlOffset += 25;
00097	
00098		// Match Wait
00099		MatchWaitEdit = UWindowEditControl(CreateControl(class'UWindowEditControl', ControlRight, ControlOffset, ControlWidth, 1));
00100		MatchWaitEdit.SetText(MatchWaitText);
00101		MatchWaitEdit.SetHelpText(MatchWaitHelp);
00102		MatchWaitEdit.SetFont(F_Normal);
00103		MatchWaitEdit.SetNumericOnly(True);
00104		MatchWaitEdit.SetMaxLength(2);
00105		MatchWaitEdit.Align = TA_Left;
00106		MatchWaitEdit.SetDelayedNotify(True);
00107		ControlOffset += 25;
00108	
00109		// WeaponsStay
00110		WeaponsCheck = UWindowCheckbox(CreateControl(class'UWindowCheckbox', ControlLeft, ControlOffset, ControlWidth, 1));
00111		WeaponsCheck.SetText(WeaponsText);
00112		WeaponsCheck.SetHelpText(WeaponsHelp);
00113		WeaponsCheck.SetFont(F_Normal);
00114		WeaponsCheck.bChecked = ServerParent.GameClass.Default.bCoopWeaponMode;
00115		WeaponsCheck.Align = TA_Left;
00116		ControlOffset += 25;
00117	
00118		SetupNetworkOptions();
00119	}
00120	
00121	function AfterCreate()
00122	{
00123		Super.AfterCreate();
00124	
00125		DesiredWidth = 270;
00126		DesiredHeight = ControlOffset;
00127	
00128		LoadCurrentValues();
00129		Initialized = True;
00130	}
00131	
00132	function SetupNetworkOptions()
00133	{
00134		local int ControlWidth, ControlLeft, ControlRight;
00135		local int CenterWidth, CenterPos, ButtonWidth, ButtonLeft;
00136	
00137		ControlWidth = WinWidth/2.5;
00138		ControlLeft = (WinWidth/2 - ControlWidth)/2;
00139		ControlRight = WinWidth/2 + ControlLeft;
00140	
00141		CenterWidth = (WinWidth/4)*3;
00142		CenterPos = (WinWidth - CenterWidth)/2;
00143	
00144		if(ServerParent.bNetworkGame)
00145		{
00146			// Max Players
00147			MaxPlayersEdit = UWindowEditControl(CreateControl(class'UWindowEditControl', ControlLeft, ControlOffset, ControlWidth, 1));
00148			MaxPlayersEdit.SetText(MaxPlayersText);
00149			MaxPlayersEdit.SetHelpText(MaxPlayersHelp);
00150			MaxPlayersEdit.SetFont(F_Normal);
00151			MaxPlayersEdit.SetNumericOnly(True);
00152			MaxPlayersEdit.SetMaxLength(2);
00153			MaxPlayersEdit.Align = TA_Left;
00154			MaxPlayersEdit.SetDelayedNotify(True);
00155			ControlOffset += 25;
00156	
00157			// Max Spectators
00158			MaxSpectatorsEdit = UWindowEditControl(CreateControl(class'UWindowEditControl', ControlRight, ControlOffset, ControlWidth, 1));
00159			MaxSpectatorsEdit.SetText(MaxSpectatorsText);
00160			MaxSpectatorsEdit.SetHelpText(MaxSpectatorsHelp);
00161			MaxSpectatorsEdit.SetFont(F_Normal);
00162			MaxSpectatorsEdit.SetNumericOnly(True);
00163			MaxSpectatorsEdit.SetMaxLength(2);
00164			MaxSpectatorsEdit.Align = TA_Left;
00165			MaxSpectatorsEdit.SetDelayedNotify(True);
00166			ControlOffset += 25;
00167		}
00168	}
00169	
00170	
00171	function LoadCurrentValues()
00172	{
00173	}
00174	
00175	function BeforePaint(Canvas C, float X, float Y)
00176	{
00177		local int ControlWidth, ControlLeft, ControlRight;
00178		local int CenterWidth, CenterPos, ButtonWidth, ButtonLeft;
00179	
00180		Super.BeforePaint(C, X, Y);
00181	
00182		ControlWidth = WinWidth/2.5;
00183		ControlLeft = (WinWidth/2 - ControlWidth)/2;
00184		ControlRight = WinWidth/2 + ControlLeft;
00185	
00186		CenterWidth = (WinWidth/4)*3;
00187		CenterPos = (WinWidth - CenterWidth)/2;
00188	
00189		FragEdit.SetSize(ControlWidth, 1);
00190		FragEdit.WinLeft = CenterPos;
00191		FragEdit.EditBoxWidth = 25;
00192	
00193		TimeEdit.SetSize(ControlWidth, 1);
00194		TimeEdit.WinLeft = CenterPos;
00195		TimeEdit.EditBoxWidth = 25;
00196	
00197		MaxArenaEdit.SetSize(ControlWidth, 1);
00198		MaxArenaEdit.WinLeft = CenterPos;
00199		MaxArenaEdit.EditBoxWidth = 25;
00200		
00201		MatchWaitEdit.SetSize(ControlWidth, 1);
00202		MatchWaitEdit.WinLeft = CenterPos;
00203		MatchWaitEdit.EditBoxWidth = 25;
00204	
00205		if(MaxPlayersEdit != None)
00206		{
00207			MaxPlayersEdit.SetSize(ControlWidth, 1);
00208			MaxPlayersEdit.WinLeft = CenterPos;
00209			MaxPlayersEdit.EditBoxWidth = 25;
00210		}
00211	
00212		if(MaxSpectatorsEdit != None)
00213		{
00214			MaxSpectatorsEdit.SetSize(ControlWidth, 1);
00215			MaxSpectatorsEdit.WinLeft = CenterPos;
00216			MaxSpectatorsEdit.EditBoxWidth = 25;
00217		}
00218	
00219		WeaponsCheck.SetSize(ControlWidth, 1);
00220		WeaponsCheck.WinLeft = CenterPos;
00221	}
00222	
00223	function Notify(UWindowDialogControl C, byte E)
00224	{
00225		if (!Initialized)
00226			return;
00227	
00228		Super.Notify(C, E);
00229	
00230		switch(E)
00231		{
00232		case DE_Change:
00233			switch(C)
00234			{
00235				case FragEdit:
00236					FragChanged();
00237					break;
00238				case TimeEdit:
00239					TimeChanged();
00240					break;
00241				case MaxArenaEdit:
00242					MaxArenaChanged();
00243					break;
00244				case MatchWaitEdit:
00245					MatchWaitChanged();
00246					break;
00247				case MaxPlayersEdit:
00248					MaxPlayersChanged();
00249					break;
00250				case MaxSpectatorsEdit:
00251					MaxSpectatorsChanged();
00252					break;
00253				case WeaponsCheck:
00254					WeaponsChecked();
00255					break;
00256			}
00257		}
00258	}
00259	
00260	function FragChanged()
00261	{
00262	}
00263	
00264	function TimeChanged()
00265	{
00266	}
00267	
00268	function MaxArenaChanged()
00269	{
00270	}
00271	
00272	function MatchWaitChanged()
00273	{
00274	}
00275	
00276	function MaxPlayersChanged()
00277	{
00278	}
00279	
00280	function MaxSpectatorsChanged()
00281	{
00282	}
00283	
00284	function WeaponsChecked()
00285	{
00286	}
00287	
00288	defaultproperties
00289	{
00290	    FragText="Arena Matches"
00291	    FragHelp="The game will end after this number of matches have been played."
00292	    TimeText="Time Limit"
00293	    TimeHelp="The game will end if after this many minutes. A value of 0 sets no time limit."
00294	    MaxArenaText="Arena Team Size"
00295	    MaxArenaHelp="Maximum size of Arena Teams.  Set to 1 for a 1-on-1 match."
00296	    MatchWaitText="Time Between Matches"
00297	    MatchWaitHelp="Amount of time to wait between each match."
00298	    MaxPlayersText="Max Connections"
00299	    MaxPlayersHelp="Maximum number of human players allowed to connect to the game."
00300	    MaxSpectatorsText="Max Spectators"
00301	    MaxSpectatorsHelp="Maximum number of spectators allowed to connect to the game."
00302	    WeaponsText="Weapons Stay"
00303	    WeaponsHelp="If checked, weapons will stay at their pickup location after being picked up, instead of respawning."
00304	    ControlOffset=20.00
00305	}

End Source Code