private BoolWithMessage ValidateAndUpdateVideoSettings() { if (!int.TryParse(FrameRateLimitText, out int frameRate)) { return(BoolWithMessage.False("Frame Rate must be a valid number between 10 and 999")); } if (frameRate < 10 || frameRate > 999) { return(BoolWithMessage.False("Frame Rate must be a valid number between 10 and 999")); } if (ResolutionText == "Match Desktop Resolution") { GameSettingsManager.ResolutionSizeX = null; GameSettingsManager.ResolutionSizeY = null; } else if (ResolutionText == "Custom") { string[] res = CustomResolutionText.Split(new char[] { 'x' }, StringSplitOptions.RemoveEmptyEntries); if (res.Length != 2) { return(BoolWithMessage.False("Custom resolution invalid. Must be in format '1920x1080'")); } if (!int.TryParse(res[0], out int customResX) || !int.TryParse(res[1], out int customResY)) { return(BoolWithMessage.False("Custom resolution invalid. Must be in format '1920x1080'")); } if (customResX <= 0 || customResY <= 0) { return(BoolWithMessage.False("Custom resolution invalid. Must be in format '1920x1080'")); } GameSettingsManager.ResolutionSizeX = res[0]; GameSettingsManager.ResolutionSizeY = res[1]; } else { string[] res = ResolutionText.Split(new char[] { 'x' }, StringSplitOptions.RemoveEmptyEntries); GameSettingsManager.ResolutionSizeX = res[0]; GameSettingsManager.ResolutionSizeY = res[1]; } GameSettingsManager.EnableVsync = IsVsyncEnabled; GameSettingsManager.FrameRateLimit = frameRate; Enum.TryParse(AntiAliasingText, out VideoSettingsOptions setting); GameSettingsManager.AntiAliasingQuality = (int)setting; Enum.TryParse(ShadowQualityText, out setting); GameSettingsManager.ShadowQuality = (int)setting; Enum.TryParse(ShadingQualityText, out setting); GameSettingsManager.ShadingQuality = (int)setting; Enum.TryParse(TexturesQualityText, out setting); GameSettingsManager.TextureQuality = (int)setting; Enum.TryParse(ViewDistanceQualityText, out setting); GameSettingsManager.ViewDistanceQuality = (int)setting; Enum.TryParse(FoliageQualityText, out setting); GameSettingsManager.FoliageQuality = (int)setting; Enum.TryParse(EffectsQualityText, out setting); GameSettingsManager.EffectsQuality = (int)setting; Enum.TryParse(PostProcessingText, out setting); GameSettingsManager.PostProcessQuality = (int)setting; GameSettingsManager.FullscreenMode = FullscreenDropdownOptions.IndexOf(FullScreenMode); return(GameSettingsManager.SaveVideoSettingsToDisk()); }