Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make ISpriteLoader aware of the source file name. #19228

Merged
merged 1 commit into from Mar 27, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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