summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/release-notes.md1
-rw-r--r--src/SMAPI/Framework/SCore.cs17
2 files changed, 16 insertions, 2 deletions
diff --git a/docs/release-notes.md b/docs/release-notes.md
index bbf6e437..05f17a2f 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -10,6 +10,7 @@
## Upcoming release
* For players:
* Fixed errors on Linux/Mac due to mods with incorrect filename case.
+ * Fixed map rendering crash due to conflict between SMAPI and PyTK.
* For modders:
* All content pack file paths accessed through `IContentPack` are now case-insensitive.
diff --git a/src/SMAPI/Framework/SCore.cs b/src/SMAPI/Framework/SCore.cs
index c9477c52..e64c2801 100644
--- a/src/SMAPI/Framework/SCore.cs
+++ b/src/SMAPI/Framework/SCore.cs
@@ -43,6 +43,7 @@ using StardewModdingAPI.Toolkit.Serialization;
using StardewModdingAPI.Toolkit.Utilities;
using StardewModdingAPI.Utilities;
using StardewValley;
+using xTile.Display;
using SObject = StardewValley.Object;
namespace StardewModdingAPI.Framework
@@ -472,8 +473,13 @@ namespace StardewModdingAPI.Framework
SCore.PerformanceMonitor.PrintQueuedAlerts();
// reapply overrides
- if (this.JustReturnedToTitle && !(Game1.mapDisplayDevice is SDisplayDevice))
- Game1.mapDisplayDevice = new SDisplayDevice(Game1.content, Game1.game1.GraphicsDevice);
+ if (this.JustReturnedToTitle)
+ {
+ if (!(Game1.mapDisplayDevice is SDisplayDevice))
+ Game1.mapDisplayDevice = this.GetMapDisplayDevice();
+
+ this.JustReturnedToTitle = false;
+ }
/*********
** First-tick initialization
@@ -1738,6 +1744,13 @@ namespace StardewModdingAPI.Framework
return translations;
}
+ /// <summary>Get the map display device which applies SMAPI features like tile rotation to loaded maps.</summary>
+ /// <remarks>This is separate to let mods like PyTK wrap it with their own functionality.</remarks>
+ private IDisplayDevice GetMapDisplayDevice()
+ {
+ return new SDisplayDevice(Game1.content, Game1.game1.GraphicsDevice);
+ }
+
/// <summary>Get the absolute path to the next available log file.</summary>
private string GetLogPath()
{