private void UpdateApply(Input input) { bool recalculateUiScale; if (GetButtonPress("Apply") || input.IsKeyPressed(Keys.Enter)) { RemoveApplyButton(); ComboMenuCycle menu; //Resolution Change menu = (ComboMenuCycle)GetUiControl("Resolution"); Rectangle rect = (Rectangle)menu.GetSelectedCycleObject(); int newResolutionId = DisplayController.GetResolutionId(rect.Width, rect.Height); recalculateUiScale = newResolutionId != DisplayController.resolutionId; DisplayController.resolutionId = newResolutionId; //Vsync menu = (ComboMenuCycle)GetUiControl("TargetFrameRate"); DisplayController.targetFrameRate = (int)menu.GetSelectedCycleObject(); //Scale menu = (ComboMenuCycle)GetUiControl("Scale"); DisplayController.uiScale = (float)menu.GetSelectedCycleObject(); //Full Screen menu = (ComboMenuCycle)GetUiControl("FullScreen"); bool isFullScreen = (bool)menu.GetSelectedCycleObject(); if (isFullScreen != DisplayController.fullScreen) { DisplayController.fullScreen = (bool)menu.GetSelectedCycleObject(); // if (isFullScreen) // { recalculateUiScale = true; // } } //Night Brightness menu = (ComboMenuCycle)GetUiControl("NightBright"); DisplayController.minNightBrightness = (float)menu.GetSelectedCycleObject(); //MessageSpeed menu = (ComboMenuCycle)GetUiControl("MessageSpeed"); DisplayController.messageSpeed = (float)menu.GetSelectedCycleObject(); DisplayController.UpdateDisplay(recalculateUiScale); //In case we did a forced update of the ui scale size menu = (ComboMenuCycle)GetUiControl("Scale"); menu.SetIndexByFloat(DisplayController.uiScale); //in case we forced it full screen we have changed our full screen res menu = (ComboMenuCycle)GetUiControl("Resolution"); menu.SetIndex(DisplayController.resolutionId); Data.SaveSettings(); ScreenController.ResolutionChange(); WorldController.UpdateMinNightBrightness(); } }