UMenu
Class UMenuVideoClientWindow

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

class UMenuVideoClientWindow
extends UMenu.UMenuPageWindow


Variables
 string BitsText
 string BrightnessHelp
 UWindowHSliderControl BrightnessSlider
 string BrightnessText
 UWindowComboControl ColorDepthCombo
 string ColorDepthHelp
 string ColorDepthText
 string ConfirmDriverText
 string ConfirmDriverTitle
 string ConfirmSettingsCancelText
 string ConfirmSettingsCancelTitle
 string ConfirmSettingsText
 string ConfirmSettingsTitle
 ConfirmWorldTextureDetail, ConfirmSkinTextureDetail
 string ConfirmTextureDetailText
 string ConfirmTextureDetailTitle
 float ControlOffset
 string Details[3]
 UWindowSmallButton DriverButton
 string DriverButtonHelp
 string DriverButtonText
 UWindowLabelControl DriverDesc
 string DriverHelp
 UWindowLabelControl DriverLabel
 string DriverText
 UWindowCheckbox DynamicLightsCheck
 string DynamicLightsHelp
 string DynamicLightsText
 UWindowComboControl GuiSkinCombo
 string GuiSkinHelp
 string GuiSkinText
 UWindowEditControl MinFramerateEdit
 string MinFramerateHelp
 string MinFramerateText
 string MouseHelp
 UWindowHSliderControl MouseSlider
 string MouseText
 string OldSettings
 int OldSkinDetail
 int OldTextureDetail
 UWindowComboControl ResolutionCombo
 string ResolutionHelp
 string ResolutionText
 UWindowComboControl ScaleCombo
 string ScaleHelp
 string ScaleSizes[2]
 string ScaleText
 UWindowCheckbox ShowDecalsCheck
 string ShowDecalsHelp
 string ShowDecalsText
 UWindowComboControl SkinDetailCombo
 string SkinDetailHelp
 string SkinDetailText
 UWindowComboControl TextureDetailCombo
 string TextureDetailHelp
 string TextureDetailText
 bool bInitialized


Function Summary
 void AfterCreate()
 void BeforePaint(Canvas C, float X, float Y)
 void BrightnessChanged()
 void Created()
 void DecalsChanged()
 void DriverChange()
     
/*
 * Message Crackers
 */
 void DynamicChanged()
 void LoadAvailableSettings()
 void MessageBoxDone(UWindowMessageBox W, MessageBoxResult Result)
 void MinFramerateChanged()
 void MouseChanged()
 void Notify(UWindowDialogControl C, byte E)
 void ResolutionChanged(float W, float H)
 void SaveConfigs()
 void ScaleChanged()
 void SettingsChanged()
 void SkinDetailChanged()
 void SkinDetailSet()
 void TextureDetailChanged()
 void TextureDetailSet()



Source Code


