Пример #1
0
    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();
        // }
    }