StyleCop clean Utility

This commit is contained in:
Matthias Mailänder
2013-08-03 17:58:56 +02:00
parent 040e8eccd9
commit c2d80d21f3
2 changed files with 93 additions and 86 deletions

View File

@@ -55,7 +55,7 @@ namespace OpenRA.Utility
ShpWriter.Write(destStream, width, srcImage.Height, ShpWriter.Write(destStream, width, srcImage.Height,
srcImage.ToFrames(width)); srcImage.ToFrames(width));
Console.WriteLine(dest+" saved."); Console.WriteLine(dest + " saved.");
} }
static IEnumerable<byte[]> ToFrames(this Bitmap bitmap, int width) static IEnumerable<byte[]> ToFrames(this Bitmap bitmap, int width)
@@ -82,15 +82,16 @@ namespace OpenRA.Utility
var dest = Path.ChangeExtension(src, ".png"); var dest = Path.ChangeExtension(src, ".png");
var srcImage = ShpReader.Load(src); var srcImage = ShpReader.Load(src);
int[] ShadowIndex = { }; var shadowIndex = new int[] { };
if (args.Contains("--noshadow")) if (args.Contains("--noshadow"))
{ {
Array.Resize(ref ShadowIndex, ShadowIndex.Length + 3); Array.Resize(ref shadowIndex, shadowIndex.Length + 3);
ShadowIndex[ShadowIndex.Length - 1] = 1; shadowIndex[shadowIndex.Length - 1] = 1;
ShadowIndex[ShadowIndex.Length - 2] = 3; shadowIndex[shadowIndex.Length - 2] = 3;
ShadowIndex[ShadowIndex.Length - 1] = 4; shadowIndex[shadowIndex.Length - 1] = 4;
} }
var palette = Palette.Load(args[2], ShadowIndex);
var palette = Palette.Load(args[2], shadowIndex);
using (var bitmap = new Bitmap(srcImage.ImageCount * srcImage.Width, srcImage.Height, PixelFormat.Format8bppIndexed)) using (var bitmap = new Bitmap(srcImage.ImageCount * srcImage.Width, srcImage.Height, PixelFormat.Format8bppIndexed))
{ {
@@ -112,48 +113,51 @@ namespace OpenRA.Utility
} }
bitmap.Save(dest); bitmap.Save(dest);
Console.WriteLine(dest+" saved"); Console.WriteLine(dest + " saved");
} }
} }
public static void ConvertR8ToPng(string[] args) public static void ConvertR8ToPng(string[] args)
{ {
var srcImage = new R8Reader(File.OpenRead(args[1])); var srcImage = new R8Reader(File.OpenRead(args[1]));
int[] ShadowIndex = { }; var shadowIndex = new int[] { };
if (args.Contains("--noshadow")) if (args.Contains("--noshadow"))
{ {
Array.Resize(ref ShadowIndex, ShadowIndex.Length + 1); Array.Resize(ref shadowIndex, shadowIndex.Length + 1);
ShadowIndex[ShadowIndex.Length - 1] = 3; shadowIndex[shadowIndex.Length - 1] = 3;
} }
var palette = Palette.Load(args[2], ShadowIndex);
var palette = Palette.Load(args[2], shadowIndex);
var startFrame = int.Parse(args[3]); var startFrame = int.Parse(args[3]);
var endFrame = int.Parse(args[4]) + 1; var endFrame = int.Parse(args[4]) + 1;
var filename = args[5]; var filename = args[5];
var FrameCount = endFrame - startFrame; var frameCount = endFrame - startFrame;
var frame = srcImage[startFrame]; var frame = srcImage[startFrame];
var bitmap = new Bitmap(frame.FrameSize.Width * FrameCount, frame.FrameSize.Height, PixelFormat.Format8bppIndexed); var bitmap = new Bitmap(frame.FrameSize.Width * frameCount, frame.FrameSize.Height, PixelFormat.Format8bppIndexed);
bitmap.Palette = palette.AsSystemPalette(); bitmap.Palette = palette.AsSystemPalette();
int x = 0; int x = 0;
frame = srcImage[startFrame]; frame = srcImage[startFrame];
if (args.Contains("--infantry")) //resorting to RA/CnC compatible counter-clockwise frame order // resorting to RA/CnC compatible counter-clockwise frame order
if (args.Contains("--infantry"))
{ {
endFrame = startFrame-1; endFrame = startFrame - 1;
for (int e = 8; e < FrameCount+1; e=e+8) //assuming 8 facings each animation set
// assuming 8 facings each animation set
for (int e = 8; e < frameCount + 1; e = e + 8)
{ {
for (int f = startFrame + e - 1; f > endFrame; f--)
for (int f = startFrame+e-1; f > endFrame; f--)
{ {
var OffsetX = frame.FrameSize.Width/2 - frame.Size.Width/2; var offsetX = frame.FrameSize.Width / 2 - frame.Size.Width / 2;
var OffsetY = frame.FrameSize.Height/2 - frame.Size.Height/2; var offsetY = frame.FrameSize.Height / 2 - frame.Size.Height / 2;
Console.WriteLine("calculated OffsetX: {0}", OffsetX); Console.WriteLine("calculated OffsetX: {0}", offsetX);
Console.WriteLine("calculated OffsetY: {0}", OffsetY); Console.WriteLine("calculated OffsetY: {0}", offsetY);
var data = bitmap.LockBits(new Rectangle(x+OffsetX, 0+OffsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly, var data = bitmap.LockBits(new Rectangle(x + offsetX, 0 + offsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly,
PixelFormat.Format8bppIndexed); PixelFormat.Format8bppIndexed);
for (var i = 0; i < frame.Size.Height; i++) for (var i = 0; i < frame.Size.Height; i++)
@@ -167,26 +171,26 @@ namespace OpenRA.Utility
frame = srcImage[f]; frame = srcImage[f];
Console.WriteLine("f: {0}", f); Console.WriteLine("f: {0}", f);
} }
endFrame = startFrame+e-1;
frame = srcImage[startFrame+e]; endFrame = startFrame + e - 1;
frame = srcImage[startFrame + e];
Console.WriteLine("e: {0}", e); Console.WriteLine("e: {0}", e);
Console.WriteLine("FrameCount: {0}", FrameCount); Console.WriteLine("FrameCount: {0}", frameCount);
} }
} }
//resorting to RA/CnC compatible counter-clockwise frame order
else if (args.Contains("--vehicle") || args.Contains("--projectile")) else if (args.Contains("--vehicle") || args.Contains("--projectile"))
{ {
frame = srcImage[startFrame]; frame = srcImage[startFrame];
for (int f = endFrame-1; f > startFrame-1; f--) for (int f = endFrame - 1; f > startFrame - 1; f--)
{ {
var OffsetX = frame.FrameSize.Width/2 - frame.Offset.X; var offsetX = frame.FrameSize.Width / 2 - frame.Offset.X;
var OffsetY = frame.FrameSize.Height/2 - frame.Offset.Y; var offsetY = frame.FrameSize.Height / 2 - frame.Offset.Y;
Console.WriteLine("calculated OffsetX: {0}", OffsetX); Console.WriteLine("calculated OffsetX: {0}", offsetX);
Console.WriteLine("calculated OffsetY: {0}", OffsetY); Console.WriteLine("calculated OffsetY: {0}", offsetY);
var data = bitmap.LockBits(new Rectangle(x+OffsetX, 0+OffsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly, var data = bitmap.LockBits(new Rectangle(x + offsetX, 0 + offsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly,
PixelFormat.Format8bppIndexed); PixelFormat.Format8bppIndexed);
for (var i = 0; i < frame.Size.Height; i++) for (var i = 0; i < frame.Size.Height; i++)
@@ -200,19 +204,19 @@ namespace OpenRA.Utility
frame = srcImage[f]; frame = srcImage[f];
} }
} }
else if (args.Contains("--turret")) //resorting to RA/CnC compatible counter-clockwise frame order else if (args.Contains("--turret"))
{ {
frame = srcImage[startFrame]; frame = srcImage[startFrame];
for (int f = endFrame-1; f > startFrame-1; f--) for (int f = endFrame - 1; f > startFrame - 1; f--)
{ {
var OffsetX = Math.Abs(frame.Offset.X); var offsetX = Math.Abs(frame.Offset.X);
var OffsetY = frame.FrameSize.Height - Math.Abs(frame.Offset.Y); var offsetY = frame.FrameSize.Height - Math.Abs(frame.Offset.Y);
Console.WriteLine("calculated OffsetX: {0}", OffsetX); Console.WriteLine("calculated OffsetX: {0}", offsetX);
Console.WriteLine("calculated OffsetY: {0}", OffsetY); Console.WriteLine("calculated OffsetY: {0}", offsetY);
var data = bitmap.LockBits(new Rectangle(x+OffsetX, 0+OffsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly, var data = bitmap.LockBits(new Rectangle(x + offsetX, 0 + offsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly,
PixelFormat.Format8bppIndexed); PixelFormat.Format8bppIndexed);
for (var i = 0; i < frame.Size.Height; i++) for (var i = 0; i < frame.Size.Height; i++)
@@ -226,21 +230,22 @@ namespace OpenRA.Utility
frame = srcImage[f]; frame = srcImage[f];
} }
} }
else if (args.Contains("--wall")) //complex resorting to RA/CnC compatible frame order else if (args.Contains("--wall"))
{ {
int[] D2kBrikFrameOrder = {1, 4, 2, 12, 5, 6, 16, 9, 3, 13, 7, 8, 14, 10, 11, 15, 17, 20, 18, 28, 21, 22, 32, 25, 19, 29, 23, 24, 30, 26, 27, 31}; // complex resorting to RA/CnC compatible frame order
foreach (int o in D2kBrikFrameOrder) var d2kBrikFrameOrder = new int[] { 1, 4, 2, 12, 5, 6, 16, 9, 3, 13, 7, 8, 14, 10, 11, 15, 17, 20, 18, 28, 21, 22, 32, 25, 19, 29, 23, 24, 30, 26, 27, 31 };
foreach (int o in d2kBrikFrameOrder)
{ {
int f = startFrame -1 + o; var f = startFrame - 1 + o;
frame = srcImage[f]; frame = srcImage[f];
var OffsetX = Math.Abs(frame.Offset.X); var offsetX = Math.Abs(frame.Offset.X);
var OffsetY = frame.FrameSize.Height - Math.Abs(frame.Offset.Y); var offsetY = frame.FrameSize.Height - Math.Abs(frame.Offset.Y);
Console.WriteLine("calculated OffsetX: {0}", OffsetX); Console.WriteLine("calculated OffsetX: {0}", offsetX);
Console.WriteLine("calculated OffsetY: {0}", OffsetY); Console.WriteLine("calculated OffsetY: {0}", offsetY);
var data = bitmap.LockBits(new Rectangle(x+OffsetX, 0+OffsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly, var data = bitmap.LockBits(new Rectangle(x + offsetX, 0 + offsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly,
PixelFormat.Format8bppIndexed); PixelFormat.Format8bppIndexed);
for (var i = 0; i < frame.Size.Height; i++) for (var i = 0; i < frame.Size.Height; i++)
@@ -262,7 +267,7 @@ namespace OpenRA.Utility
{ {
for (int w = 0; w < 20; w++) for (int w = 0; w < 20; w++)
{ {
if (h * 20 + w < FrameCount) if (h * 20 + w < frameCount)
{ {
Console.WriteLine(f); Console.WriteLine(f);
frame = srcImage[f]; frame = srcImage[f];
@@ -279,6 +284,7 @@ namespace OpenRA.Utility
} }
} }
} }
bitmap = tileset; bitmap = tileset;
} }
else else
@@ -286,22 +292,23 @@ namespace OpenRA.Utility
for (int f = startFrame; f < endFrame; f++) for (int f = startFrame; f < endFrame; f++)
{ {
frame = srcImage[f]; frame = srcImage[f];
int OffsetX = 0; var offsetX = 0;
int OffsetY = 0; var offsetY = 0;
if (args.Contains("--infantrydeath")) if (args.Contains("--infantrydeath"))
{ {
OffsetX = frame.FrameSize.Width/2 - frame.Size.Width/2; offsetX = frame.FrameSize.Width / 2 - frame.Size.Width / 2;
OffsetY = frame.FrameSize.Height/2 - frame.Size.Height/2; offsetY = frame.FrameSize.Height / 2 - frame.Size.Height / 2;
} }
else if (args.Contains("--building")) else if (args.Contains("--building"))
{ {
OffsetX = Math.Abs(frame.Offset.X); offsetX = Math.Abs(frame.Offset.X);
OffsetY = frame.FrameSize.Height - Math.Abs(frame.Offset.Y); offsetY = frame.FrameSize.Height - Math.Abs(frame.Offset.Y);
} }
Console.WriteLine("calculated OffsetX: {0}", OffsetX);
Console.WriteLine("calculated OffsetY: {0}", OffsetY);
var data = bitmap.LockBits(new Rectangle(x+OffsetX, 0+OffsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly, Console.WriteLine("calculated OffsetX: {0}", offsetX);
Console.WriteLine("calculated OffsetY: {0}", offsetY);
var data = bitmap.LockBits(new Rectangle(x + offsetX, 0 + offsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly,
PixelFormat.Format8bppIndexed); PixelFormat.Format8bppIndexed);
for (var i = 0; i < frame.Size.Height; i++) for (var i = 0; i < frame.Size.Height; i++)
@@ -313,8 +320,9 @@ namespace OpenRA.Utility
x += frame.FrameSize.Width; x += frame.FrameSize.Width;
} }
} }
bitmap.Save(filename+".png");
Console.WriteLine(filename+".png saved"); bitmap.Save(filename + ".png");
Console.WriteLine(filename + ".png saved");
} }
public static void ConvertTmpToPng(string[] args) public static void ConvertTmpToPng(string[] args)
@@ -322,21 +330,21 @@ namespace OpenRA.Utility
var mods = args[1].Split(','); var mods = args[1].Split(',');
var theater = args[2]; var theater = args[2];
var templateNames = args.Skip(3); var templateNames = args.Skip(3);
int[] ShadowIndex = { 3, 4 }; var shadowIndex = new int[] { 3, 4 };
var manifest = new Manifest(mods); var manifest = new Manifest(mods);
FileSystem.LoadFromManifest(manifest); FileSystem.LoadFromManifest(manifest);
var tileset = manifest.TileSets.Select( a => new TileSet(a) ) var tileset = manifest.TileSets.Select(a => new TileSet(a))
.FirstOrDefault( ts => ts.Name == theater ); .FirstOrDefault(ts => ts.Name == theater);
if (tileset == null) if (tileset == null)
throw new InvalidOperationException("No theater named '{0}'".F(theater)); throw new InvalidOperationException("No theater named '{0}'".F(theater));
tileset.LoadTiles(); tileset.LoadTiles();
var palette = new Palette(FileSystem.Open(tileset.Palette), ShadowIndex); var palette = new Palette(FileSystem.Open(tileset.Palette), shadowIndex);
foreach( var templateName in templateNames ) foreach (var templateName in templateNames)
{ {
var template = tileset.Templates.FirstOrDefault(tt => tt.Value.Image == templateName); var template = tileset.Templates.FirstOrDefault(tt => tt.Value.Image == templateName);
if (template.Value == null) if (template.Value == null)
@@ -353,7 +361,7 @@ namespace OpenRA.Utility
var dest = args[2]; var dest = args[2];
Dune2ShpReader srcImage = null; Dune2ShpReader srcImage = null;
using(var s = File.OpenRead(src)) using (var s = File.OpenRead(src))
srcImage = new Dune2ShpReader(s); srcImage = new Dune2ShpReader(s);
var size = srcImage.First().Size; var size = srcImage.First().Size;
@@ -383,9 +391,9 @@ namespace OpenRA.Utility
if (src == null) if (src == null)
throw new InvalidOperationException("File not found: {0}".F(f)); throw new InvalidOperationException("File not found: {0}".F(f));
var data = src.ReadAllBytes(); var data = src.ReadAllBytes();
var output = args.Contains("--userdir") ? Platform.SupportDir+f : f; var output = args.Contains("--userdir") ? Platform.SupportDir + f : f;
File.WriteAllBytes(output, data); File.WriteAllBytes(output, data);
Console.WriteLine(output+" saved."); Console.WriteLine(output + " saved.");
} }
} }
@@ -401,7 +409,7 @@ namespace OpenRA.Utility
public static void RemapShp(string[] args) public static void RemapShp(string[] args)
{ {
var remap = new Dictionary<int,int>(); var remap = new Dictionary<int, int>();
/* the first 4 entries are fixed */ /* the first 4 entries are fixed */
for (var i = 0; i < 4; i++) for (var i = 0; i < 4; i++)
@@ -419,17 +427,17 @@ namespace OpenRA.Utility
FileSystem.LoadFromManifest(Game.modData.Manifest); FileSystem.LoadFromManifest(Game.modData.Manifest);
Rules.LoadRules(Game.modData.Manifest, new Map()); Rules.LoadRules(Game.modData.Manifest, new Map());
var destPaletteInfo = Rules.Info["player"].Traits.Get<PlayerColorPaletteInfo>(); var destPaletteInfo = Rules.Info["player"].Traits.Get<PlayerColorPaletteInfo>();
int[] destRemapIndex = destPaletteInfo.RemapIndex; var destRemapIndex = destPaletteInfo.RemapIndex;
var shadowIndex = new int[] { };
int[] ShadowIndex = { };
// the remap range is always 16 entries, but their location and order changes // the remap range is always 16 entries, but their location and order changes
for (var i = 0; i < 16; i++) for (var i = 0; i < 16; i++)
remap[PlayerColorRemap.GetRemapIndex(srcRemapIndex, i)] remap[PlayerColorRemap.GetRemapIndex(srcRemapIndex, i)]
= PlayerColorRemap.GetRemapIndex(destRemapIndex, i); = PlayerColorRemap.GetRemapIndex(destRemapIndex, i);
// map everything else to the best match based on channel-wise distance // map everything else to the best match based on channel-wise distance
var srcPalette = Palette.Load(args[1].Split(':')[1], ShadowIndex); var srcPalette = Palette.Load(args[1].Split(':')[1], shadowIndex);
var destPalette = Palette.Load(args[2].Split(':')[1], ShadowIndex); var destPalette = Palette.Load(args[2].Split(':')[1], shadowIndex);
var fullIndexRange = Exts.MakeArray<int>(256, x => x); var fullIndexRange = Exts.MakeArray<int>(256, x => x);
@@ -444,10 +452,9 @@ namespace OpenRA.Utility
using (var destStream = File.Create(args[4])) using (var destStream = File.Create(args[4]))
ShpWriter.Write(destStream, srcImage.Width, srcImage.Height, ShpWriter.Write(destStream, srcImage.Width, srcImage.Height,
srcImage.Frames.Select( im => im.Image.Select(px => (byte)remap[px]).ToArray() )); srcImage.Frames.Select(im => im.Image.Select(px => (byte)remap[px]).ToArray()));
} }
//This is needed because the run and shoot animation are next to each other for each sequence in RA/CnC, but not in D2k.
public static void TransposeShp(string[] args) public static void TransposeShp(string[] args)
{ {
var srcImage = ShpReader.Load(args[1]); var srcImage = ShpReader.Load(args[1]);
@@ -455,18 +462,18 @@ namespace OpenRA.Utility
var srcFrames = srcImage.Frames.ToArray(); var srcFrames = srcImage.Frames.ToArray();
var destFrames = srcImage.Frames.ToArray(); var destFrames = srcImage.Frames.ToArray();
for( var z = 3; z < args.Length - 2; z += 3 ) for (var z = 3; z < args.Length - 2; z += 3)
{ {
var start = int.Parse(args[z]); var start = int.Parse(args[z]);
var m = int.Parse(args[z+1]); var m = int.Parse(args[z + 1]);
var n = int.Parse(args[z+2]); var n = int.Parse(args[z + 2]);
for( var i = 0; i < m; i++ ) for (var i = 0; i < m; i++)
for( var j = 0; j < n; j++ ) for (var j = 0; j < n; j++)
destFrames[ start + i*n + j ] = srcFrames[ start + j*m + i ]; destFrames[start + i * n + j] = srcFrames[start + j * m + i];
} }
using( var destStream = File.Create(args[2]) ) using (var destStream = File.Create(args[2]))
ShpWriter.Write(destStream, srcImage.Width, srcImage.Height, ShpWriter.Write(destStream, srcImage.Width, srcImage.Height,
destFrames.Select(f => f.Image)); destFrames.Select(f => f.Image));
} }

View File

@@ -38,10 +38,10 @@ namespace OpenRA.Utility
try try
{ {
var action = Exts.WithDefault( _ => PrintUsage(), () => actions[args[0]]); var action = Exts.WithDefault(_ => PrintUsage(), () => actions[args[0]]);
action(args); action(args);
} }
catch( Exception e ) catch (Exception e)
{ {
Log.AddChannel("utility", "utility.log"); Log.AddChannel("utility", "utility.log");
Log.Write("utility", "Received args: {0}", args.JoinWith(" ")); Log.Write("utility", "Received args: {0}", args.JoinWith(" "));