From d5ea812d7c82eac88b88c8f41756972a5322add6 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 17 May 2017 11:51:49 -0400 Subject: adjust return-to-title code --- src/StardewModdingAPI/Framework/SGame.cs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/StardewModdingAPI/Framework/SGame.cs b/src/StardewModdingAPI/Framework/SGame.cs index cb7c0e7b..b281ef30 100644 --- a/src/StardewModdingAPI/Framework/SGame.cs +++ b/src/StardewModdingAPI/Framework/SGame.cs @@ -40,7 +40,7 @@ namespace StardewModdingAPI.Framework private int AfterLoadTimer = 5; /// Whether the game is returning to the menu. - private bool IsExiting; + private bool IsExitingToTitle; /// Whether the game is saving and SMAPI has already raised . private bool IsBetweenSaveEvents; @@ -337,17 +337,16 @@ namespace StardewModdingAPI.Framework *********/ // before exit to title if (Game1.exitToTitle) - this.IsExiting = true; + this.IsExitingToTitle = true; // after exit to title - if (Context.IsWorldReady && this.IsExiting && Game1.activeClickableMenu is TitleMenu) + if (Context.IsWorldReady && this.IsExitingToTitle && Game1.activeClickableMenu is TitleMenu) { this.Monitor.Log("Context: returned to title", LogLevel.Trace); - Context.IsWorldReady = false; + this.IsExitingToTitle = false; + this.CleanupAfterReturnToTitle(); SaveEvents.InvokeAfterReturnToTitle(this.Monitor); - this.AfterLoadTimer = 5; - this.IsExiting = false; } /********* @@ -1290,6 +1289,14 @@ namespace StardewModdingAPI.Framework /**** ** Methods ****/ + /// Perform any cleanup needed when the player unloads a save and returns to the title screen. + private void CleanupAfterReturnToTitle() + { + Context.IsWorldReady = false; + this.AfterLoadTimer = 5; + this.PreviousSaveID = 0; + } + /// Get the controller buttons which are currently pressed. /// The controller to check. private Buttons[] GetButtonsDown(PlayerIndex index) -- cgit