diff --git a/OpenRA.Game/Graphics/SpriteLoader.cs b/OpenRA.Game/Graphics/SpriteLoader.cs index d6fcb903bb45..2f432f8cd417 100644 --- a/OpenRA.Game/Graphics/SpriteLoader.cs +++ b/OpenRA.Game/Graphics/SpriteLoader.cs @@ -44,7 +44,7 @@ public enum SpriteFrameType public interface ISpriteLoader { - bool TryParseSprite(Stream s, out ISpriteFrame[] frames, out TypeDictionary metadata); + bool TryParseSprite(Stream s, string filename, out ISpriteFrame[] frames, out TypeDictionary metadata); } public interface ISpriteFrame @@ -173,7 +173,7 @@ public static ISpriteFrame[] GetFrames(IReadOnlyFileSystem fileSystem, string fi { using (var stream = fileSystem.Open(filename)) { - var spriteFrames = GetFrames(stream, loaders, out metadata); + var spriteFrames = GetFrames(stream, loaders, filename, out metadata); if (spriteFrames == null) throw new InvalidDataException(filename + " is not a valid sprite file!"); @@ -181,12 +181,12 @@ public static ISpriteFrame[] GetFrames(IReadOnlyFileSystem fileSystem, string fi } } - public static ISpriteFrame[] GetFrames(Stream stream, ISpriteLoader[] loaders, out TypeDictionary metadata) + public static ISpriteFrame[] GetFrames(Stream stream, ISpriteLoader[] loaders, string filename, out TypeDictionary metadata) { metadata = null; foreach (var loader in loaders) - if (loader.TryParseSprite(stream, out var frames, out metadata)) + if (loader.TryParseSprite(stream, filename, out var frames, out metadata)) return frames; return null; diff --git a/OpenRA.Mods.Cnc/SpriteLoaders/ShpD2Loader.cs b/OpenRA.Mods.Cnc/SpriteLoaders/ShpD2Loader.cs index ccc72231ef64..b295706f152c 100644 --- a/OpenRA.Mods.Cnc/SpriteLoaders/ShpD2Loader.cs +++ b/OpenRA.Mods.Cnc/SpriteLoaders/ShpD2Loader.cs @@ -155,7 +155,7 @@ ShpD2Frame[] ParseFrames(Stream s) return frames; } - public bool TryParseSprite(Stream s, out ISpriteFrame[] frames, out TypeDictionary metadata) + public bool TryParseSprite(Stream s, string filename, out ISpriteFrame[] frames, out TypeDictionary metadata) { metadata = null; if (!IsShpD2(s)) diff --git a/OpenRA.Mods.Cnc/SpriteLoaders/ShpRemasteredLoader.cs b/OpenRA.Mods.Cnc/SpriteLoaders/ShpRemasteredLoader.cs index 2e7407dfd1c9..a63bb02bb4e8 100644 --- a/OpenRA.Mods.Cnc/SpriteLoaders/ShpRemasteredLoader.cs +++ b/OpenRA.Mods.Cnc/SpriteLoaders/ShpRemasteredLoader.cs @@ -31,7 +31,7 @@ public static bool IsShpRemastered(Stream s) return isZipFile; } - public bool TryParseSprite(Stream s, out ISpriteFrame[] frames, out TypeDictionary metadata) + public bool TryParseSprite(Stream s, string filename, out ISpriteFrame[] frames, out TypeDictionary metadata) { metadata = null; if (!IsShpRemastered(s)) diff --git a/OpenRA.Mods.Cnc/SpriteLoaders/ShpTDLoader.cs b/OpenRA.Mods.Cnc/SpriteLoaders/ShpTDLoader.cs index d2ea0c47caa6..2aae542308f0 100644 --- a/OpenRA.Mods.Cnc/SpriteLoaders/ShpTDLoader.cs +++ b/OpenRA.Mods.Cnc/SpriteLoaders/ShpTDLoader.cs @@ -57,7 +57,7 @@ static bool IsShpTD(Stream s) return b == 0x20 || b == 0x40 || b == 0x80; } - public bool TryParseSprite(Stream s, out ISpriteFrame[] frames, out TypeDictionary metadata) + public bool TryParseSprite(Stream s, string filename, out ISpriteFrame[] frames, out TypeDictionary metadata) { metadata = null; if (!IsShpTD(s)) diff --git a/OpenRA.Mods.Cnc/SpriteLoaders/TmpRALoader.cs b/OpenRA.Mods.Cnc/SpriteLoaders/TmpRALoader.cs index a00fde50fd3c..3a7eb04037a4 100644 --- a/OpenRA.Mods.Cnc/SpriteLoaders/TmpRALoader.cs +++ b/OpenRA.Mods.Cnc/SpriteLoaders/TmpRALoader.cs @@ -85,7 +85,7 @@ TmpRAFrame[] ParseFrames(Stream s) return tiles; } - public bool TryParseSprite(Stream s, out ISpriteFrame[] frames, out TypeDictionary metadata) + public bool TryParseSprite(Stream s, string filename, out ISpriteFrame[] frames, out TypeDictionary metadata) { metadata = null; if (!IsTmpRA(s)) diff --git a/OpenRA.Mods.Cnc/SpriteLoaders/TmpTDLoader.cs b/OpenRA.Mods.Cnc/SpriteLoaders/TmpTDLoader.cs index f52092305214..5b9f48407e61 100644 --- a/OpenRA.Mods.Cnc/SpriteLoaders/TmpTDLoader.cs +++ b/OpenRA.Mods.Cnc/SpriteLoaders/TmpTDLoader.cs @@ -82,7 +82,7 @@ TmpTDFrame[] ParseFrames(Stream s) return tiles; } - public bool TryParseSprite(Stream s, out ISpriteFrame[] frames, out TypeDictionary metadata) + public bool TryParseSprite(Stream s, string filename, out ISpriteFrame[] frames, out TypeDictionary metadata) { metadata = null; if (!IsTmpTD(s)) diff --git a/OpenRA.Mods.Cnc/SpriteLoaders/TmpTSLoader.cs b/OpenRA.Mods.Cnc/SpriteLoaders/TmpTSLoader.cs index c7a80ea3e362..ad8de95b7ae9 100644 --- a/OpenRA.Mods.Cnc/SpriteLoaders/TmpTSLoader.cs +++ b/OpenRA.Mods.Cnc/SpriteLoaders/TmpTSLoader.cs @@ -184,7 +184,7 @@ ISpriteFrame[] ParseFrames(Stream s) return tiles; } - public bool TryParseSprite(Stream s, out ISpriteFrame[] frames, out TypeDictionary metadata) + public bool TryParseSprite(Stream s, string filename, out ISpriteFrame[] frames, out TypeDictionary metadata) { metadata = null; if (!IsTmpTS(s)) diff --git a/OpenRA.Mods.Common/SpriteLoaders/DdsLoader.cs b/OpenRA.Mods.Common/SpriteLoaders/DdsLoader.cs index b8320c6cbdf7..463f5f882e90 100644 --- a/OpenRA.Mods.Common/SpriteLoaders/DdsLoader.cs +++ b/OpenRA.Mods.Common/SpriteLoaders/DdsLoader.cs @@ -28,7 +28,7 @@ public static bool IsDds(Stream s) return isDds; } - public bool TryParseSprite(Stream s, out ISpriteFrame[] frames, out TypeDictionary metadata) + public bool TryParseSprite(Stream s, string filename, out ISpriteFrame[] frames, out TypeDictionary metadata) { metadata = null; if (!IsDds(s)) diff --git a/OpenRA.Mods.Common/SpriteLoaders/PngSheetLoader.cs b/OpenRA.Mods.Common/SpriteLoaders/PngSheetLoader.cs index a333c88bd643..e7fe045553c0 100644 --- a/OpenRA.Mods.Common/SpriteLoaders/PngSheetLoader.cs +++ b/OpenRA.Mods.Common/SpriteLoaders/PngSheetLoader.cs @@ -42,7 +42,7 @@ class PngSheetFrame : ISpriteFrame public bool DisableExportPadding => false; } - public bool TryParseSprite(Stream s, out ISpriteFrame[] frames, out TypeDictionary metadata) + public bool TryParseSprite(Stream s, string filename, out ISpriteFrame[] frames, out TypeDictionary metadata) { metadata = null; frames = null; diff --git a/OpenRA.Mods.Common/SpriteLoaders/ShpTSLoader.cs b/OpenRA.Mods.Common/SpriteLoaders/ShpTSLoader.cs index b0ef64ce36cc..a51c4cfce1fe 100644 --- a/OpenRA.Mods.Common/SpriteLoaders/ShpTSLoader.cs +++ b/OpenRA.Mods.Common/SpriteLoaders/ShpTSLoader.cs @@ -146,7 +146,7 @@ ShpTSFrame[] ParseFrames(Stream s) return frames; } - public bool TryParseSprite(Stream s, out ISpriteFrame[] frames, out TypeDictionary metadata) + public bool TryParseSprite(Stream s, string filename, out ISpriteFrame[] frames, out TypeDictionary metadata) { metadata = null; if (!IsShpTS(s)) diff --git a/OpenRA.Mods.Common/SpriteLoaders/TgaLoader.cs b/OpenRA.Mods.Common/SpriteLoaders/TgaLoader.cs index 098d0117b7b1..ae40e6a728dd 100644 --- a/OpenRA.Mods.Common/SpriteLoaders/TgaLoader.cs +++ b/OpenRA.Mods.Common/SpriteLoaders/TgaLoader.cs @@ -50,7 +50,7 @@ public static bool IsTga(Stream s) } } - public bool TryParseSprite(Stream s, out ISpriteFrame[] frames, out TypeDictionary metadata) + public bool TryParseSprite(Stream s, string filename, out ISpriteFrame[] frames, out TypeDictionary metadata) { metadata = null; if (!IsTga(s)) diff --git a/OpenRA.Mods.Common/UtilityCommands/ConvertSpriteToPngCommand.cs b/OpenRA.Mods.Common/UtilityCommands/ConvertSpriteToPngCommand.cs index fe6c5fbb8b65..1be9ae692675 100644 --- a/OpenRA.Mods.Common/UtilityCommands/ConvertSpriteToPngCommand.cs +++ b/OpenRA.Mods.Common/UtilityCommands/ConvertSpriteToPngCommand.cs @@ -49,7 +49,7 @@ void IUtilityCommand.Run(Utility utility, string[] args) for (var i = 0; i < Palette.Size; i++) palColors[i] = palette.GetColor(i); - var frames = FrameLoader.GetFrames(File.OpenRead(src), modData.SpriteLoaders, out _); + var frames = FrameLoader.GetFrames(File.OpenRead(src), modData.SpriteLoaders, src, out _); var usePadding = !args.Contains("--nopadding"); var count = 0; diff --git a/OpenRA.Mods.D2k/SpriteLoaders/R8Loader.cs b/OpenRA.Mods.D2k/SpriteLoaders/R8Loader.cs index 38e1700b5e4b..1cfbec3f0c25 100644 --- a/OpenRA.Mods.D2k/SpriteLoaders/R8Loader.cs +++ b/OpenRA.Mods.D2k/SpriteLoaders/R8Loader.cs @@ -98,7 +98,7 @@ bool IsR8(Stream s) return d == 8; } - public bool TryParseSprite(Stream s, out ISpriteFrame[] frames, out TypeDictionary metadata) + public bool TryParseSprite(Stream s, string filename, out ISpriteFrame[] frames, out TypeDictionary metadata) { metadata = null; if (!IsR8(s))