allow --transpose to do multiple operations in one pass

This commit is contained in:
Chris Forbes
2012-06-18 20:38:37 +12:00
parent 4f1a7ff5fb
commit 7af0e64708
2 changed files with 11 additions and 7 deletions

View File

@@ -402,16 +402,20 @@ namespace OpenRA.Utility
public static void TransposeShp(string[] args) public static void TransposeShp(string[] args)
{ {
var srcImage = ShpReader.Load(args[1]); 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 srcFrames = srcImage.Frames.ToArray();
var destFrames = srcImage.Frames.ToArray(); var destFrames = srcImage.Frames.ToArray();
for( var i = 0; i < m; i++ ) for( var z = 3; z < args.Length - 2; z += 3 )
for( var j = 0; j < n; j++ ) {
destFrames[ start + i*n + j ] = srcFrames[ start + j*m + i ]; var start = int.Parse(args[z]);
var m = int.Parse(args[z+1]);
var n = int.Parse(args[z+2]);
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]) ) using( var destStream = File.Create(args[2]) )
ShpWriter.Write(destStream, srcImage.Width, srcImage.Height, ShpWriter.Write(destStream, srcImage.Width, srcImage.Height,

View File

@@ -62,7 +62,7 @@ namespace OpenRA.Utility
Console.WriteLine(" --tmp-png MOD[,MOD]* THEATER FILES Extract terrain tiles to PNG"); 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(" --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(" --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."); Console.WriteLine(" --transpose SRCSHP DESTSHP START N M [START N M ...] Transpose the N*M block of frames starting at START.");
} }
static string GetNamedArg(string[] args, string arg) static string GetNamedArg(string[] args, string arg)