UMenu
Class UMenuGameOptionsClientWindow

source: e:\games\UnrealTournament\UMenu\Classes\UMenuGameOptionsClientWindow.uc
Core.Object
   |
   +--UWindow.UWindowBase
      |
      +--UWindow.UWindowWindow
         |
         +--UWindow.UWindowClientWindow
            |
            +--UWindow.UWindowDialogClientWindow
               |
               +--UWindow.UWindowPageWindow
                  |
                  +--UMenu.UMenuPageWindow
                     |
                     +--UMenu.UMenuGameOptionsClientWindow
Direct Known Subclasses:None

class UMenuGameOptionsClientWindow
extends UMenu.UMenuPageWindow


Variables
 string CenterName
 float ControlOffset
 UWindowCheckbox DodgingCheck
 string DodgingHelp
 string DodgingText
 UWindowComboControl GoreCombo
 string GoreHelp
 string GoreLevels[3]
 string GoreText
 string HiddenName
 string LeftName
 UWindowCheckbox LocalCheck
 string LocalHelp
 string LocalText
 string RightName
 UWindowHSliderControl SpeedSlider
 string SpeedText
 string ViewBobHelp
 UWindowHSliderControl ViewBobSlider
 string ViewBobText
 UWindowCheckbox WeaponFlashCheck
 string WeaponFlashHelp
 string WeaponFlashText
 UWindowComboControl WeaponHandCombo
 string WeaponHandHelp
 string WeaponHandText
 bool bShowGoreControl


Function Summary
 void AfterCreate()
 void BeforePaint(Canvas C, float X, float Y)
 void Created()
 void DodgingChecked()
 void GoreChanged()
 void LocalChecked()
 void Notify(UWindowDialogControl C, byte E)
 void SaveConfigs()
 void SpeedChanged()
 void ViewBobChanged()
 void WeaponFlashChecked()
 void WeaponHandChanged()



Source Code


