void ShowNextStage()
        {
            int stage = (int)currentStage + 1;

            currentStage = (SetupStages)stage;
            switch (currentStage)
            {
            case SetupStages.GameFolder:
                ShowGameFolderStage();
                break;

            case SetupStages.Resolution:
                ShowResolutionPanel();
                break;

            case SetupStages.Options:
                ShowOptionsPanel();
                break;

            //case SetupStages.Summary:
            //    ShowSummaryPanel();
            //    break;
            case SetupStages.LaunchGame:
                SceneManager.LoadScene(DaggerfallWorkshop.Game.Utility.SceneControl.GameSceneIndex);
                break;
            }
        }
        protected override void Setup()
        {
            AllowCancel = false;
            LoadResources();

            // Add exit button
            Button exitButton = new Button();

            exitButton.Size = new Vector2(20, 9);
            exitButton.HorizontalAlignment = HorizontalAlignment.Center;
            exitButton.VerticalAlignment   = VerticalAlignment.Bottom;
            exitButton.BackgroundColor     = new Color(0.2f, 0.2f, 0.2f, 0.6f);
            exitButton.Outline.Enabled     = true;
            exitButton.Label.Text          = GetText("exit");
            exitButton.OnMouseClick       += ExitButton_OnMouseClick;
            NativePanel.Components.Add(exitButton);

            // If actually validated and we just want to see settings then move direct to settings page
            if (DaggerfallUnity.Instance.IsPathValidated && DaggerfallUnity.Settings.ShowOptionsAtStart)
            {
                currentStage = SetupStages.Options - 1;
            }

            moveNextStage = true;
        }
        protected override void Setup()
        {
            AllowCancel = false;
            LoadResources();

            // Add exit button
            Button exitButton = new Button();

            exitButton.Size = new Vector2(20, 9);
            exitButton.HorizontalAlignment = HorizontalAlignment.Center;
            exitButton.VerticalAlignment   = VerticalAlignment.Bottom;
            exitButton.BackgroundColor     = new Color(0.2f, 0.2f, 0.2f, 0.6f);
            exitButton.Outline.Enabled     = true;
            exitButton.Label.Text          = GetText("exit");
            exitButton.OnMouseClick       += ExitButton_OnMouseClick;
            exitButton.Hotkey = DaggerfallShortcut.GetBinding(DaggerfallShortcut.Buttons.GameSetupExit);
            NativePanel.Components.Add(exitButton);

            // If actually validated and we just want to see settings then move direct to settings page
            if (DaggerfallUnity.Instance.IsPathValidated && (DaggerfallUnity.Settings.ShowOptionsAtStart || Input.anyKey))
            {
                currentStage = SetupStages.Options - 1;
            }

            moveNextStage = true;

            int cursorWidth  = 32;
            int cursorHeight = 32;

            // Apply joystick settings to input manager to keep consistency between the setup wizard and the game
            InputManager.Instance.JoystickCursorSensitivity = DaggerfallUnity.Settings.JoystickCursorSensitivity;
            InputManager.Instance.JoystickDeadzone          = DaggerfallUnity.Settings.JoystickDeadzone;

            // Override cursor
            Texture2D tex;

            if (TextureReplacement.TryImportTexture("Cursor", true, out tex))
            {
                CursorMode cursorMode = CursorMode.Auto;
                cursorWidth  = tex.width;
                cursorHeight = tex.height;

                // Cases when true cursor size cannot be achieved using hardware accelerated cursor
                if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.Windows && (cursorWidth > 32 || cursorHeight > 32))
                {
                    cursorMode = CursorMode.ForceSoftware;
                }

                Cursor.SetCursor(tex, Vector2.zero, cursorMode);
                Debug.Log("Cursor texture overridden by mods.");
            }

            DaggerfallUnity.Settings.CursorWidth  = cursorWidth;
            DaggerfallUnity.Settings.CursorHeight = cursorHeight;
        }
        protected override void Setup()
        {
            AllowCancel = false;
            LoadResources();

            // Add exit button
            Button exitButton = new Button();

            exitButton.Size = new Vector2(20, 9);
            exitButton.HorizontalAlignment = HorizontalAlignment.Center;
            exitButton.VerticalAlignment   = VerticalAlignment.Bottom;
            exitButton.BackgroundColor     = new Color(0.2f, 0.2f, 0.2f, 0.6f);
            exitButton.Outline.Enabled     = true;
            exitButton.Label.Text          = GetText("exit");
            exitButton.OnMouseClick       += ExitButton_OnMouseClick;
            exitButton.Hotkey = DaggerfallShortcut.GetBinding(DaggerfallShortcut.Buttons.GameSetupExit);
            NativePanel.Components.Add(exitButton);

            // If actually validated and we just want to see settings then move direct to settings page
            if (DaggerfallUnity.Instance.IsPathValidated && (DaggerfallUnity.Settings.ShowOptionsAtStart || Input.anyKey))
            {
                currentStage = SetupStages.Options - 1;
            }

            moveNextStage = true;

            // Apply joystick settings to input manager to keep consistency between the setup wizard and the game
            InputManager.Instance.JoystickCursorSensitivity = DaggerfallUnity.Settings.JoystickCursorSensitivity;
            InputManager.Instance.JoystickDeadzone          = DaggerfallUnity.Settings.JoystickDeadzone;

            // Override cursor
            Texture2D tex;

            if (TextureReplacement.TryImportTexture("Cursor", true, out tex))
            {
                Cursor.SetCursor(tex, Vector2.zero, CursorMode.Auto);
                Debug.Log("Cursor texture overridden by mods.");
            }
        }
 void ShowNextStage()
 {
     int stage = (int)currentStage + 1;
     currentStage = (SetupStages)stage;
     switch (currentStage)
     {
         case SetupStages.GameFolder:
             ShowGameFolderStage();
             break;
         case SetupStages.Resolution:
             ShowResolutionPanel();
             break;
         case SetupStages.Options:
             ShowOptionsPanel();
             break;
         //case SetupStages.Summary:
         //    ShowSummaryPanel();
         //    break;
         case SetupStages.LaunchGame:
             SceneManager.LoadScene(DaggerfallWorkshop.Game.Utility.SceneControl.GameSceneIndex);
             break;
     }
 }
        protected override void Setup()
        {
            AllowCancel = false;
            LoadResources();

            // Add exit button
            Button exitButton = new Button();
            exitButton.Size = new Vector2(20, 9);
            exitButton.HorizontalAlignment = HorizontalAlignment.Center;
            exitButton.VerticalAlignment = VerticalAlignment.Bottom;
            exitButton.BackgroundColor = new Color(0.2f, 0.2f, 0.2f, 0.6f);
            exitButton.Outline.Enabled = true;
            exitButton.Label.Text = exitButtonText;
            exitButton.OnMouseClick += ExitButton_OnMouseClick;
            NativePanel.Components.Add(exitButton);

            // If actually validated and we just want to see settings then move direct to settings page
            if (DaggerfallUnity.Instance.IsPathValidated && DaggerfallUnity.Settings.ShowOptionsAtStart)
            {
                currentStage = SetupStages.Options - 1;
            }

            moveNextStage = true;
        }