From 5d1ae1cb2a6c31bbe58a8fda97f4357b17539e15 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Wed, 28 Oct 2009 21:26:35 +1300 Subject: [PATCH] sequence highlight works in viewer --- SequenceEditor/Form1.Designer.cs | 2 +- SequenceEditor/Form1.cs | 1 + SequenceEditor/Program.cs | 7 +++++++ SequenceEditor/Surface.cs | 21 +++++++++++++++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/SequenceEditor/Form1.Designer.cs b/SequenceEditor/Form1.Designer.cs index e4eca1ff59..c2985f76f4 100644 --- a/SequenceEditor/Form1.Designer.cs +++ b/SequenceEditor/Form1.Designer.cs @@ -47,7 +47,7 @@ this.ClientSize = new System.Drawing.Size(708, 543); this.Controls.Add(this.surface1); this.Name = "Form1"; - this.Text = "Form1"; + this.Text = "OpenRA Sequence Viewer"; this.ResumeLayout(false); } diff --git a/SequenceEditor/Form1.cs b/SequenceEditor/Form1.cs index 090ca582f7..6eb480d7f7 100644 --- a/SequenceEditor/Form1.cs +++ b/SequenceEditor/Form1.cs @@ -15,6 +15,7 @@ namespace SequenceEditor public Form1() { InitializeComponent(); + Text += " - " + Program.UnitName; } } } diff --git a/SequenceEditor/Program.cs b/SequenceEditor/Program.cs index d07e7991e2..c6bc95a71e 100644 --- a/SequenceEditor/Program.cs +++ b/SequenceEditor/Program.cs @@ -75,7 +75,14 @@ namespace SequenceEditor public Sequence(XmlElement e) { + start = int.Parse(e.GetAttribute("start")); + shp = e.GetAttribute("src"); + if (shp == "") shp = Program.UnitName; + var a = e.GetAttribute("length"); + length = (a == "*") + ? Program.Shps[shp].Length - start + : ((a == "") ? 1 : int.Parse(a)); } } } diff --git a/SequenceEditor/Surface.cs b/SequenceEditor/Surface.cs index b7e7d40cf0..a5b14157fb 100644 --- a/SequenceEditor/Surface.cs +++ b/SequenceEditor/Surface.cs @@ -57,6 +57,27 @@ namespace SequenceEditor y += u; x = 0; } + + var brushes = new[] { Brushes.Green, Brushes.Red, Brushes.Blue, Brushes.Magenta, Brushes.DarkOrange, Brushes.Navy }; + + var seqid = 0; + foreach (var seq in Program.Sequences) + { + var firstFrame = seq.Value.start; + var r = items[seq.Value.shp][firstFrame]; + + for (var i = 0; i < seq.Value.length; i++) + { + var q = items[seq.Value.shp][i + firstFrame]; + e.Graphics.FillRectangle(brushes[seqid], q.Left, q.Top, q.Width, 2); + } + + var z = e.Graphics.MeasureString(seq.Key, Font); + e.Graphics.FillRectangle(brushes[seqid], r.Left, r.Top, z.Width, z.Height); + e.Graphics.DrawString(seq.Key, Font, Brushes.White, r.Left, r.Top); + + seqid = ++seqid % brushes.Length; + } } } }