00001	class UMenuGameOptionsClientWindow extends UMenuPageWindow;
00002	
00003	// Weapon Flash
00004	var UWindowCheckbox WeaponFlashCheck;
00005	var localized string WeaponFlashText;
00006	var localized string WeaponFlashHelp;
00007	
00008	// Weapon Hand
00009	var UWindowComboControl WeaponHandCombo;
00010	var localized string WeaponHandText;
00011	var localized string WeaponHandHelp;
00012	
00013	var localized string LeftName;
00014	var localized string CenterName;
00015	var localized string RightName;
00016	var localized string HiddenName;
00017	
00018	// Dodging
00019	var UWindowCheckbox DodgingCheck;
00020	var localized string DodgingText;
00021	var localized string DodgingHelp;
00022	
00023	// View Bob
00024	var UWindowHSliderControl ViewBobSlider;
00025	var localized string ViewBobText;
00026	var localized string ViewBobHelp;
00027	
00028	// Game Speed
00029	var UWindowHSliderControl SpeedSlider;
00030	var localized string SpeedText;
00031	
00032	// Reduced Gore
00033	var UWindowComboControl GoreCombo;
00034	var localized string GoreText;
00035	var localized string GoreHelp;
00036	var localized string GoreLevels[3];
00037	
00038	// Local Logging
00039	var UWindowCheckbox LocalCheck;
00040	var localized string LocalText;
00041	var localized string LocalHelp;
00042	
00043	var globalconfig bool bShowGoreControl;
00044	
00045	var float ControlOffset;
00046	
00047	function Created()
00048	{
00049		local int ControlWidth, ControlLeft, ControlRight;
00050		local int CenterWidth, CenterPos;
00051		local int I, S;
00052	
00053		Super.Created();
00054	
00055		ControlWidth = WinWidth/2.5;
00056		ControlLeft = (WinWidth/2 - ControlWidth)/2;
00057		ControlRight = WinWidth/2 + ControlLeft;
00058	
00059		CenterWidth = (WinWidth/4)*3;
00060		CenterPos = (WinWidth - CenterWidth)/2;
00061	
00062		// Weapon Hand
00063		WeaponHandCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', CenterPos, ControlOffset, CenterWidth, 1));
00064		WeaponHandCombo.SetText(WeaponHandText);
00065		WeaponHandCombo.SetHelpText(WeaponHandHelp);
00066		WeaponHandCombo.SetFont(F_Normal);
00067		WeaponHandCombo.SetEditable(False);
00068		WeaponHandCombo.AddItem(LeftName, "Left");
00069		WeaponHandCombo.AddItem(CenterName, "Center");
00070		WeaponHandCombo.AddItem(RightName, "Right");
00071		WeaponHandCombo.AddItem(HiddenName, "Hidden");
00072		switch(GetPlayerOwner().Handedness)
00073		{
00074			case -1: WeaponHandCombo.SetSelectedIndex(2); break;
00075			case 0: WeaponHandCombo.SetSelectedIndex(1); break;
00076			case 1: WeaponHandCombo.SetSelectedIndex(0); break;
00077			case 2: WeaponHandCombo.SetSelectedIndex(3); break;
00078			default: WeaponHandCombo.SetSelectedIndex(2); break;
00079		}
00080		ControlOffset += 25;
00081	
00082		if ( class'GameInfo'.default.bAlternateMode )
00083			bShowGoreControl = false;
00084	
00085		if(bShowGoreControl)
00086		{
00087			// Reduced Gore
00088			GoreCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', CenterPos, ControlOffset, CenterWidth, 1));
00089			GoreCombo.SetText(GoreText);
00090			GoreCombo.SetHelpText(GoreHelp);
00091			GoreCombo.SetFont(F_Normal);
00092			GoreCombo.SetEditable(False);
00093			GoreCombo.AddItem(GoreLevels[0]);
00094			GoreCombo.AddItem(GoreLevels[1]);
00095			GoreCombo.AddItem(GoreLevels[2]);
00096	
00097			if(class'GameInfo'.default.bVeryLowGore)
00098				GoreCombo.SetSelectedIndex(2);
00099			else
00100			if(class'GameInfo'.default.bLowGore)
00101				GoreCombo.SetSelectedIndex(1);
00102			else
00103				GoreCombo.SetSelectedIndex(0);
00104			ControlOffset += 25;
00105		}
00106	
00107		// View Bob
00108		ViewBobSlider = UWindowHSliderControl(CreateControl(class'UWindowHSliderControl', ControlRight, ControlOffset, ControlWidth, 1));
00109		ViewBobSlider.SetRange(0, 8, 1);
00110		ViewBobSlider.SetValue((GetPlayerOwner().Bob*1000) / 4);
00111		ViewBobSlider.SetText(ViewBobText);
00112		ViewBobSlider.SetHelpText(ViewBobHelp);
00113		ViewBobSlider.SetFont(F_Normal);
00114		ControlOffset += 25;
00115	
00116		// Game Speed
00117		if(GetLevel().Game != None)
00118		{
00119			SpeedSlider = UWindowHSliderControl(CreateControl(class'UWindowHSliderControl', CenterPos, ControlOffset, CenterWidth, 1));
00120			SpeedSlider.SetRange(50, 200, 5);
00121			S = GetLevel().Game.GameSpeed * 100.0;
00122			SpeedSlider.SetValue(S);
00123			SpeedSlider.SetText(SpeedText$" ["$S$"%]:");
00124			SpeedSlider.SetFont(F_Normal);
00125			ControlOffset += 25;
00126		}
00127	
00128		// Dodging
00129		DodgingCheck = UWindowCheckbox(CreateControl(class'UWindowCheckbox', ControlLeft, ControlOffset, ControlWidth, 1));
00130		DodgingCheck.bChecked = (GetPlayerOwner().DodgeClickTime > 0);
00131		DodgingCheck.SetText(DodgingText);
00132		DodgingCheck.SetHelpText(DodgingHelp);
00133		DodgingCheck.SetFont(F_Normal);
00134		DodgingCheck.Align = TA_Right;
00135	
00136		// Weapon Flash
00137		WeaponFlashCheck = UWindowCheckbox(CreateControl(class'UWindowCheckbox', ControlRight, ControlOffset, ControlWidth, 1));
00138		if (!GetPlayerOwner().bNoFlash)
00139			WeaponFlashCheck.bChecked = true;
00140		WeaponFlashCheck.SetText(WeaponFlashText);
00141		WeaponFlashCheck.SetHelpText(WeaponFlashHelp);
00142		WeaponFlashCheck.SetFont(F_Normal);
00143		WeaponFlashCheck.Align = TA_Right;
00144		ControlOffset += 25;
00145	
00146		// Local Logging
00147		LocalCheck = UWindowCheckbox(CreateControl(class'UWindowCheckbox', CenterPos, ControlOffset, CenterWidth, 1));
00148		LocalCheck.SetText(LocalText);
00149		LocalCheck.SetHelpText(LocalHelp);
00150		LocalCheck.SetFont(F_Normal);
00151		LocalCheck.Align = TA_Right;
00152		if (GetLevel().Game != None)
00153			LocalCheck.bChecked = GetLevel().Game.Default.bLocalLog;
00154		else
00155			LocalCheck.bDisabled = True;
00156		ControlOffset += 25;
00157	}
00158	
00159	function AfterCreate()
00160	{
00161		Super.AfterCreate();
00162		DesiredWidth = 220;
00163		DesiredHeight = ControlOffset;
00164	}
00165	
00166	function BeforePaint(Canvas C, float X, float Y)
00167	{
00168		local int ControlWidth, ControlLeft, ControlRight;
00169		local int CenterWidth, CenterPos;
00170	
00171		ControlWidth = WinWidth/2.5;
00172		ControlLeft = (WinWidth/2 - ControlWidth)/2;
00173		ControlRight = WinWidth/2 + ControlLeft;
00174	
00175		CenterWidth = (WinWidth/4)*3;
00176		CenterPos = (WinWidth - CenterWidth)/2;
00177	
00178		WeaponFlashCheck.SetSize(ControlWidth, 1);
00179		WeaponFlashCheck.WinLeft = ControlRight;
00180	
00181		DodgingCheck.SetSize(ControlWidth, 1);
00182		DodgingCheck.WinLeft = ControlLeft;
00183	
00184		WeaponHandCombo.SetSize(CenterWidth, 1);
00185		WeaponHandCombo.WinLeft = CenterPos;
00186		WeaponHandCombo.EditBoxWidth = 90;
00187	
00188		ViewBobSlider.SetSize(CenterWidth, 1);
00189		ViewBobSlider.SliderWidth = 90;
00190		ViewBobSlider.WinLeft = CenterPos;
00191	
00192		if(SpeedSlider != None)
00193		{
00194			SpeedSlider.SetSize(CenterWidth, 1);
00195			SpeedSlider.SliderWidth = 90;
00196			SpeedSlider.WinLeft = CenterPos;
00197		}
00198	
00199		if(GoreCombo != None)
00200		{
00201			GoreCombo.SetSize(CenterWidth, 1);
00202			GoreCombo.WinLeft = CenterPos;
00203			GoreCombo.EditBoxWidth = 90;
00204		}
00205	
00206		LocalCheck.SetSize(CenterWidth - 60, 1);
00207		LocalCheck.WinLeft = CenterPos + 30;
00208	}
00209	
00210	function Notify(UWindowDialogControl C, byte E)
00211	{
00212		switch(E)
00213		{
00214		case DE_Change:
00215			switch(C)
00216			{
00217			case WeaponFlashCheck:
00218				WeaponFlashChecked();
00219				break;
00220			case DodgingCheck:
00221				DodgingChecked();
00222				break;
00223			case WeaponHandCombo:
00224				WeaponHandChanged();
00225				break;
00226			case ViewBobSlider:
00227				ViewBobChanged();
00228				break;
00229			case SpeedSlider:
00230				SpeedChanged();
00231				break;
00232			case GoreCombo:
00233				GoreChanged();
00234				break;
00235			case LocalCheck:
00236				LocalChecked();
00237				break;
00238			}
00239		}
00240		Super.Notify(C, E);
00241	}
00242	
00243	function WeaponFlashChecked()
00244	{
00245		GetPlayerOwner().bNoFlash = !WeaponFlashCheck.bChecked;
00246	}
00247	
00248	function DodgingChecked()
00249	{
00250		if(DodgingCheck.bChecked)
00251			GetPlayerOwner().ChangeDodgeClickTime(0.25);
00252		else
00253			GetPlayerOwner().ChangeDodgeClickTime(-1.0);
00254	}
00255	
00256	function WeaponHandChanged()
00257	{
00258		GetPlayerOwner().ChangeSetHand(WeaponHandCombo.GetValue2());
00259	}
00260	
00261	function ViewBobChanged()
00262	{
00263		GetPlayerOwner().UpdateBob((ViewBobSlider.Value * 4) / 1000);
00264	}
00265	
00266	function SpeedChanged()
00267	{
00268		local int S;
00269	
00270		S = SpeedSlider.GetValue();
00271		SpeedSlider.SetText(SpeedText$" ["$S$"%]:");
00272		if(GetLevel().Game != None)
00273			GetLevel().Game.SetGameSpeed(float(S) / 100.0);
00274	}
00275	
00276	function GoreChanged()
00277	{
00278		local bool bLowGore, bVeryLowGore;
00279	
00280		switch(GoreCombo.GetSelectedIndex())
00281		{
00282		case 0:
00283			bLowGore = False;
00284			bVeryLowGore = False;
00285			break;
00286		case 1:
00287			bLowGore = True;
00288			bVeryLowGore = False;
00289			break;
00290		case 2:
00291			bLowGore = True;
00292			bVeryLowGore = True;
00293			break;
00294		}
00295	
00296		if (GetLevel().Game != None)
00297		{
00298			GetLevel().Game.bLowGore = bLowGore;
00299			GetLevel().Game.bVeryLowGore = bVeryLowGore;
00300		}
00301	
00302		class'GameInfo'.default.bLowGore = bLowGore;
00303		class'GameInfo'.default.bVeryLowGore = bVeryLowGore;
00304	}
00305	
00306	function SaveConfigs()
00307	{
00308		GetPlayerOwner().SaveConfig();
00309		if ( GetLevel().Game != None )
00310		{
00311			GetLevel().Game.SaveConfig();
00312			GetLevel().Game.GameReplicationInfo.SaveConfig();
00313		}
00314		class'GameInfo'.static.StaticSaveConfig();
00315		Super.SaveConfigs();
00316	}
00317	
00318	function LocalChecked()
00319	{
00320		if (GetLevel().Game != None)
00321			GetLevel().Game.bLocalLog = LocalCheck.bChecked;
00322	}
00323	
00324	defaultproperties
00325	{
00326	     WeaponFlashText="Weapon Flash"
00327	     WeaponFlashHelp="If checked, your screen will flash when you fire your weapon."
00328	     WeaponHandText="Weapon Hand"
00329	     WeaponHandHelp="Select where your weapon will appear."
00330	     LeftName="Left"
00331	     CenterName="Center"
00332	     RightName="Right"
00333	     HiddenName="Hidden"
00334	     DodgingText="Dodging"
00335	     DodgingHelp="If checked, double tapping the movement keys (forward, back, and strafe left or right) will result in a fast dodge move."
00336	     ViewBobText="View Bob"
00337	     ViewBobHelp="Use the slider to adjust the amount your view will bob when moving."
00338	     SpeedText="Game Speed"
00339	     GoreText="Gore Level"
00340	     GoreHelp="Choose the level of gore you wish to see in the game."
00341	     GoreLevels(0)="Normal"
00342	     GoreLevels(1)="Reduced"
00343	     GoreLevels(2)="Ultra-Low"
00344	     LocalText="ngStats Local Logging"
00345	     LocalHelp="If checked, your system will log local botmatch and single player tournament games for stat compilation."
00346	     bShowGoreControl=True
00347	     ControlOffset=20.000000
00348	}

End Source Code