diff --git a/OpenRA.Editor/Form1.cs b/OpenRA.Editor/Form1.cs index b2359c1fdb..5f5cf39c27 100644 --- a/OpenRA.Editor/Form1.cs +++ b/OpenRA.Editor/Form1.cs @@ -269,7 +269,7 @@ namespace OpenRA.Editor { try { - var template = RenderUtils.RenderResourceType(a, tileset.Extensions, shadowedPalette); + var template = RenderUtils.RenderResourceType(a, tileset, shadowedPalette); var ibox = new PictureBox { Image = template.Bitmap, diff --git a/OpenRA.Editor/RenderUtils.cs b/OpenRA.Editor/RenderUtils.cs index 45b77c135a..7dbf094d80 100644 --- a/OpenRA.Editor/RenderUtils.cs +++ b/OpenRA.Editor/RenderUtils.cs @@ -14,6 +14,7 @@ using System.Linq; using OpenRA.FileFormats; using OpenRA.FileSystem; using OpenRA.Graphics; +using OpenRA.Mods.Common.Graphics; using OpenRA.Mods.Common.SpriteLoaders; using OpenRA.Traits; @@ -46,17 +47,27 @@ namespace OpenRA.Editor return bitmap; } + static string[] SpriteExtensions(TileSet tileSet) + { + var ssl = Game.ModData.SpriteSequenceLoader as TilesetSpecificSpriteSequenceLoader; + if (ssl == null) + return tileSet.Extensions; + + return tileSet.Extensions.Append(ssl.TilesetExtensions[tileSet.Id], ssl.DefaultSpriteExtension).ToArray(); + } + public static ActorTemplate RenderActor(ActorInfo info, SequenceProvider sequenceProvider, TileSet tileset, IPalette p, string race) { var image = info.Traits.Get().EditorImage(info, sequenceProvider, race); - using (var s = GlobalFileSystem.OpenWithExts(image, tileset.Extensions)) + var exts = SpriteExtensions(tileset); + using (var s = GlobalFileSystem.OpenWithExts(image, exts)) { var shp = new ShpTDSprite(s); var bitmap = RenderShp(shp, p); try { - using (var s2 = GlobalFileSystem.OpenWithExts(image + "2", tileset.Extensions)) + using (var s2 = GlobalFileSystem.OpenWithExts(image + "2", exts)) { var shp2 = new ShpTDSprite(s2); var roofBitmap = RenderShp(shp2, p); @@ -76,9 +87,10 @@ namespace OpenRA.Editor } } - public static ResourceTemplate RenderResourceType(ResourceTypeInfo info, string[] exts, IPalette p) + public static ResourceTemplate RenderResourceType(ResourceTypeInfo info, TileSet tileset, IPalette p) { var image = info.EditorSprite; + var exts = SpriteExtensions(tileset); using (var s = GlobalFileSystem.OpenWithExts(image, exts)) { // TODO: Do this properly