diff --git a/OpenRA.Game/Graphics/SpriteLoader.cs b/OpenRA.Game/Graphics/SpriteLoader.cs index 56701b85eb..df00bc1531 100644 --- a/OpenRA.Game/Graphics/SpriteLoader.cs +++ b/OpenRA.Game/Graphics/SpriteLoader.cs @@ -78,13 +78,22 @@ namespace OpenRA.Graphics { using (var stream = fileSystem.Open(filename)) { - ISpriteFrame[] frames; - foreach (var loader in loaders) - if (loader.TryParseSprite(stream, out frames)) - return frames; + var spriteFrames = GetFrames(stream, loaders); + if (spriteFrames == null) + throw new InvalidDataException(filename + " is not a valid sprite file!"); - throw new InvalidDataException(filename + " is not a valid sprite file!"); + return spriteFrames; } } + + public static ISpriteFrame[] GetFrames(Stream stream, ISpriteLoader[] loaders) + { + ISpriteFrame[] frames; + foreach (var loader in loaders) + if (loader.TryParseSprite(stream, out frames)) + return frames; + + return null; + } } } diff --git a/OpenRA.Mods.Common/UtilityCommands/ConvertSpriteToPngCommand.cs b/OpenRA.Mods.Common/UtilityCommands/ConvertSpriteToPngCommand.cs index b126876a34..01e7ec034d 100644 --- a/OpenRA.Mods.Common/UtilityCommands/ConvertSpriteToPngCommand.cs +++ b/OpenRA.Mods.Common/UtilityCommands/ConvertSpriteToPngCommand.cs @@ -47,7 +47,7 @@ namespace OpenRA.Mods.Common.UtilityCommands var palette = new ImmutablePalette(args[2], shadowIndex); - var frames = SpriteLoader.GetFrames(modData.DefaultFileSystem, src, modData.SpriteLoaders); + var frames = SpriteLoader.GetFrames(File.OpenRead(src), modData.SpriteLoaders); var usePadding = !args.Contains("--nopadding"); var count = 0;