Skip to content

Commit

Permalink
Make ISpriteLoader aware of the source file name.
Browse files Browse the repository at this point in the history
  • Loading branch information
IceReaper committed Mar 15, 2021
1 parent 6b74093 commit 8d9f994
Show file tree
Hide file tree
Showing 13 changed files with 16 additions and 16 deletions.
8 changes: 4 additions & 4 deletions OpenRA.Game/Graphics/SpriteLoader.cs
Expand Up @@ -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
Expand Down Expand Up @@ -173,20 +173,20 @@ 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!");

return spriteFrames;
}
}

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;
Expand Down
2 changes: 1 addition & 1 deletion OpenRA.Mods.Cnc/SpriteLoaders/ShpD2Loader.cs
Expand Up @@ -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))
Expand Down
2 changes: 1 addition & 1 deletion OpenRA.Mods.Cnc/SpriteLoaders/ShpRemasteredLoader.cs
Expand Up @@ -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))
Expand Down
2 changes: 1 addition & 1 deletion OpenRA.Mods.Cnc/SpriteLoaders/ShpTDLoader.cs
Expand Up @@ -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))
Expand Down
2 changes: 1 addition & 1 deletion OpenRA.Mods.Cnc/SpriteLoaders/TmpRALoader.cs
Expand Up @@ -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))
Expand Down
2 changes: 1 addition & 1 deletion OpenRA.Mods.Cnc/SpriteLoaders/TmpTDLoader.cs
Expand Up @@ -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))
Expand Down
2 changes: 1 addition & 1 deletion OpenRA.Mods.Cnc/SpriteLoaders/TmpTSLoader.cs
Expand Up @@ -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))
Expand Down
2 changes: 1 addition & 1 deletion OpenRA.Mods.Common/SpriteLoaders/DdsLoader.cs
Expand Up @@ -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))
Expand Down
2 changes: 1 addition & 1 deletion OpenRA.Mods.Common/SpriteLoaders/PngSheetLoader.cs
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion OpenRA.Mods.Common/SpriteLoaders/ShpTSLoader.cs
Expand Up @@ -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))
Expand Down
2 changes: 1 addition & 1 deletion OpenRA.Mods.Common/SpriteLoaders/TgaLoader.cs
Expand Up @@ -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))
Expand Down
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion OpenRA.Mods.D2k/SpriteLoaders/R8Loader.cs
Expand Up @@ -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))
Expand Down

0 comments on commit 8d9f994

Please sign in to comment.