summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2020-09-16 17:35:25 -0400
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2020-09-16 17:35:25 -0400
commitf06b4dd6102e64f929a218192002c1d2ba05ebed (patch)
tree51bdf3f0fd285e21598a652d65d747c71017d375
parent436eb95a8617cf6df061a61b66d6cd7c1cd6a494 (diff)
downloadSMAPI-f06b4dd6102e64f929a218192002c1d2ba05ebed.tar.gz
SMAPI-f06b4dd6102e64f929a218192002c1d2ba05ebed.tar.bz2
SMAPI-f06b4dd6102e64f929a218192002c1d2ba05ebed.zip
fix conflict with PyTK's map display device
-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()
{