From 88a6f5a46c3e6a8c099488526edfb8beaedec748 Mon Sep 17 00:00:00 2001 From: MaxED Date: Thu, 16 Jan 2014 13:08:41 +0000 Subject: [PATCH] Thing Info panel, Linedef info panel: tag labels are now displayed for action arguments. --- Source/Core/Controls/LinedefInfoPanel.cs | 32 +++++++++------- Source/Core/Controls/ThingInfoPanel.cs | 38 ++++++++++--------- .../Controls/PairedFieldsControl.Designer.cs | 2 +- .../Controls/PairedIntControl.Designer.cs | 2 +- Source/Core/Types/IntegerHandler.cs | 3 +- .../VisualModes/BaseVisualMode.cs | 14 +++---- 6 files changed, 47 insertions(+), 44 deletions(-) diff --git a/Source/Core/Controls/LinedefInfoPanel.cs b/Source/Core/Controls/LinedefInfoPanel.cs index d4ea9559..b970f660 100644 --- a/Source/Core/Controls/LinedefInfoPanel.cs +++ b/Source/Core/Controls/LinedefInfoPanel.cs @@ -50,7 +50,6 @@ namespace CodeImp.DoomBuilder.Controls // This shows the info public void ShowInfo(Linedef l) { - TypeHandler th; bool upperunpegged, lowerunpegged; string peggedness; int defaultPanelWidth = 270; //mxd @@ -165,17 +164,12 @@ namespace CodeImp.DoomBuilder.Controls if (hasArg0Str) { arg1.Text = '"' + l.Fields["arg0str"].Value.ToString() + '"'; } else { - th = General.Types.GetArgumentHandler(act.Args[0]); - th.SetValue(l.Args[0]); arg1.Text = th.GetStringValue(); + setArgumentText(act.Args[0], arg1, l.Args[0]); } - th = General.Types.GetArgumentHandler(act.Args[1]); - th.SetValue(l.Args[1]); arg2.Text = th.GetStringValue(); - th = General.Types.GetArgumentHandler(act.Args[2]); - th.SetValue(l.Args[2]); arg3.Text = th.GetStringValue(); - th = General.Types.GetArgumentHandler(act.Args[3]); - th.SetValue(l.Args[3]); arg4.Text = th.GetStringValue(); - th = General.Types.GetArgumentHandler(act.Args[4]); - th.SetValue(l.Args[4]); arg5.Text = th.GetStringValue(); + setArgumentText(act.Args[1], arg2, l.Args[1]); + setArgumentText(act.Args[2], arg3, l.Args[2]); + setArgumentText(act.Args[3], arg4, l.Args[3]); + setArgumentText(act.Args[4], arg5, l.Args[4]); // Front side available? if(l.Front != null) @@ -458,12 +452,24 @@ namespace CodeImp.DoomBuilder.Controls //mxd private float getDefaultUDMFValue(string valueName) { foreach (UniversalFieldInfo fi in fieldInfos) { - if (fi.Name == valueName) - return (float)fi.Default; + if (fi.Name == valueName) return (float)fi.Default; } return 0; } + //mxd + private void setArgumentText(ArgumentInfo info, Label label, int value) { + TypeHandler th = General.Types.GetArgumentHandler(info); + th.SetValue(value); + label.Text = th.GetStringValue(); + + if(value < 1 || !General.Map.Options.TagLabels.ContainsKey(value)) return; + + if(th is ThingTagHandler || th is LinedefTagHandler || th is SectorTagHandler) { + label.Text += " (" + General.Map.Options.TagLabels[value] + ")"; + } + } + // When visible changed protected override void OnVisibleChanged(EventArgs e) { diff --git a/Source/Core/Controls/ThingInfoPanel.cs b/Source/Core/Controls/ThingInfoPanel.cs index 072c5339..db0f3b3e 100644 --- a/Source/Core/Controls/ThingInfoPanel.cs +++ b/Source/Core/Controls/ThingInfoPanel.cs @@ -50,7 +50,6 @@ namespace CodeImp.DoomBuilder.Controls { ThingTypeInfo ti; LinedefActionInfo act = null; - TypeHandler th; string actioninfo = ""; string zinfo; float zvalue; @@ -106,12 +105,12 @@ namespace CodeImp.DoomBuilder.Controls // Hangs from ceiling? if(ti.Hangs) { - zvalue = (float)t.Sector.CeilHeight - t.Position.z - ti.Height; //mxd + zvalue = t.Sector.CeilHeight - t.Position.z - ti.Height; //mxd zinfo = zvalue.ToString(); } else { - zvalue = (float)t.Sector.FloorHeight + t.Position.z; + zvalue = t.Sector.FloorHeight + t.Position.z; zinfo = zvalue.ToString(); } } @@ -176,22 +175,12 @@ namespace CodeImp.DoomBuilder.Controls if(hasArg0Str) { arg1.Text = '"' + t.Fields["arg0str"].Value.ToString() + '"'; } else { - th = General.Types.GetArgumentHandler(arginfo[0]); - th.SetValue(t.Args[0]); - arg1.Text = th.GetStringValue(); + setArgumentText(arginfo[0], arg1, t.Args[0]); } - th = General.Types.GetArgumentHandler(arginfo[1]); - th.SetValue(t.Args[1]); - arg2.Text = th.GetStringValue(); - th = General.Types.GetArgumentHandler(arginfo[2]); - th.SetValue(t.Args[2]); - arg3.Text = th.GetStringValue(); - th = General.Types.GetArgumentHandler(arginfo[3]); - th.SetValue(t.Args[3]); - arg4.Text = th.GetStringValue(); - th = General.Types.GetArgumentHandler(arginfo[4]); - th.SetValue(t.Args[4]); - arg5.Text = th.GetStringValue(); + setArgumentText(arginfo[1], arg2, t.Args[1]); + setArgumentText(arginfo[2], arg3, t.Args[2]); + setArgumentText(arginfo[3], arg4, t.Args[3]); + setArgumentText(arginfo[4], arg5, t.Args[4]); //mxd. Flags flags.Items.Clear(); @@ -217,6 +206,19 @@ namespace CodeImp.DoomBuilder.Controls this.Update(); } + //mxd + private void setArgumentText(ArgumentInfo info, Label label, int value) { + TypeHandler th = General.Types.GetArgumentHandler(info); + th.SetValue(value); + label.Text = th.GetStringValue(); + + if(value < 1 || !General.Map.Options.TagLabels.ContainsKey(value)) return; + + if (th is ThingTagHandler || th is LinedefTagHandler || th is SectorTagHandler) { + label.Text += " (" + General.Map.Options.TagLabels[value] + ")"; + } + } + // When visible changed protected override void OnVisibleChanged(EventArgs e) { diff --git a/Source/Core/GZBuilder/Controls/PairedFieldsControl.Designer.cs b/Source/Core/GZBuilder/Controls/PairedFieldsControl.Designer.cs index c6c2d5dc..28261ab5 100644 --- a/Source/Core/GZBuilder/Controls/PairedFieldsControl.Designer.cs +++ b/Source/Core/GZBuilder/Controls/PairedFieldsControl.Designer.cs @@ -34,7 +34,7 @@ // // label // - this.label.Location = new System.Drawing.Point(3, 6); + this.label.Location = new System.Drawing.Point(0, 6); this.label.Name = "label"; this.label.Size = new System.Drawing.Size(86, 14); this.label.TabIndex = 36; diff --git a/Source/Core/GZBuilder/Controls/PairedIntControl.Designer.cs b/Source/Core/GZBuilder/Controls/PairedIntControl.Designer.cs index b93a3550..638a94fc 100644 --- a/Source/Core/GZBuilder/Controls/PairedIntControl.Designer.cs +++ b/Source/Core/GZBuilder/Controls/PairedIntControl.Designer.cs @@ -33,7 +33,7 @@ // // label // - this.label.Location = new System.Drawing.Point(3, 6); + this.label.Location = new System.Drawing.Point(0, 6); this.label.Name = "label"; this.label.Size = new System.Drawing.Size(87, 14); this.label.TabIndex = 40; diff --git a/Source/Core/Types/IntegerHandler.cs b/Source/Core/Types/IntegerHandler.cs index 49d811c9..eec668f6 100644 --- a/Source/Core/Types/IntegerHandler.cs +++ b/Source/Core/Types/IntegerHandler.cs @@ -52,8 +52,6 @@ namespace CodeImp.DoomBuilder.Types public override void SetValue(object value) { - int result; - // Null? if(value == null) { @@ -68,6 +66,7 @@ namespace CodeImp.DoomBuilder.Types else { // Try parsing as string + int result; if(int.TryParse(value.ToString(), NumberStyles.Integer, CultureInfo.CurrentCulture, out result)) { this.value = result; diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs index 34da8dc9..17359607 100644 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs @@ -3219,10 +3219,8 @@ namespace CodeImp.DoomBuilder.BuilderModes // Wrap the value within the width of the texture (to prevent ridiculous values) // NOTE: We don't use ScaledWidth here because the texture offset is in pixels, not mappixels if(texture.IsImageLoaded) { - if(alignx) - j.sidedef.OffsetX %= texture.Width; - if(aligny) - j.sidedef.OffsetY %= texture.Height; + if(alignx) j.sidedef.OffsetX %= texture.Width; + if(aligny) j.sidedef.OffsetY %= texture.Height; } // Add sidedefs forward (connected to the right vertex) @@ -3239,7 +3237,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // Apply alignment if(alignx) - j.sidedef.OffsetX = (int)j.offsetx - (int)Math.Round(j.sidedef.Line.Length / scalex); + j.controlSide.OffsetX = (int)j.offsetx - (int)Math.Round(j.sidedef.Line.Length / scalex); if(aligny) j.sidedef.OffsetY = (int)Math.Round((first.controlSide.Sector.CeilHeight - j.controlSide.Sector.CeilHeight) / scaley) + ystartalign; forwardoffset = (int)j.offsetx; @@ -3250,10 +3248,8 @@ namespace CodeImp.DoomBuilder.BuilderModes // Wrap the value within the width of the texture (to prevent ridiculous values) // NOTE: We don't use ScaledWidth here because the texture offset is in pixels, not mappixels if(texture.IsImageLoaded) { - if(alignx) - j.sidedef.OffsetX %= texture.Width; - if(aligny) - j.sidedef.OffsetY %= texture.Height; + if(alignx) j.sidedef.OffsetX %= texture.Width; + if(aligny) j.sidedef.OffsetY %= texture.Height; } // Add sidedefs backward (connected to the left vertex)