Add a(nother) workaround for the legacy editor.

This commit is contained in:
Paul Chote
2015-03-26 22:13:16 +00:00
parent 549c0bf382
commit a2b423e4f9
2 changed files with 16 additions and 4 deletions

View File

@@ -269,7 +269,7 @@ namespace OpenRA.Editor
{ {
try try
{ {
var template = RenderUtils.RenderResourceType(a, tileset.Extensions, shadowedPalette); var template = RenderUtils.RenderResourceType(a, tileset, shadowedPalette);
var ibox = new PictureBox var ibox = new PictureBox
{ {
Image = template.Bitmap, Image = template.Bitmap,

View File

@@ -14,6 +14,7 @@ using System.Linq;
using OpenRA.FileFormats; using OpenRA.FileFormats;
using OpenRA.FileSystem; using OpenRA.FileSystem;
using OpenRA.Graphics; using OpenRA.Graphics;
using OpenRA.Mods.Common.Graphics;
using OpenRA.Mods.Common.SpriteLoaders; using OpenRA.Mods.Common.SpriteLoaders;
using OpenRA.Traits; using OpenRA.Traits;
@@ -46,17 +47,27 @@ namespace OpenRA.Editor
return bitmap; 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) public static ActorTemplate RenderActor(ActorInfo info, SequenceProvider sequenceProvider, TileSet tileset, IPalette p, string race)
{ {
var image = info.Traits.Get<ILegacyEditorRenderInfo>().EditorImage(info, sequenceProvider, race); var image = info.Traits.Get<ILegacyEditorRenderInfo>().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 shp = new ShpTDSprite(s);
var bitmap = RenderShp(shp, p); var bitmap = RenderShp(shp, p);
try try
{ {
using (var s2 = GlobalFileSystem.OpenWithExts(image + "2", tileset.Extensions)) using (var s2 = GlobalFileSystem.OpenWithExts(image + "2", exts))
{ {
var shp2 = new ShpTDSprite(s2); var shp2 = new ShpTDSprite(s2);
var roofBitmap = RenderShp(shp2, p); 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 image = info.EditorSprite;
var exts = SpriteExtensions(tileset);
using (var s = GlobalFileSystem.OpenWithExts(image, exts)) using (var s = GlobalFileSystem.OpenWithExts(image, exts))
{ {
// TODO: Do this properly // TODO: Do this properly