diff --git a/NewHorizons/Handlers/TitleSceneHandler.cs b/NewHorizons/Handlers/TitleSceneHandler.cs index 14aab01f..7183675f 100644 --- a/NewHorizons/Handlers/TitleSceneHandler.cs +++ b/NewHorizons/Handlers/TitleSceneHandler.cs @@ -25,6 +25,7 @@ namespace NewHorizons.Handlers .Where(b => (b.Config.HeightMap != null || b.Config.Atmosphere?.clouds != null) && b.Config.Star == null && b.Config.canShowOnTitle).ToArray(); internal static int eligibleCount => eligibleBodies.Count(); internal static bool reloaded = false; + internal static bool reopenProfile = false; public static void Init() { @@ -110,8 +111,9 @@ namespace NewHorizons.Handlers private static void OnProfileSignInComplete(ProfileManagerSignInResult result) { - NHLogger.LogError($"OnProfileSignInComplete {result}: {StandaloneProfileManager.SharedInstance.currentProfile.profileName}"); + NHLogger.LogVerbose($"OnProfileSignInComplete {result}: {StandaloneProfileManager.SharedInstance.currentProfile.profileName}"); reloaded = true; + reopenProfile = true; // Taken and modified from SubmitActionLoadScene.ConfirmSubmit LoadManager.LoadScene(OWScene.TitleScreen); diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index 4e48f881..01e1f089 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -165,6 +165,7 @@ namespace NewHorizons if (wasUsingCustomTitleScreen != CustomTitleScreen && SceneManager.GetActiveScene().name == "TitleScreen" && _wasConfigured) { NHLogger.LogVerbose("Reloading"); + TitleSceneHandler.reloaded = true; // Taken and modified from SubmitActionLoadScene.ConfirmSubmit LoadManager.LoadScene(OWScene.TitleScreen); Locator.GetMenuInputModule().DisableInputs(); diff --git a/NewHorizons/Patches/TitleScenePatches.cs b/NewHorizons/Patches/TitleScenePatches.cs index 1b5607f8..a0705c53 100644 --- a/NewHorizons/Patches/TitleScenePatches.cs +++ b/NewHorizons/Patches/TitleScenePatches.cs @@ -1,5 +1,6 @@ using HarmonyLib; using NewHorizons.Handlers; +using NewHorizons.Utility; using NewHorizons.Utility.OWML; using OWML.Utils; using UnityEngine; @@ -12,11 +13,11 @@ internal static class TitleScenePatches [HarmonyPrefix, HarmonyPatch(typeof(TitleScreenAnimation), nameof(TitleScreenAnimation.Awake))] public static void TitleScreenAnimation_Awake(TitleScreenAnimation __instance) { - // Skip Splash on title screen reload if (TitleSceneHandler.reloaded) { TitleSceneHandler.reloaded = false; + // Skip Splash on title screen reload TitleScreenAnimation titleScreenAnimation = __instance; titleScreenAnimation._fadeDuration = 0; titleScreenAnimation._gamepadSplash = false; @@ -29,6 +30,15 @@ internal static class TitleScenePatches titleAnimationController._optionsFadeDuration = 0.001f; titleAnimationController._optionsFadeSpacing = 0.001f; titleAnimationController.FadeInTitleLogo(); + + // Reopen profile + if (TitleSceneHandler.reopenProfile) + { + TitleSceneHandler.reopenProfile = false; + Delay.FireOnNextUpdate(() => + SearchUtilities.Find("TitleMenu/TitleCanvas/TitleLayoutGroup/MainMenuBlock/MainMenuLayoutGroup/Button-Profile") + .GetComponent().Submit()); + } } } }