add --transpose option to utility

This commit is contained in:
Chris Forbes
2012-06-18 11:22:24 +12:00
parent c9edf7d0dc
commit 4f1a7ff5fb
2 changed files with 21 additions and 0 deletions

View File

@@ -398,5 +398,24 @@ namespace OpenRA.Utility
ShpWriter.Write(destStream, srcImage.Width, srcImage.Height,
srcImage.Frames.Select( im => im.Image.Select(px => (byte)remap[px]).ToArray() ));
}
public static void TransposeShp(string[] args)
{
var srcImage = ShpReader.Load(args[1]);
var start = int.Parse(args[3]);
var m = int.Parse(args[4]);
var n = int.Parse(args[5]);
var srcFrames = srcImage.Frames.ToArray();
var destFrames = srcImage.Frames.ToArray();
for( var i = 0; i < m; i++ )
for( var j = 0; j < n; j++ )
destFrames[ start + i*n + j ] = srcFrames[ start + j*m + i ];
using( var destStream = File.Create(args[2]) )
ShpWriter.Write(destStream, srcImage.Width, srcImage.Height,
destFrames.Select(f => f.Image));
}
}
}

View File

@@ -28,6 +28,7 @@ namespace OpenRA.Utility
{ "--tmp-png", Command.ConvertTmpToPng },
{ "--remap", Command.RemapShp },
{ "--r8", Command.ConvertR8ToPng },
{ "--transpose", Command.TransposeShp },
};
if (args.Length == 0) { PrintUsage(); return; }
@@ -61,6 +62,7 @@ namespace OpenRA.Utility
Console.WriteLine(" --tmp-png MOD[,MOD]* THEATER FILES Extract terrain tiles to PNG");
Console.WriteLine(" --remap SRCMOD:PAL DESTMOD:PAL SRCSHP DESTSHP Remap SHPs to another palette");
Console.WriteLine(" --r8 R8FILE PALETTE START END FILENAME [--transparent] [--infrantry] [--vehicle] [--projectile] [--building] [--wall] [--tileset] Convert Dune 2000 DATA.R8 to PNGs choosing start- and endframe as well as type for correct offset to append multiple frames to one PNG named by filename optionally setting up transparency.");
Console.WriteLine(" --transpose SRCSHP DESTSHP START N M Transpose the N*M block of frames starting at START.");
}
static string GetNamedArg(string[] args, string arg)