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());
        }