ShpLoader is no longer IEnumerable

This commit is contained in:
Chris Forbes
2011-12-27 18:10:52 +13:00
parent d115c6305c
commit f8122047b6
3 changed files with 5 additions and 13 deletions

View File

@@ -51,7 +51,7 @@ namespace OpenRA.FileFormats
public enum Format { Format20 = 0x20, Format40 = 0x40, Format80 = 0x80 }
public class ShpReader : IEnumerable<ImageHeader>
public class ShpReader
{
public readonly int ImageCount;
public readonly ushort Width;
@@ -157,15 +157,7 @@ namespace OpenRA.FileFormats
return imageData;
}
public IEnumerator<ImageHeader> GetEnumerator()
{
return headers.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
public IEnumerable<ImageHeader> Frames { get { return headers; } }
public static ShpReader Load(string filename)
{

View File

@@ -29,7 +29,7 @@ namespace OpenRA.Graphics
Sprite[] LoadSprites(string filename)
{
var shp = new ShpReader(FileSystem.OpenWithExts(filename, exts));
return shp.Select(a => SheetBuilder.Add(a.Image, shp.Size)).ToArray();
return shp.Frames.Select(a => SheetBuilder.Add(a.Image, shp.Size)).ToArray();
}
public Sprite[] LoadAllSprites(string filename) { return sprites[filename]; }

View File

@@ -86,7 +86,7 @@ namespace OpenRA.Utility
var x = 0;
bitmap.Palette = palette.AsSystemPalette();
foreach (var frame in srcImage)
foreach (var frame in srcImage.Frames)
{
var data = bitmap.LockBits(new Rectangle(x, 0, srcImage.Width, srcImage.Height), ImageLockMode.WriteOnly,
PixelFormat.Format8bppIndexed);
@@ -214,7 +214,7 @@ namespace OpenRA.Utility
using( var destStream = File.Create(args[4]) )
ShpWriter.Write(destStream, srcImage.Width, srcImage.Height,
srcImage.Select( im => im.Image.Select(px => (byte)remap[px]).ToArray() ));
srcImage.Frames.Select( im => im.Image.Select(px => (byte)remap[px]).ToArray() ));
}
}
}