diff --git a/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs index 61c842c72b..e75089a835 100644 --- a/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs +++ b/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs @@ -87,20 +87,6 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] { "--r8", pathToDataR8, pathToPalette, "162", "177", Path.Combine(pathToSHPs, "sandcrater2") }, new string[] { "--r8", pathToDataR8, pathToPalette, "178", "193", Path.Combine(pathToSHPs, "unknown") }, new string[] { "--r8", pathToDataR8, pathToPalette, "194", "205", Path.Combine(pathToSHPs, "unknown2") }, - new string[] { "--r8", pathToDataR8, pathToPalette, "206", "381", Path.Combine(pathToSHPs, "rifle"), "--infantry" }, - new string[] { "--r8", pathToDataR8, pathToPalette, "382", "457", Path.Combine(pathToSHPs, "rifledeath"), "--infantrydeath" }, - new string[] { "--r8", pathToDataR8, pathToPalette, "458", "633", Path.Combine(pathToSHPs, "bazooka"), "--infantry" }, - new string[] { "--r8", pathToDataR8, pathToPalette, "634", "693", Path.Combine(pathToSHPs, "bazookadeath"), "--infantrydeath" }, - new string[] { "--r8", pathToDataR8, pathToPalette, "694", "869", Path.Combine(pathToSHPs, "fremen"), "--infantry" }, - new string[] { "--r8", pathToDataR8, pathToPalette, "870", "929", Path.Combine(pathToSHPs, "fremendeath"), "--infantrydeath" }, - new string[] { "--r8", pathToDataR8, pathToPalette, "930", "1105", Path.Combine(pathToSHPs, "sardaukar"), "--infantry" }, - new string[] { "--r8", pathToDataR8, pathToPalette, "1106", "1165", Path.Combine(pathToSHPs, "sardaukardeath"), "--infantrydeath" }, - new string[] { "--r8", pathToDataR8, pathToPalette, "1166", "1341", Path.Combine(pathToSHPs, "engineer"), "--infantry" }, - new string[] { "--r8", pathToDataR8, pathToPalette, "1342", "1401", Path.Combine(pathToSHPs, "engineerdeath"), "--infantrydeath" }, - new string[] { "--r8", pathToDataR8, pathToPalette, "1402", "1457", Path.Combine(pathToSHPs, "thumper"), "--infantry" }, - new string[] { "--r8", pathToDataR8, pathToPalette, "1458", "1462", Path.Combine(pathToSHPs, "thumping"), "--infantrydeath" }, - new string[] { "--r8", pathToDataR8, pathToPalette, "1463", "1542", Path.Combine(pathToSHPs, "thumper2"), "--infantry" }, - new string[] { "--r8", pathToDataR8, pathToPalette, "1543", "1602", Path.Combine(pathToSHPs, "thumperdeath"), "--infantrydeath" }, new string[] { "--r8", pathToDataR8, pathToPalette, "1603", "1634", Path.Combine(pathToSHPs, "missiletank"), "--vehicle" }, new string[] { "--r8", pathToDataR8, pathToPalette, "1635", "1666", Path.Combine(pathToSHPs, "trike"), "--vehicle" }, new string[] { "--r8", pathToDataR8, pathToPalette, "1667", "1698", Path.Combine(pathToSHPs, "quad"), "--vehicle" }, @@ -117,8 +103,6 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] { "--r8", pathToDataR8, pathToPalette, "2083", "2114", Path.Combine(pathToSHPs, "devast"), "--vehicle" }, new string[] { "--r8", pathToDataR8, pathToPalette, "2115", "2146", Path.Combine(pathToSHPs, "combathturret"), "--vehicle" }, new string[] { "--r8", pathToDataR8, pathToPalette, "2147", "2148", Path.Combine(pathToSHPs, "deathhandmissile") }, - new string[] { "--r8", pathToDataR8, pathToPalette, "2149", "2324", Path.Combine(pathToSHPs, "saboteur"), "--infantry" }, - new string[] { "--r8", pathToDataR8, pathToPalette, "2325", "2388", Path.Combine(pathToSHPs, "saboteurdeath"), "--infantrydeath" }, new string[] { "--r8", pathToDataR8, pathToPalette, "2389", "2420", Path.Combine(pathToSHPs, "deviatortank"), "--vehicle" }, new string[] { "--r8", pathToDataR8, pathToPalette, "2421", "2452", Path.Combine(pathToSHPs, "raider"), "--vehicle" }, new string[] { "--r8", pathToDataR8, pathToPalette, "2453", "2484", Path.Combine(pathToSHPs, "combato"), "--vehicle" }, @@ -319,20 +303,6 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] { "--shp", Path.Combine(pathToSHPs, "sandcrater2.png"), "32" }, new string[] { "--shp", Path.Combine(pathToSHPs, "unknown.png"), "64" }, new string[] { "--shp", Path.Combine(pathToSHPs, "unknown2.png"), "64" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "rifle.png"), "48" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "rifledeath.png"), "48" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "bazooka.png"), "48" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "bazookadeath.png"), "48" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "fremen.png"), "48" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "fremendeath.png"), "48" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "sardaukar.png"), "48" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "sardaukardeath.png"), "48" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "engineer.png"), "48" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "engineerdeath.png"), "48" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "thumper.png"), "48" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "thumping.png"), "48" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "thumper2.png"), "48" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "thumperdeath.png"), "48" }, new string[] { "--shp", Path.Combine(pathToSHPs, "missiletank.png"), "48" }, new string[] { "--shp", Path.Combine(pathToSHPs, "trike.png"), "32" }, new string[] { "--shp", Path.Combine(pathToSHPs, "quad.png"), "32" }, @@ -349,8 +319,6 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] { "--shp", Path.Combine(pathToSHPs, "devast.png"), "48" }, new string[] { "--shp", Path.Combine(pathToSHPs, "combathturret.png"), "48" }, new string[] { "--shp", Path.Combine(pathToSHPs, "deathhandmissile.png"), "24" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "saboteur.png"), "48" }, - new string[] { "--shp", Path.Combine(pathToSHPs, "saboteurdeath.png"), "48" }, new string[] { "--shp", Path.Combine(pathToSHPs, "deviatortank.png"), "48" }, new string[] { "--shp", Path.Combine(pathToSHPs, "raider.png"), "32" }, new string[] { "--shp", Path.Combine(pathToSHPs, "combato.png"), "48" }, @@ -499,14 +467,6 @@ namespace OpenRA.Mods.D2k.Widgets.Logic var shpToTranspose = new string[][] { new string[] { "--transpose", Path.Combine(pathToSHPs, "orni.shp"), Path.Combine(pathToSHPs, "orni.shp"), "0", "32", "3" }, - new string[] { "--transpose", Path.Combine(pathToSHPs, "rifle.shp"), Path.Combine(pathToSHPs, "rifle.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" }, - new string[] { "--transpose", Path.Combine(pathToSHPs, "bazooka.shp"), Path.Combine(pathToSHPs, "bazooka.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" }, - new string[] { "--transpose", Path.Combine(pathToSHPs, "fremen.shp"), Path.Combine(pathToSHPs, "fremen.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" }, - new string[] { "--transpose", Path.Combine(pathToSHPs, "sardaukar.shp"), Path.Combine(pathToSHPs, "sardaukar.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" }, - new string[] { "--transpose", Path.Combine(pathToSHPs, "thumper.shp"), Path.Combine(pathToSHPs, "thumper.shp"), "8", "8", "6" }, - new string[] { "--transpose", Path.Combine(pathToSHPs, "thumper2.shp"), Path.Combine(pathToSHPs, "thumper2.shp"), "8", "8", "5" }, - new string[] { "--transpose", Path.Combine(pathToSHPs, "engineer.shp"), Path.Combine(pathToSHPs, "engineer.shp"), "8", "8", "6" }, - new string[] { "--transpose", Path.Combine(pathToSHPs, "saboteur.shp"), Path.Combine(pathToSHPs, "saboteur.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" }, }; var onError = (Action)(s => Game.RunAfterTick(() => diff --git a/OpenRA.Utility/Command.cs b/OpenRA.Utility/Command.cs index 0911469df5..db3dec0340 100644 --- a/OpenRA.Utility/Command.cs +++ b/OpenRA.Utility/Command.cs @@ -141,44 +141,7 @@ namespace OpenRA.Utility frame = srcImage[startFrame]; - // resorting to RA/CnC compatible counter-clockwise frame order - if (args.Contains("--infantry")) - { - endFrame = startFrame - 1; - - // 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--) - { - var offsetX = frame.FrameSize.Width / 2 - frame.Size.Width / 2; - var offsetY = frame.FrameSize.Height / 2 - frame.Size.Height / 2; - - 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; - - frame = srcImage[f]; - Console.WriteLine("f: {0}", f); - } - - endFrame = startFrame + e - 1; - frame = srcImage[startFrame + e]; - Console.WriteLine("e: {0}", e); - Console.WriteLine("FrameCount: {0}", frameCount); - } - } - else if (args.Contains("--vehicle") || args.Contains("--projectile")) + if (args.Contains("--vehicle") || args.Contains("--projectile")) { frame = srcImage[startFrame]; @@ -260,34 +223,6 @@ namespace OpenRA.Utility bitmap = tileset; } - else - { - for (int f = startFrame; f < endFrame; f++) - { - frame = srcImage[f]; - var offsetX = 0; - var offsetY = 0; - if (args.Contains("--infantrydeath")) - { - offsetX = frame.FrameSize.Width / 2 - frame.Size.Width / 2; - offsetY = frame.FrameSize.Height / 2 - frame.Size.Height / 2; - } - - 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; - } - } bitmap.Save(filename + ".png"); Console.WriteLine(filename + ".png saved"); diff --git a/OpenRA.Utility/Program.cs b/OpenRA.Utility/Program.cs index e88e33fdb9..c0a5a1a091 100644 --- a/OpenRA.Utility/Program.cs +++ b/OpenRA.Utility/Program.cs @@ -64,7 +64,7 @@ namespace OpenRA.Utility Console.WriteLine(" --extract MOD[,MOD]* FILES [--userdir] Extract files from mod packages to the current (or user) directory"); 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 [--noshadow] [--infrantry] [--vehicle] [--projectile] [--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 removing the shadow."); + Console.WriteLine(" --r8 R8FILE PALETTE START END FILENAME [--noshadow] [--vehicle] [--projectile] [--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 removing the shadow."); Console.WriteLine(" --transpose SRCSHP DESTSHP START N M [START N M ...] Transpose the N*M block of frames starting at START."); Console.WriteLine(" --docs MOD Generate trait documentation in MarkDown format."); Console.WriteLine(" --map-hash MAPFILE Generate hash of specified oramap file."); diff --git a/mods/d2k/sequences/infantry.yaml b/mods/d2k/sequences/infantry.yaml index 97762bfdc6..a55ac588c8 100644 --- a/mods/d2k/sequences/infantry.yaml +++ b/mods/d2k/sequences/infantry.yaml @@ -1,385 +1,417 @@ rifle: - stand: - Start: 0 - Facings: 8 - stand2: - Start: 0 - Facings: 8 - stand3: - Start: 0 - Facings: 8 - run: - Start: 8 + stand: DATA.R8 + Start: 206 + Facings: -8 + Transpose: true + stand2: DATA.R8 + Start: 206 + Facings: -8 + Transpose: true + stand3: DATA.R8 + Start: 206 + Facings: -8 + Transpose: true + run: DATA.R8 + Start: 214 Length: 6 - Facings: 8 + Facings: -8 Tick: 110 - shoot: - Start: 56 - Length: 5 - Facings: 8 - Tick: 120 - prone-stand: - Start: 104 - Length: 1 - Facings: 8 - prone-run: - Start: 112 + Transpose: true + shoot: DATA.R8 + Start: 254 + Length: 6 + Facings: -8 + Transpose: true + prone-stand: DATA.R8 + Start: 302 + Facings: -8 + Transpose: true + prone-run: DATA.R8 + Start: 310 Length: 3 - Facings: 8 + Facings: -8 + Transpose: true Tick: 110 - standup-0: - Start: 96 - Length: 1 - Facings: 8 + standup-0: DATA.R8 + Start: 302 + Facings: -8 + Transpose: true Tick: 120 - prone-shoot: - Start: 136 + prone-shoot: DATA.R8 + Start: 334 + Length: 6 + Facings: -8 + Transpose: true + die1: DATA.R8 + Start: 382 Length: 5 - Facings: 8 - Tick: 120 - die1: rifledeath - Start: 12 - Length: 12 + die2: DATA.R8 + Start: 387 + Length: 7 Tick: 80 - die2: rifledeath - Start: 12 + die3: DATA.R8 + Start: 394 + Length: 7 + die4: DATA.R8 + Start: 401 + Length: 7 + die5: DATA.R8 + Start: 408 + Length: 7 + die6: DATA.R8 + Start: 415 Length: 12 - Tick: 80 - die3: rifledeath - Start: 36 + die-crushed: DATA.R8 + Start: 430 Length: 12 - Tick: 80 - die4: rifledeath - Start: 24 - Length: 12 - Tick: 80 - die5: rifledeath - Start: 0 - Length: 12 - Tick: 80 - die6: rifledeath - Start: 12 - Length: 12 - Tick: 80 - die-crushed: rifledeath - Start: 48 - Length: 12 - Tick: 160 + Tick: 1600 bazooka: - stand: - Start: 0 - Facings: 8 - stand2: - Start: 0 - Facings: 8 - stand3: - Start: 0 - Facings: 8 - run: - Start: 8 + stand: DATA.R8 + Start: 458 + Facings: -8 + Transpose: true + stand2: DATA.R8 + Start: 458 + Facings: -8 + Transpose: true + stand3: DATA.R8 + Start: 458 + Facings: -8 + Transpose: true + run: DATA.R8 + Start: 466 Length: 6 - Facings: 8 + Facings: -8 Tick: 120 - shoot: - Start: 56 - Length: 5 - Facings: 8 - Tick: 120 - prone-stand: - Start: 104 + Transpose: true + shoot: DATA.R8 + Start: 506 + Length: 6 + Facings: -8 + Transpose: true + prone-stand: DATA.R8 + Start: 562 Length: 1 - Facings: 8 - prone-run: - Start: 112 + Facings: -8 + Transpose: true + prone-run: DATA.R8 + Start: 570 Length: 3 - Facings: 8 + Facings: -8 + Transpose: true Tick: 120 - standup-0: - Start: 96 + standup-0: DATA.R8 + Start: 554 Length: 1 - Facings: 8 - prone-shoot: - Start: 136 + Facings: -8 + Transpose: true + prone-shoot: DATA.R8 + Start: 586 + Length: 6 + Facings: -8 + Transpose: true + die1: DATA.R8 + Start: 634 Length: 5 - Facings: 8 - Tick: 120 - die1: bazookadeath - Start: 0 - Length: 5 - die2: bazookadeath - Start: 5 + die2: DATA.R8 + Start: 639 Length: 7 - die3: bazookadeath - Start: 12 + die3: DATA.R8 + Start: 646 Length: 7 - die4: bazookadeath - Start: 19 + die4: DATA.R8 + Start: 653 Length: 7 - die5: bazookadeath - Start: 26 + die5: DATA.R8 + Start: 660 Length: 7 - die6: bazookadeath - Start: 26 + die6: DATA.R8 + Start: 660 Length: 7 - die-crushed: bazookadeath - Start: 34 + die-crushed: DATA.R8 + Start: 668 Length: 26 Tick: 1600 engineer: - stand: - Start: 0 - Facings: 8 - stand2: - Start: 0 - Facings: 8 - run: - Start: 8 + stand: DATA.R8 + Start: 1166 + Facings: -8 + Transpose: true + stand2: DATA.R8 + Start: 1166 + Facings: -8 + Transpose: true + run: DATA.R8 + Start: 1174 Length: 6 - Facings: 8 + Facings: -8 + Transpose: true Tick: 120 - die1: engineerdeath - Start: 0 + die1: DATA.R8 + Start: 1342 Length: 5 - die2: engineerdeath - Start: 5 + die2: DATA.R8 + Start: 1347 Length: 7 - die3: engineerdeath - Start: 12 + die3: DATA.R8 + Start: 1354 Length: 7 - die4: engineerdeath - Start: 19 + die4: DATA.R8 + Start: 1361 Length: 7 - die5: engineerdeath - Start: 26 + die5: DATA.R8 + Start: 1368 Length: 7 - die6: engineerdeath - Start: 26 + die6: DATA.R8 + Start: 1368 Length: 7 - die-crushed: engineerdeath - Start: 34 + die-crushed: DATA.R8 + Start: 1376 Length: 26 Tick: 1600 thumper: - stand: - Start: 0 - Facings: 8 - stand2: - Start: 0 - Facings: 8 - run: - Start: 8 + stand: DATA.R8 + Start: 1402 + Facings: -8 + Transpose: true + stand2: DATA.R8 + Start: 1402 + Facings: -8 + Transpose: true + run: DATA.R8 + Start: 1410 Length: 6 - Facings: 8 + Facings: -8 + Transpose: true Tick: 120 - heal: thumping - Start: 0 - Length: 4 - Tick: 480 - die1: thumperdeath - Start: 0 + heal: DATA.R8 + Start: 1458 Length: 5 - die2: thumperdeath - Start: 5 + Tick: 480 + die1: DATA.R8 + Start: 1543 + Length: 5 + die2: DATA.R8 + Start: 1548 Length: 7 - die3: thumperdeath - Start: 12 + die3: DATA.R8 + Start: 1555 Length: 7 - die4: thumperdeath - Start: 19 + die4: DATA.R8 + Start: 1562 Length: 7 - die5: thumperdeath - Start: 26 + die5: DATA.R8 + Start: 1569 Length: 7 - die6: thumperdeath - Start: 26 + die6: DATA.R8 + Start: 1569 Length: 7 - die-crushed: thumperdeath - Start: 34 + die-crushed: DATA.R8 + Start: 1577 Length: 26 Tick: 1600 thumping: - idle: - Start: 0 - Length: 4 + idle: DATA.R8 + Start: 1458 + Length: 5 Tick: 150 - make: - Start: 0 - Length: 4 - damaged-idle: - Start: 0 - Length: 4 + make: DATA.R8 + Start: 1458 + Length: 5 + damaged-idle: DATA.R8 + Start: 1458 + Length: 5 Tick: 150 fremen: - stand: - Start: 0 - Facings: 8 - stand2: - Start: 0 - Facings: 8 - run: - Start: 8 + stand: DATA.R8 + Start: 694 + Facings: -8 + Transpose: true + stand2: DATA.R8 + Start: 694 + Facings: -8 + Transpose: true + run: DATA.R8 + Start: 702 Length: 6 - Facings: 8 + Facings: -8 + Transpose: true Tick: 120 - shoot: - Start: 56 - Length: 5 - Facings: 8 - Tick: 120 - prone-stand: - Start: 104 + shoot: DATA.R8 + Start: 742 + Length: 6 + Facings: -8 + Transpose: true + prone-stand: DATA.R8 + Start: 798 Length: 1 - Facings: 8 - prone-run: - Start: 112 + Facings: -8 + Transpose: true + prone-run: DATA.R8 + Start: 806 Length: 3 - Facings: 8 + Facings: -8 + Transpose: true Tick: 120 - standup-0: - Start: 96 + standup-0: DATA.R8 + Start: 790 Length: 1 - Facings: 8 + Facings: -8 + Transpose: true Tick: 120 - prone-shoot: - Start: 136 + prone-shoot: DATA.R8 + Start: 822 + Length: 6 + Facings: -8 + Transpose: true + die1: DATA.R8 + Start: 870 Length: 5 - Facings: 8 - Tick: 120 - die1: fremendeath - Start: 0 - Length: 5 - die2: fremendeath - Start: 5 + die2: DATA.R8 + Start: 875 Length: 7 - die3: fremendeath - Start: 12 + die3: DATA.R8 + Start: 882 Length: 7 - die4: fremendeath - Start: 19 + die4: DATA.R8 + Start: 889 Length: 7 - die5: fremendeath - Start: 26 + die5: DATA.R8 + Start: 896 Length: 7 - die6: fremendeath - Start: 26 + die6: DATA.R8 + Start: 896 Length: 7 - die-crushed: fremendeath - Start: 34 + die-crushed: DATA.R8 + Start: 904 Length: 26 Tick: 1600 saboteur: - stand: - Start: 0 - Facings: 8 - stand2: - Start: 0 - Facings: 8 - stand3: - Start: 0 - Facings: 8 - run: - Start: 8 + stand: DATA.R8 + Start: 2149 + Facings: -8 + Transpose: true + stand2: DATA.R8 + Start: 2149 + Facings: -8 + Transpose: true + stand3: DATA.R8 + Start: 2149 + Facings: -8 + Transpose: true + run: DATA.R8 + Start: 2157 Length: 6 - Facings: 8 + Facings: -8 + Transpose: true Tick: 120 - prone-stand: - Start: 104 + prone-stand: DATA.R8 + Start: 2253 Length: 1 - Facings: 8 - prone-run: - Start: 112 + Facings: -8 + Transpose: true + prone-run: DATA.R8 + Start: 2261 Length: 3 - Facings: 8 + Facings: -8 + Transpose: true Tick: 120 - standup-0: - Start: 96 + standup-0: DATA.R8 + Start: 2245 Length: 1 - Facings: 8 + Facings: -8 + Transpose: true Tick: 120 - die1: saboteurdeath - Start: 0 + die1: DATA.R8 + Start: 2325 Length: 5 - die2: saboteurdeath - Start: 5 + die2: DATA.R8 + Start: 2330 Length: 7 - die3: saboteurdeath - Start: 12 + die3: DATA.R8 + Start: 2337 Length: 7 - die4: saboteurdeath - Start: 19 + die4: DATA.R8 + Start: 2344 Length: 7 - die5: saboteurdeath - Start: 26 + die5: DATA.R8 + Start: 2351 Length: 7 - die6: saboteurdeath - Start: 26 + die6: DATA.R8 + Start: 2351 Length: 7 - die-crushed: saboteurdeath - Start: 34 + die-crushed: DATA.R8 + Start: 2359 Length: 26 Tick: 1600 sardaukar: - stand: - Start: 0 - Facings: 8 - stand2: - Start: 0 - Facings: 8 - run: - Start: 8 + stand: DATA.R8 + Start: 930 + Facings: -8 + Transpose: true + stand2: DATA.R8 + Start: 930 + Facings: -8 + Transpose: true + run: DATA.R8 + Start: 938 + Length: 6 + Facings: -8 + Transpose: true + Tick: 120 + shoot: DATA.R8 + Start: 978 + Length: 6 + Facings: -8 + Transpose: true + prone-stand: DATA.R8 + Start: 1034 + Length: 1 + Facings: -8 + Transpose: true + prone-run: DATA.R8 + Start: 1042 + Length: 3 + Facings: -8 + Transpose: true + Tick: 120 + standup-0: DATA.R8 + Start: 1026 + Length: 1 + Facings: -8 + Transpose: true + Tick: 120 + prone-shoot: DATA.R8 + Start: 1058 Length: 6 Facings: 8 - Tick: 120 - shoot: - Start: 56 + Transpose: true + die1: DATA.R8 + Start: 1106 Length: 5 - Facings: 8 - Tick: 120 - prone-stand: - Start: 104 - Length: 1 - Facings: 8 - prone-run: - Start: 112 - Length: 3 - Facings: 8 - Tick: 120 - standup-0: - Start: 96 - Length: 1 - Facings: 8 - Tick: 120 - prone-shoot: - Start: 136 - Length: 5 - Facings: 8 - Tick: 120 - die1: sardaukardeath - Start: 0 - Length: 5 - die2: sardaukardeath - Start: 5 + die2: DATA.R8 + Start: 1111 Length: 7 - die3: sardaukardeath - Start: 12 + die3: DATA.R8 + Start: 1118 Length: 7 - die4: sardaukardeath - Start: 19 + die4: DATA.R8 + Start: 1125 Length: 7 - die5: sardaukardeath - Start: 26 + die5: DATA.R8 + Start: 1132 Length: 7 - die6: sardaukardeath - Start: 26 + die6: DATA.R8 + Start: 1132 Length: 7 - die-crushed: sardaukardeath - Start: 34 + die-crushed: DATA.R8 + Start: 1140 Length: 26 - Tick: 1600 \ No newline at end of file + Tick: 1600