void ApplySettings(GameSettings oldSettings, GameSettings newSettings, bool closeCurrentMenu) { if (GameSettings.CompareSettings(oldSettings, newSettings)) { goto END; } oldSettings.Copy(newSettings); // NOTE: Applying Settings { foreach (SwipeMenu[] swipes in swipeMenus.Values) { foreach (SwipeMenu swipe in swipes) { switch (swipe.type) { case SwipeSetting.Resolution: { swipe.LoopAndSetCurrent(i => GameSettings.CompareResolution(Screen.resolutions[i], newSettings.resolution), true); } break; case SwipeSetting.ScreenMode: { swipe.LoopAndSetCurrent(i => newSettings.mode == (FullScreenMode)i, true); } break; } } } if (vsyncToggle.isOn != newSettings.vsync) { vsyncToggle.isOn = newSettings.vsync; } } END: if (closeCurrentMenu) { CloseCurrentMenu(); } // TODO: Open a "Do you want to discard unsaved changes?" pop-up // OpenMenu(MenuType.UnsavedChanges, bool closePrevMenu); // if (ClickDiscarded()) // { // tempSettings.Copy(currentSettings); // ApplySettings(tempSettings); // CloseCurrentMenu(); // CloseCurrentMenu(); // } // else if (ClickNo()) // { // CloseCurrentMenu(); // } }