diff --git a/OpenRA.Game/Graphics/SpriteLoader.cs b/OpenRA.Game/Graphics/SpriteLoader.cs index d6fcb903bb..2f432f8cd4 100644 --- a/OpenRA.Game/Graphics/SpriteLoader.cs +++ b/OpenRA.Game/Graphics/SpriteLoader.cs @@ -44,7 +44,7 @@ namespace OpenRA.Graphics 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 @@ namespace OpenRA.Graphics { 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 @@ namespace OpenRA.Graphics } } - 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 ccc72231ef..b295706f15 100644 --- a/OpenRA.Mods.Cnc/SpriteLoaders/ShpD2Loader.cs +++ b/OpenRA.Mods.Cnc/SpriteLoaders/ShpD2Loader.cs @@ -155,7 +155,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders 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 2e7407dfd1..a63bb02bb4 100644 --- a/OpenRA.Mods.Cnc/SpriteLoaders/ShpRemasteredLoader.cs +++ b/OpenRA.Mods.Cnc/SpriteLoaders/ShpRemasteredLoader.cs @@ -31,7 +31,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders 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 d2ea0c47ca..2aae542308 100644 --- a/OpenRA.Mods.Cnc/SpriteLoaders/ShpTDLoader.cs +++ b/OpenRA.Mods.Cnc/SpriteLoaders/ShpTDLoader.cs @@ -57,7 +57,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders 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 a00fde50fd..3a7eb04037 100644 --- a/OpenRA.Mods.Cnc/SpriteLoaders/TmpRALoader.cs +++ b/OpenRA.Mods.Cnc/SpriteLoaders/TmpRALoader.cs @@ -85,7 +85,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders 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 f520923052..5b9f48407e 100644 --- a/OpenRA.Mods.Cnc/SpriteLoaders/TmpTDLoader.cs +++ b/OpenRA.Mods.Cnc/SpriteLoaders/TmpTDLoader.cs @@ -82,7 +82,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders 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 c7a80ea3e3..ad8de95b7a 100644 --- a/OpenRA.Mods.Cnc/SpriteLoaders/TmpTSLoader.cs +++ b/OpenRA.Mods.Cnc/SpriteLoaders/TmpTSLoader.cs @@ -184,7 +184,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders 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 b8320c6cbd..463f5f882e 100644 --- a/OpenRA.Mods.Common/SpriteLoaders/DdsLoader.cs +++ b/OpenRA.Mods.Common/SpriteLoaders/DdsLoader.cs @@ -28,7 +28,7 @@ namespace OpenRA.Mods.Common.SpriteLoaders 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 a333c88bd6..e7fe045553 100644 --- a/OpenRA.Mods.Common/SpriteLoaders/PngSheetLoader.cs +++ b/OpenRA.Mods.Common/SpriteLoaders/PngSheetLoader.cs @@ -42,7 +42,7 @@ namespace OpenRA.Mods.Common.SpriteLoaders 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 b0ef64ce36..a51c4cfce1 100644 --- a/OpenRA.Mods.Common/SpriteLoaders/ShpTSLoader.cs +++ b/OpenRA.Mods.Common/SpriteLoaders/ShpTSLoader.cs @@ -146,7 +146,7 @@ namespace OpenRA.Mods.Common.SpriteLoaders 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 098d0117b7..ae40e6a728 100644 --- a/OpenRA.Mods.Common/SpriteLoaders/TgaLoader.cs +++ b/OpenRA.Mods.Common/SpriteLoaders/TgaLoader.cs @@ -50,7 +50,7 @@ namespace OpenRA.Mods.Common.SpriteLoaders } } - 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 fe6c5fbb8b..1be9ae6926 100644 --- a/OpenRA.Mods.Common/UtilityCommands/ConvertSpriteToPngCommand.cs +++ b/OpenRA.Mods.Common/UtilityCommands/ConvertSpriteToPngCommand.cs @@ -49,7 +49,7 @@ namespace OpenRA.Mods.Common.UtilityCommands 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 38e1700b5e..1cfbec3f0c 100644 --- a/OpenRA.Mods.D2k/SpriteLoaders/R8Loader.cs +++ b/OpenRA.Mods.D2k/SpriteLoaders/R8Loader.cs @@ -98,7 +98,7 @@ namespace OpenRA.Mods.D2k.SpriteLoaders 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))