00001	class UMenuVideoClientWindow extends UMenuPageWindow;
00002	
00003	// Driver
00004	var bool bInitialized;
00005	var UWindowLabelControl DriverLabel;
00006	var UWindowLabelControl DriverDesc;
00007	var UWindowSmallButton DriverButton;
00008	var localized string DriverText;
00009	var localized string DriverHelp;
00010	var localized string DriverButtonText;
00011	var localized string DriverButtonHelp;
00012	
00013	// Resolution
00014	var UWindowComboControl ResolutionCombo;
00015	var localized string ResolutionText;
00016	var localized string ResolutionHelp;
00017	
00018	var string OldSettings;
00019	
00020	// Color Depth
00021	var UWindowComboControl ColorDepthCombo;
00022	var localized string ColorDepthText;
00023	var localized string ColorDepthHelp;
00024	var localized string BitsText;
00025	
00026	// Texture Detail
00027	var UWindowComboControl TextureDetailCombo;
00028	var localized string TextureDetailText;
00029	var localized string TextureDetailHelp;
00030	var localized string Details[3];
00031	var int OldTextureDetail;
00032	
00033	// Skin Detail
00034	var UWindowComboControl SkinDetailCombo;
00035	var localized string SkinDetailText;
00036	var localized string SkinDetailHelp;
00037	var int OldSkinDetail;
00038	
00039	// Brightness
00040	var UWindowHSliderControl BrightnessSlider;
00041	var localized string BrightnessText;
00042	var localized string BrightnessHelp;
00043	
00044	// GUI Scale
00045	var UWindowComboControl ScaleCombo;
00046	var localized string ScaleText;
00047	var localized string ScaleHelp;
00048	
00049	var localized string ScaleSizes[2];
00050	
00051	// Mouse Speed
00052	var UWindowHSliderControl MouseSlider;
00053	var localized string MouseText;
00054	var localized string MouseHelp;
00055	
00056	// GUI Skin
00057	var UWindowComboControl GuiSkinCombo;
00058	var localized string GuiSkinText;
00059	var localized string GuiSkinHelp;
00060	
00061	var float ControlOffset;
00062	
00063	var UWindowMessageBox ConfirmSettings, ConfirmDriver, ConfirmWorldTextureDetail, ConfirmSkinTextureDetail;
00064	var localized string ConfirmSettingsTitle;
00065	var localized string ConfirmSettingsText;
00066	var localized string ConfirmSettingsCancelTitle;
00067	var localized string ConfirmSettingsCancelText;
00068	var localized string ConfirmTextureDetailTitle;
00069	var localized string ConfirmTextureDetailText;
00070	var localized string ConfirmDriverTitle;
00071	var localized string ConfirmDriverText;
00072	
00073	// Show Decals
00074	var UWindowCheckbox ShowDecalsCheck;
00075	var localized string ShowDecalsText;
00076	var localized string ShowDecalsHelp;
00077	
00078	// Min Desired Frame Rate
00079	var UWindowEditControl MinFramerateEdit;
00080	var localized string MinFramerateText;
00081	var localized string MinFramerateHelp;
00082	
00083	// Dynamic Lights
00084	var UWindowCheckbox DynamicLightsCheck;
00085	var localized string DynamicLightsText;
00086	var localized string DynamicLightsHelp;
00087	
00088	function Created()
00089	{
00090		local bool bLowSoundQuality;
00091		local int MusicVolume, SoundVolume;
00092		local int ControlWidth, ControlLeft, ControlRight;
00093		local int CenterWidth, CenterPos;
00094		local int i, MinRate;
00095		local string NextLook, NextDesc;
00096		local string VideoDriverClassName, ClassLeft, ClassRight, VideoDriverDesc;
00097	
00098		Super.Created();
00099	
00100		ControlWidth = WinWidth/2.5;
00101		ControlLeft = (WinWidth/2 - ControlWidth)/2;
00102		ControlRight = WinWidth/2 + ControlLeft;
00103	
00104		CenterWidth = (WinWidth/4)*3;
00105		CenterPos = (WinWidth - CenterWidth)/2;
00106		
00107		VideoDriverClassName = GetPlayerOwner().ConsoleCommand("get ini:Engine.Engine.GameRenderDevice Class");
00108		i = InStr(VideoDriverClassName, "'");
00109		// Get class name from class'...'
00110		if(i != -1)
00111		{
00112			VideoDriverClassName = Mid(VideoDriverClassName, i+1);
00113			i = InStr(VideoDriverClassName, "'");
00114			VideoDriverClassName = Left(VideoDriverClassName, i);
00115			ClassLeft = Left(VideoDriverClassName, InStr(VideoDriverClassName, "."));
00116			ClassRight = Mid(VideoDriverClassName, InStr(VideoDriverClassName, ".") + 1);
00117			VideoDriverDesc = Localize(ClassRight, "ClassCaption", ClassLeft);
00118		}
00119		else
00120			VideoDriverDesc = "VideoDriverClassName";
00121	
00122		// Driver
00123		DriverLabel = UWindowLabelControl(CreateControl(class'UWindowLabelControl', ControlLeft, ControlOffset, ControlWidth, 1));
00124		DriverLabel.SetText(DriverText);
00125		DriverLabel.SetHelpText(DriverHelp);
00126		DriverLabel.SetFont(F_Normal);
00127	
00128		DriverDesc = UWindowLabelControl(CreateControl(class'UWindowLabelControl', ControlRight, ControlOffset, ControlWidth, 1));
00129		DriverDesc.SetText(VideoDriverDesc);
00130		DriverDesc.SetHelpText(DriverHelp);
00131		DriverDesc.SetFont(F_Normal);
00132		ControlOffset += 17;
00133	
00134		DriverButton = UWindowSmallButton(CreateControl(class'UWindowSmallButton', ControlRight, ControlOffset, 48, 16));
00135		DriverButton.SetText(DriverButtonText);
00136		DriverButton.SetFont(F_Normal);
00137		DriverButton.SetHelpText(DriverButtonHelp);
00138		ControlOffset += 25;
00139	
00140	
00141		// Resolution
00142		ResolutionCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', CenterPos, ControlOffset, CenterWidth, 1));
00143		ResolutionCombo.SetText(ResolutionText);
00144		ResolutionCombo.SetHelpText(ResolutionHelp);
00145		ResolutionCombo.SetFont(F_Normal);
00146		ResolutionCombo.SetEditable(False);
00147		ControlOffset += 25;
00148	
00149		ColorDepthCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', CenterPos, ControlOffset, CenterWidth, 1));
00150		ColorDepthCombo.SetText(ColorDepthText);
00151		ColorDepthCombo.SetHelpText(ColorDepthHelp);
00152		ColorDepthCombo.SetFont(F_Normal);
00153		ColorDepthCombo.SetEditable(False);
00154		ControlOffset += 25;
00155	
00156		// Texture Detail
00157		TextureDetailCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', CenterPos, ControlOffset, CenterWidth, 1));
00158		TextureDetailCombo.SetText(TextureDetailText);
00159		TextureDetailCombo.SetHelpText(TextureDetailHelp);
00160		TextureDetailCombo.SetFont(F_Normal);
00161		TextureDetailCombo.SetEditable(False);
00162		ControlOffset += 25;
00163	
00164		// The display names are localized.  These strings match the enums in UnCamMgr.cpp.
00165		TextureDetailCombo.AddItem(Details[0], "High");
00166		TextureDetailCombo.AddItem(Details[1], "Medium");
00167		TextureDetailCombo.AddItem(Details[2], "Low");
00168	
00169		// Skin Detail
00170		SkinDetailCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', CenterPos, ControlOffset, CenterWidth, 1));
00171		SkinDetailCombo.SetText(SkinDetailText);
00172		SkinDetailCombo.SetHelpText(SkinDetailHelp);
00173		SkinDetailCombo.SetFont(F_Normal);
00174		SkinDetailCombo.SetEditable(False);
00175		SkinDetailCombo.AddItem(Details[0], "High");
00176		SkinDetailCombo.AddItem(Details[1], "Medium");
00177		SkinDetailCombo.AddItem(Details[2], "Low");
00178		ControlOffset += 25;
00179	
00180		// Brightness
00181		BrightnessSlider = UWindowHSliderControl(CreateControl(class'UWindowHSliderControl', CenterPos, ControlOffset, CenterWidth, 1));
00182		BrightnessSlider.bNoSlidingNotify = True;
00183		BrightnessSlider.SetRange(2, 10, 1);
00184		BrightnessSlider.SetText(BrightnessText);
00185		BrightnessSlider.SetHelpText(BrightnessHelp);
00186		BrightnessSlider.SetFont(F_Normal);
00187		ControlOffset += 25;
00188	
00189		// GUI Mouse speed
00190		MouseSlider = UWindowHSliderControl(CreateControl(class'UWindowHSliderControl', CenterPos, ControlOffset, CenterWidth, 1));
00191		MouseSlider.bNoSlidingNotify = True;
00192		MouseSlider.SetRange(40, 500, 5);
00193		MouseSlider.SetText(MouseText);
00194		MouseSlider.SetHelpText(MouseHelp);
00195		MouseSlider.SetFont(F_Normal);
00196		ControlOffset += 25;
00197	
00198		// GUI Scale
00199		ScaleCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', CenterPos, ControlOffset, CenterWidth, 1));
00200		ScaleCombo.SetText(ScaleText);
00201		ScaleCombo.SetHelpText(ScaleHelp);
00202		ScaleCombo.SetFont(F_Normal);
00203		ScaleCombo.SetEditable(False);
00204		ScaleCombo.AddItem(ScaleSizes[0], "10");
00205		ScaleCombo.AddItem(ScaleSizes[1], "20");
00206		ControlOffset += 25;
00207	
00208		GuiSkinCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', CenterPos, ControlOffset, CenterWidth, 1));
00209		GuiSkinCombo.SetText(GuiSkinText);
00210		GuiSkinCombo.SetHelpText(GuiSkinHelp);
00211		GuiSkinCombo.SetFont(F_Normal);
00212		GuiSkinCombo.SetEditable(False);
00213		ControlOffset += 25;
00214		i=0;
00215		GetPlayerOwner().GetNextIntDesc("UWindowLookAndFeel", 0, NextLook, NextDesc);
00216		while( (NextLook != "") && (i < 32) )
00217		{
00218			GuiSkinCombo.AddItem(NextDesc, NextLook);
00219			i++;
00220			GetPlayerOwner().GetNextIntDesc("UWindowLookAndFeel", i, NextLook, NextDesc);
00221		}
00222		GuiSkinCombo.Sort();
00223	
00224		// Min Desired Framerate
00225		MinFramerateEdit = UWindowEditControl(CreateControl(class'UWindowEditControl', CenterPos, ControlOffset, CenterWidth, 1));
00226		MinFramerateEdit.SetText(MinFramerateText);
00227		MinFramerateEdit.SetHelpText(MinFramerateHelp);
00228		MinFramerateEdit.SetFont(F_Normal);
00229		MinFramerateEdit.SetNumericOnly(True);
00230		MinFramerateEdit.SetMaxLength(3);
00231		MinFramerateEdit.Align = TA_Left;
00232		MinRate = int(GetPlayerOwner().ConsoleCommand("get ini:Engine.Engine.ViewportManager MinDesiredFrameRate"));
00233		MinFramerateEdit.SetValue(string(MinRate));
00234		ControlOffset += 25;
00235	
00236		// Show Decals
00237		ShowDecalsCheck = UWindowCheckbox(CreateControl(class'UWindowCheckbox', CenterPos, ControlOffset, CenterWidth, 1));
00238		ShowDecalsCheck.bChecked = bool(GetPlayerOwner().ConsoleCommand("get ini:Engine.Engine.ViewportManager Decals"));
00239		ShowDecalsCheck.SetText(ShowDecalsText);
00240		ShowDecalsCheck.SetHelpText(ShowDecalsHelp);
00241		ShowDecalsCheck.SetFont(F_Normal);
00242		ShowDecalsCheck.Align = TA_Left;
00243		ControlOffset += 25;
00244	
00245		// Dynamic Lights
00246		DynamicLightsCheck = UWindowCheckbox(CreateControl(class'UWindowCheckbox', CenterPos, ControlOffset, CenterWidth, 1));
00247		DynamicLightsCheck.bChecked = bool(GetPlayerOwner().ConsoleCommand("get ini:Engine.Engine.ViewportManager NoDynamicLights"));
00248		DynamicLightsCheck.bChecked = !DynamicLightsCheck.bChecked;
00249		DynamicLightsCheck.SetText(DynamicLightsText);
00250		DynamicLightsCheck.SetHelpText(DynamicLightsHelp);
00251		DynamicLightsCheck.SetFont(F_Normal);
00252		DynamicLightsCheck.Align = TA_Left;
00253		ControlOffset += 25;
00254	
00255		LoadAvailableSettings();
00256	}
00257	
00258	function AfterCreate()
00259	{
00260		Super.AfterCreate();
00261	
00262		DesiredWidth = 220;
00263		DesiredHeight = ControlOffset;
00264	}
00265	
00266	function LoadAvailableSettings()
00267	{
00268		local float Brightness;
00269		local int P;
00270		local string CurrentDepth;
00271		local string ParseString;
00272	
00273		bInitialized = False;
00274	
00275		// Load available video drivers and current video driver here.
00276	
00277		ResolutionCombo.Clear();
00278		ParseString = GetPlayerOwner().ConsoleCommand("GetRes");
00279		P = InStr(ParseString, " ");
00280		while (P != -1) 
00281		{
00282			ResolutionCombo.AddItem(Left(ParseString, P));
00283			ParseString = Mid(ParseString, P+1);
00284			P = InStr(ParseString, " ");
00285		}
00286		ResolutionCombo.AddItem(ParseString);
00287		ResolutionCombo.SetValue(GetPlayerOwner().ConsoleCommand("GetCurrentRes"));
00288	
00289		ColorDepthCombo.Clear();
00290		ParseString = GetPlayerOwner().ConsoleCommand("GetColorDepths");
00291		P = InStr(ParseString, " ");
00292		while (P != -1) 
00293		{
00294			ColorDepthCombo.AddItem(Left(ParseString, P)@BitsText, Left(ParseString, P));
00295			ParseString = Mid(ParseString, P+1);
00296			P = InStr(ParseString, " ");
00297		}
00298		ColorDepthCombo.AddItem(ParseString@BitsText, ParseString);
00299		CurrentDepth = GetPlayerOwner().ConsoleCommand("GetCurrentColorDepth");
00300		ColorDepthCombo.SetValue(CurrentDepth@BitsText, CurrentDepth);
00301	
00302		GuiSkinCombo.SetSelectedIndex(Max(GuiSkinCombo.FindItemIndex2(Root.LookAndFeelClass, True), 0));
00303		OldTextureDetail = Max(0, TextureDetailCombo.FindItemIndex2(GetPlayerOwner().ConsoleCommand("get ini:Engine.Engine.ViewportManager TextureDetail")));
00304		TextureDetailCombo.SetSelectedIndex(OldTextureDetail);
00305		OldSkinDetail = Max(0, SkinDetailCombo.FindItemIndex2(GetPlayerOwner().ConsoleCommand("get ini:Engine.Engine.ViewportManager SkinDetail")));
00306		SkinDetailCombo.SetSelectedIndex(OldSkinDetail);
00307		Brightness = int(float(GetPlayerOwner().ConsoleCommand("get ini:Engine.Engine.ViewportManager Brightness")) * 10);
00308		BrightnessSlider.SetValue(Brightness);
00309		MouseSlider.SetValue(Root.Console.MouseScale * 100);
00310		ScaleCombo.SetSelectedIndex(Max(ScaleCombo.FindItemIndex2(string(int(Root.GUIScale*10))), 0));
00311	
00312		bInitialized = True;
00313	}
00314	
00315	function ResolutionChanged(float W, float H)
00316	{
00317		Super.ResolutionChanged(H, H);
00318		if(GetPlayerOwner().ConsoleCommand("GetCurrentRes") != ResolutionCombo.GetValue())
00319			LoadAvailableSettings();
00320	}
00321	
00322	function BeforePaint(Canvas C, float X, float Y)
00323	{
00324		local int ControlWidth, ControlLeft, ControlRight;
00325		local int CenterWidth, CenterPos;
00326	
00327		Super.BeforePaint(C, X, Y);
00328	
00329		ControlWidth = WinWidth/2.5;
00330		ControlLeft = (WinWidth/2 - ControlWidth)/2;
00331		ControlRight = WinWidth/2 + ControlLeft;
00332	
00333		CenterWidth = (WinWidth/4)*3;
00334		CenterPos = (WinWidth - CenterWidth)/2;
00335	
00336		DriverLabel.SetSize(CenterWidth-100, 1);
00337		DriverLabel.WinLeft = CenterPos;
00338	
00339		DriverDesc.SetSize(200, 1);
00340		DriverDesc.WinLeft = CenterPos + CenterWidth - 100;
00341	
00342		DriverButton.AutoWidth(C);
00343		DriverButton.WinLeft = CenterPos + CenterWidth - 100;
00344	
00345		ResolutionCombo.SetSize(CenterWidth, 1);
00346		ResolutionCombo.WinLeft = CenterPos;
00347		ResolutionCombo.EditBoxWidth = 100;
00348	
00349		ColorDepthCombo.SetSize(CenterWidth, 1);
00350		ColorDepthCombo.WinLeft = CenterPos;
00351		ColorDepthCombo.EditBoxWidth = 100;
00352	
00353		TextureDetailCombo.SetSize(CenterWidth, 1);
00354		TextureDetailCombo.WinLeft = CenterPos;
00355		TextureDetailCombo.EditBoxWidth = 100;
00356	
00357		SkinDetailCombo.SetSize(CenterWidth, 1);
00358		SkinDetailCombo.WinLeft = CenterPos;
00359		SkinDetailCombo.EditBoxWidth = 100;
00360	
00361		BrightnessSlider.SetSize(CenterWidth, 1);
00362		BrightnessSlider.SliderWidth = 100;
00363		BrightnessSlider.WinLeft = CenterPos;
00364	
00365		ScaleCombo.SetSize(CenterWidth, 1);
00366		ScaleCombo.WinLeft = CenterPos;
00367		ScaleCombo.EditBoxWidth = 100;
00368	
00369		MouseSlider.SetSize(CenterWidth, 1);
00370		MouseSlider.SliderWidth = 100;
00371		MouseSlider.WinLeft = CenterPos;
00372	
00373		GuiSkinCombo.SetSize(CenterWidth, 1);
00374		GuiSkinCombo.WinLeft = CenterPos;
00375		GuiSkinCombo.EditBoxWidth = 100;
00376	
00377		ShowDecalsCheck.SetSize(CenterWidth-100+16, 1);
00378		ShowDecalsCheck.WinLeft = CenterPos;
00379	
00380		DynamicLightsCheck.SetSize(CenterWidth-100+16, 1);
00381		DynamicLightsCheck.WinLeft = CenterPos;
00382	
00383		MinFramerateEdit.SetSize(CenterWidth-100+30, 1);
00384		MinFramerateEdit.WinLeft = CenterPos;
00385		MinFramerateEdit.EditBoxWidth = 30;
00386	}
00387	
00388	function Notify(UWindowDialogControl C, byte E)
00389	{
00390		Super.Notify(C, E);
00391	
00392		switch(E)
00393		{
00394		case DE_Click:
00395			switch(C)
00396			{
00397			case DriverButton:
00398				DriverChange();
00399				break;
00400			}
00401			break;
00402		case DE_Change:
00403			switch(C)
00404			{
00405			case ResolutionCombo:
00406			case ColorDepthCombo:
00407				SettingsChanged();
00408				break;
00409			case TextureDetailCombo:
00410				TextureDetailChanged();
00411				break;
00412			case SkinDetailCombo:
00413				SkinDetailChanged();
00414				break;
00415			case BrightnessSlider:
00416				BrightnessChanged();
00417				break;
00418			case ScaleCombo:
00419				ScaleChanged();
00420				break;
00421			case MouseSlider:
00422				MouseChanged();
00423				break;
00424			case ShowDecalsCheck:
00425				DecalsChanged();
00426				break;
00427			case DynamicLightsCheck:
00428				DynamicChanged();
00429				break;
00430			case MinFramerateEdit:
00431				MinFramerateChanged();
00432				break;
00433			}
00434			break;
00435		}
00436	}
00437	
00438	/*
00439	 * Message Crackers
00440	 */
00441	
00442	
00443	function DriverChange()
00444	{
00445		ConfirmDriver = MessageBox(ConfirmDriverTitle, ConfirmDriverText, MB_YesNo, MR_No);
00446	}
00447	
00448	function SettingsChanged()
00449	{
00450		local string NewSettings;
00451	
00452		if(bInitialized)
00453		{
00454			OldSettings = GetPlayerOwner().ConsoleCommand("GetCurrentRes")$"x"$GetPlayerOwner().ConsoleCommand("GetCurrentColorDepth");
00455			NewSettings = ResolutionCombo.GetValue()$"x"$ColorDepthCombo.GetValue2();
00456	
00457			if(NewSettings != OldSettings)
00458			{
00459				GetPlayerOwner().ConsoleCommand("SetRes "$NewSettings);
00460				LoadAvailableSettings();
00461				ConfirmSettings = MessageBox(ConfirmSettingsTitle, ConfirmSettingsText, MB_YesNo, MR_No, MR_None, 10);
00462			}
00463		}
00464	}
00465	
00466	function MessageBoxDone(UWindowMessageBox W, MessageBoxResult Result)
00467	{
00468		if(W == ConfirmSettings)
00469		{
00470			ConfirmSettings = None;
00471			if(Result != MR_Yes)
00472			{
00473				GetPlayerOwner().ConsoleCommand("SetRes "$OldSettings);
00474				LoadAvailableSettings();			
00475				MessageBox(ConfirmSettingsCancelTitle, ConfirmSettingsCancelText, MB_OK, MR_OK, MR_OK);
00476			}
00477		}
00478		else
00479		if(W == ConfirmDriver)
00480		{
00481			ConfirmDriver = None;
00482			if(Result == MR_Yes)
00483			{
00484				GetParent(class'UWindowFramedWindow').Close();
00485				Root.Console.CloseUWindow();
00486				GetPlayerOwner().ConsoleCommand("RELAUNCH -changevideo");
00487			}
00488		}
00489		if(W == ConfirmSkinTextureDetail)
00490		{
00491			if(Result == MR_Yes)
00492				OldSkinDetail = SkinDetailCombo.GetSelectedIndex();
00493			else
00494				SkinDetailCombo.SetSelectedIndex(OldSkinDetail);
00495		}
00496		if(W == ConfirmWorldTextureDetail)
00497		{
00498			if(Result == MR_Yes)
00499				OldTextureDetail = TextureDetailCombo.GetSelectedIndex();
00500			else
00501				TextureDetailCombo.SetSelectedIndex(OldTextureDetail);
00502		}
00503	}
00504	
00505	function TextureDetailChanged()
00506	{
00507		if(bInitialized)
00508		{
00509			TextureDetailSet();
00510			if( TextureDetailCombo.GetSelectedIndex() < OldTextureDetail )
00511				ConfirmWorldTextureDetail = MessageBox(ConfirmTextureDetailTitle, ConfirmTextureDetailText, MB_YesNo, MR_No, MR_None);	
00512			else
00513				OldTextureDetail = TextureDetailCombo.GetSelectedIndex();
00514		}
00515	}
00516	
00517	function TextureDetailSet()
00518	{
00519		GetPlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager TextureDetail "$TextureDetailCombo.GetValue2());
00520	}
00521	
00522	function SkinDetailChanged()
00523	{
00524		local int D;
00525		if(bInitialized)
00526		{
00527			SkinDetailSet();
00528			if( SkinDetailCombo.GetSelectedIndex() < OldSkinDetail )
00529				ConfirmSkinTextureDetail = MessageBox(ConfirmTextureDetailTitle, ConfirmTextureDetailText, MB_YesNo, MR_No, MR_None);	
00530			else
00531				OldSkinDetail = SkinDetailCombo.GetSelectedIndex();
00532		}
00533	}
00534	
00535	function SkinDetailSet()
00536	{
00537		GetPlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager SkinDetail "$SkinDetailCombo.GetValue2());
00538	}
00539	
00540	function BrightnessChanged()
00541	{
00542		if(bInitialized)
00543		{
00544			GetPlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager Brightness "$(BrightnessSlider.Value / 10));
00545			GetPlayerOwner().ConsoleCommand("FLUSH");
00546		}
00547	}
00548	
00549	function ScaleChanged()
00550	{
00551		if(bInitialized)
00552		{
00553			Root.SetScale(float(ScaleCombo.GetValue2())/10);
00554			Root.SaveConfig();
00555		}
00556	}
00557	
00558	function MouseChanged()
00559	{
00560		if(bInitialized)
00561		{
00562			Root.Console.MouseScale = (MouseSlider.Value / 100);
00563			Root.Console.SaveConfig();
00564		}
00565	}
00566	
00567	function DecalsChanged()
00568	{
00569		GetPlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager Decals "$ShowDecalsCheck.bChecked);
00570	}
00571	
00572	function DynamicChanged()
00573	{
00574		GetPlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager NoDynamicLights "$!DynamicLightsCheck.bChecked);
00575	}
00576	
00577	function MinFramerateChanged()
00578	{
00579		GetPlayerOwner().ConsoleCommand("set ini:Engine.Engine.ViewportManager MinDesiredFrameRate "$MinFramerateEdit.EditBox.Value);
00580	}
00581	
00582	function SaveConfigs()
00583	{
00584		GetPlayerOwner().SaveConfig();
00585		Root.Console.SaveConfig();
00586		Super.SaveConfigs();
00587		if(GuiSkinCombo.GetValue2() != Root.LookAndFeelClass)
00588			Root.ChangeLookAndFeel(GuiSkinCombo.GetValue2());
00589	}
00590	
00591	defaultproperties
00592	{
00593	     DriverText="Video Driver"
00594	     DriverHelp="This is the current video driver.  Use the Change button to change video drivers."
00595	     DriverButtonText="Change"
00596	     DriverButtonHelp="Press this button to change your video driver."
00597	     ResolutionText="Resolution"
00598	     ResolutionHelp="Select a new screen resolution."
00599	     ColorDepthText="Color Depth"
00600	     ColorDepthHelp="Select a new color depth."
00601	     BitsText="bit"
00602	     TextureDetailText="World Texture Detail"
00603	     TextureDetailHelp="Change the texture detail of world geometry.  Use a lower texture detail to improve game performance."
00604	     Details(0)="High"
00605	     Details(1)="Medium"
00606	     Details(2)="Low"
00607	     SkinDetailText="Skin Detail"
00608	     SkinDetailHelp="Change the detail of player skins.  Use a lower skin detail to improve game performance."
00609	     BrightnessText="Brightness"
00610	     BrightnessHelp="Adjust display brightness."
00611	     ScaleText="Font Size"
00612	     ScaleHelp="Adjust the size of elements in the User Interface."
00613	     ScaleSizes(0)="Normal"
00614	     ScaleSizes(1)="Double"
00615	     MouseText="GUI Mouse Speed"
00616	     MouseHelp="Adjust the speed of the mouse in the User Interface."
00617	     GuiSkinText="GUI Skin"
00618	     GuiSkinHelp="Change the look of the User Interface windows to a custom skin."
00619	     ControlOffset=20.000000
00620	     ConfirmSettingsTitle="Confirm Video Settings Change"
00621	     ConfirmSettingsText="Are you sure you wish to keep these new video settings?"
00622	     ConfirmSettingsCancelTitle="Video Settings Change"
00623	     ConfirmSettingsCancelText="Your previous video settings have been restored."
00624	     ConfirmTextureDetailTitle="Confirm Texture Detail"
00625	     ConfirmTextureDetailText="Increasing texture detail above its default value may degrade performance on some machines.\n\nAre you sure you want to make this change?"
00626	     ConfirmDriverTitle="Change Video Driver"
00627	     ConfirmDriverText="This option will restart Unreal now, and enable you to change your video driver.  Do you want to do this?"
00628	     ShowDecalsText="Show Decals"
00629	     ShowDecalsHelp="If checked, impact and gore decals will be used in game."
00630	     MinFramerateText="Min Desired Framerate"
00631	     MinFramerateHelp="If your framerate falls below this value, Unreal Tournament will reduce special effects to increase your framerate."
00632	     DynamicLightsText="Use Dynamic Lighting"
00633	     DynamicLightsHelp="If checked, dynamic lighting will be used in game."
00634	}

End Source Code