load Dune 2000 walls directly from DATA.R8

This commit is contained in:
Matthias Mailänder
2013-08-10 18:46:55 +02:00
parent 0dbee935e7
commit a7504b5dd9
5 changed files with 60 additions and 45 deletions

View File

@@ -230,33 +230,6 @@ namespace OpenRA.Utility
frame = srcImage[f];
}
}
else if (args.Contains("--wall"))
{
// complex resorting to RA/CnC compatible frame order
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)
{
var f = startFrame - 1 + o;
frame = srcImage[f];
var offsetX = Math.Abs(frame.Offset.X);
var 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,
PixelFormat.Format8bppIndexed);
for (var i = 0; i < frame.Size.Height; i++)
Marshal.Copy(frame.Image, i * frame.Size.Width,
new IntPtr(data.Scan0.ToInt64() + i * data.Stride), frame.Size.Width);
bitmap.UnlockBits(data);
x += frame.FrameSize.Width;
}
}
else if (args.Contains("--tileset"))
{
int f = 0;