mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2025-01-18 14:31:50 +00:00
Map Analysis mode: results can now be hidden individually.
Updated documentation.
This commit is contained in:
parent
9b3b04d895
commit
99f6a9a5a8
28 changed files with 487 additions and 144 deletions
|
@ -289,15 +289,16 @@
|
|||
<li>
|
||||
<h3><a name="mapanalysis" id="mapanalysis"></a>Map Analysis mode:</h3>
|
||||
<ul>
|
||||
<li><span class="style1"><strong>[new]</strong></span> Analysis results can be hidden per result type and individually via results list's context menu.</li>
|
||||
<li><span class="style1"><strong>[new]</strong></span> Map Analysis mode can check the map for unconnected vertices.</li>
|
||||
<li><span class="style1"><strong>[new]</strong></span> "Check overlapping lines" finds duplicate linedefs (e.g. when 2 lines have the same start and end positions).</li>
|
||||
<li><span class="style1"><strong>[new]</strong></span> Map Analysis mode can check the map for overlapping lines. This will check if 2 lines have the same start and end positions.</li>
|
||||
<li><span class="style1"><strong>[new]</strong></span> Map Analysis mode can check the map for overlapping vertices. This will check if a vertex is on top of a linedef or another vertex.</li>
|
||||
<li><span class="style1"><strong>[new]</strong></span> Map Analysis mode can check the map for invalid sectors (sectors with less than 3 sidedefs or sectors without area).</li>
|
||||
<li><span class="style1"><strong>[new]</strong></span> Map Analysis mode can check the map for unused textures.</li>
|
||||
<li><span class="style1"><strong>[new]</strong></span> Map Analysis mode can check the map for missing flats.</li>
|
||||
<li>Map Analysis mode can check the map for unknown things (things, which type is not defined in DECORATE or current game configuration).</li>
|
||||
<li>Map Analysis window now have "<strong>Apply to all errors of this type</strong>" checkbox.</li>
|
||||
<li>Analysis results can be saved to a text file.</li>
|
||||
<li>Map Analysis window now has "<strong>Apply to all errors of this type</strong>" checkbox.</li>
|
||||
<li>Analysis results can be saved to a text file or copied to clipboard.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
@ -44,6 +44,9 @@ namespace CodeImp.DoomBuilder.Map
|
|||
// Disposing
|
||||
protected bool isdisposed;
|
||||
|
||||
// Error Ignoring (mxd)
|
||||
private List<Type> ignorederrorchecks;
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Properties
|
||||
|
@ -52,6 +55,7 @@ namespace CodeImp.DoomBuilder.Map
|
|||
public UniFields Fields { get { return fields; } }
|
||||
public bool Marked { get { return marked; } set { marked = value; } }
|
||||
public bool IsDisposed { get { return isdisposed; } }
|
||||
public List<Type> IgnoredErrorChecks { get { return ignorederrorchecks; } } //mxd
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -62,6 +66,7 @@ namespace CodeImp.DoomBuilder.Map
|
|||
{
|
||||
// Initialize
|
||||
fields = new UniFields(this);
|
||||
ignorederrorchecks = new List<Type>(); //mxd
|
||||
}
|
||||
|
||||
// Disposer
|
||||
|
|
|
@ -27,12 +27,13 @@ using System.Drawing;
|
|||
|
||||
namespace CodeImp.DoomBuilder.BuilderModes
|
||||
{
|
||||
public class ErrorResult
|
||||
public abstract class ErrorResult
|
||||
{
|
||||
#region ================== Variables
|
||||
|
||||
protected string description;
|
||||
protected List<MapElement> viewobjects;
|
||||
protected readonly List<MapElement> viewobjects;
|
||||
protected bool hidden;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -45,13 +46,14 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public virtual string Button1Text { get { return ""; } }
|
||||
public virtual string Button2Text { get { return ""; } }
|
||||
public virtual string Button3Text { get { return ""; } }
|
||||
|
||||
public bool IsHidden { get { return hidden; } }
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Constructor / Destructor
|
||||
|
||||
// Constructor
|
||||
public ErrorResult()
|
||||
protected ErrorResult()
|
||||
{
|
||||
// Initialize
|
||||
viewobjects = new List<MapElement>(1);
|
||||
|
@ -177,7 +179,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
ClassicMode editmode = (General.Editing.Mode as ClassicMode);
|
||||
editmode.CenterOnArea(area, 0.6f);
|
||||
}
|
||||
|
||||
|
||||
internal abstract void Hide(bool hide); //mxd. Marks map elements of this result as hidden in ErrorCheckForm
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
@ -29,9 +30,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Linedef line;
|
||||
private int buttons;
|
||||
private Sidedef copysidedef;
|
||||
private readonly Linedef line;
|
||||
private readonly int buttons;
|
||||
private readonly Sidedef copysidedef;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -49,11 +50,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public ResultLineMissingFront(Linedef l)
|
||||
{
|
||||
// Initialize
|
||||
this.line = l;
|
||||
this.viewobjects.Add(l);
|
||||
this.description = "This linedef has a back sidedef, but is missing a front sidedef. " +
|
||||
"A line must have at least a front side and optionally a back side! " +
|
||||
"Click 'Flip Linedef' button if the line is supposed to be single-sided.";
|
||||
line = l;
|
||||
viewobjects.Add(l);
|
||||
hidden = l.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
description = "This linedef has a back sidedef, but is missing a front sidedef. " +
|
||||
"A line must have at least a front side and optionally a back side! " +
|
||||
"Click 'Flip Linedef' button if the line is supposed to be single-sided.";
|
||||
|
||||
// One solution is to flip the sidedefs
|
||||
buttons = 1;
|
||||
|
@ -73,7 +75,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
fixable = true;
|
||||
break;
|
||||
}
|
||||
else if(!sd.Front && (sd.Line.Back != null))
|
||||
|
||||
if(!sd.Front && (sd.Line.Back != null))
|
||||
{
|
||||
copysidedef = sd.Line.Back;
|
||||
fixable = true;
|
||||
|
@ -93,6 +96,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if (hide) line.IgnoredErrorChecks.Add(t);
|
||||
else if(line.IgnoredErrorChecks.Contains(t)) line.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
@ -29,10 +30,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Linedef line;
|
||||
private int buttons;
|
||||
private Sidedef copysidedeffront;
|
||||
private Sidedef copysidedefback;
|
||||
private readonly Linedef line;
|
||||
private readonly int buttons;
|
||||
private readonly Sidedef copysidedeffront;
|
||||
private readonly Sidedef copysidedefback;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -49,20 +50,19 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
// Constructor
|
||||
public ResultLineMissingSides(Linedef l)
|
||||
{
|
||||
List<LinedefSide> sides;
|
||||
bool fixable;
|
||||
|
||||
// Initialize
|
||||
this.line = l;
|
||||
this.viewobjects.Add(l);
|
||||
this.description = "This linedef is missing front and back sidedefs." +
|
||||
"A line must have at least a front side and optionally a back side!";
|
||||
line = l;
|
||||
viewobjects.Add(l);
|
||||
hidden = l.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
description = "This linedef is missing front and back sidedefs." +
|
||||
"A line must have at least a front side and optionally a back side!";
|
||||
|
||||
buttons = 0;
|
||||
|
||||
// Check if we can join a sector on the front side
|
||||
fixable = false;
|
||||
sides = Tools.FindPotentialSectorAt(l, true);
|
||||
bool fixable = false;
|
||||
List<LinedefSide> sides = Tools.FindPotentialSectorAt(l, true);
|
||||
|
||||
if(sides != null)
|
||||
{
|
||||
foreach(LinedefSide sd in sides)
|
||||
|
@ -75,7 +75,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
fixable = true;
|
||||
break;
|
||||
}
|
||||
else if(!sd.Front && (sd.Line.Back != null))
|
||||
|
||||
if(!sd.Front && (sd.Line.Back != null))
|
||||
{
|
||||
copysidedeffront = sd.Line.Back;
|
||||
fixable = true;
|
||||
|
@ -102,7 +103,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
fixable = true;
|
||||
break;
|
||||
}
|
||||
else if(!sd.Front && (sd.Line.Back != null))
|
||||
|
||||
if(!sd.Front && (sd.Line.Back != null))
|
||||
{
|
||||
copysidedefback = sd.Line.Back;
|
||||
fixable = true;
|
||||
|
@ -126,6 +128,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide) line.IgnoredErrorChecks.Add(t);
|
||||
else if(line.IgnoredErrorChecks.Contains(t)) line.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
@ -29,9 +30,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Linedef line;
|
||||
private int buttons;
|
||||
private Sidedef copysidedef;
|
||||
private readonly Linedef line;
|
||||
private readonly int buttons;
|
||||
private readonly Sidedef copysidedef;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -49,9 +50,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public ResultLineNotDoubleSided(Linedef l)
|
||||
{
|
||||
// Initialize
|
||||
this.line = l;
|
||||
this.viewobjects.Add(l);
|
||||
this.description = "This linedef is marked as double-sided, but is missing the back sidedef. Click 'Make Single-Sided' button to remove the double-sided flag from the line.";
|
||||
line = l;
|
||||
viewobjects.Add(l);
|
||||
hidden = l.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
description = "This linedef is marked as double-sided, but is missing the back sidedef. Click 'Make Single-Sided' button to remove the double-sided flag from the line.";
|
||||
|
||||
// One solution is to remove the double-sided flag
|
||||
buttons = 1;
|
||||
|
@ -71,7 +73,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
fixable = true;
|
||||
break;
|
||||
}
|
||||
else if(!sd.Front && (sd.Line.Back != null))
|
||||
|
||||
if(!sd.Front && (sd.Line.Back != null))
|
||||
{
|
||||
copysidedef = sd.Line.Back;
|
||||
fixable = true;
|
||||
|
@ -91,6 +94,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide) line.IgnoredErrorChecks.Add(t);
|
||||
else if(line.IgnoredErrorChecks.Contains(t)) line.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
||||
|
@ -27,7 +28,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Linedef line;
|
||||
private readonly Linedef line;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -45,15 +46,25 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public ResultLineNotSingleSided(Linedef l)
|
||||
{
|
||||
// Initialize
|
||||
this.line = l;
|
||||
this.viewobjects.Add(l);
|
||||
this.description = "This linedef is marked as single-sided, but has both a front and a back sidedef. Click 'Make Double-Sided' button to flag the line as double-sided." +
|
||||
line = l;
|
||||
viewobjects.Add(l);
|
||||
hidden = l.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
description = "This linedef is marked as single-sided, but has both a front and a back sidedef. Click 'Make Double-Sided' button to flag the line as double-sided." +
|
||||
" Or click 'Remove Sidedef' button to remove the sidedef on the back side (making the line really single-sided).";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide) line.IgnoredErrorChecks.Add(t);
|
||||
else if(line.IgnoredErrorChecks.Contains(t)) line.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
||||
|
@ -27,8 +28,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Linedef line1;
|
||||
private Linedef line2;
|
||||
private readonly Linedef line1;
|
||||
private readonly Linedef line2;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -44,16 +45,32 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public ResultLineOverlapping(Linedef l1, Linedef l2)
|
||||
{
|
||||
// Initialize
|
||||
this.line1 = l1;
|
||||
this.line2 = l2;
|
||||
this.viewobjects.Add(l1);
|
||||
this.viewobjects.Add(l2);
|
||||
this.description = "These linedefs are overlapping and they do not reference the same sector on all sides. Overlapping lines is only allowed when they reference the same sector on all sides.";
|
||||
line1 = l1;
|
||||
line2 = l2;
|
||||
viewobjects.Add(l1);
|
||||
viewobjects.Add(l2);
|
||||
hidden = (l1.IgnoredErrorChecks.Contains(this.GetType()) && l2.IgnoredErrorChecks.Contains(this.GetType())); //mxd
|
||||
description = "These linedefs are overlapping and they do not reference the same sector on all sides. Overlapping lines is only allowed when they reference the same sector on all sides.";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide) {
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if (hide) {
|
||||
line1.IgnoredErrorChecks.Add(t);
|
||||
line2.IgnoredErrorChecks.Add(t);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (line1.IgnoredErrorChecks.Contains(t)) line1.IgnoredErrorChecks.Remove(t);
|
||||
if (line2.IgnoredErrorChecks.Contains(t)) line2.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
||||
|
@ -11,8 +12,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Sector sector;
|
||||
private bool ceiling;
|
||||
private readonly Sector sector;
|
||||
private readonly bool ceiling;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -32,6 +33,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.sector = s;
|
||||
this.ceiling = ceiling;
|
||||
this.viewobjects.Add(s);
|
||||
this.hidden = s.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
|
||||
string objname = ceiling ? "ceiling" : "floor";
|
||||
this.description = "This sector's " + objname + " is missing a flat where it is required and could cause a 'Hall Of Mirrors' visual problem in the map. Click the 'Add Default Flat' button to add a flat to the sector.";
|
||||
|
@ -40,6 +42,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if (hide) sector.IgnoredErrorChecks.Add(t);
|
||||
else if (sector.IgnoredErrorChecks.Contains(t)) sector.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
||||
|
@ -27,8 +28,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Sidedef side;
|
||||
private SidedefPart part;
|
||||
private readonly Sidedef side;
|
||||
private readonly SidedefPart part;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -48,6 +49,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.side = sd;
|
||||
this.part = part;
|
||||
this.viewobjects.Add(sd);
|
||||
this.hidden = sd.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
this.description = "This sidedef is missing a texture where it is required and could cause a 'Hall Of Mirrors' visual problem in the map. Click the 'Add Default Texture' button to add a texture to the line.";
|
||||
}
|
||||
|
||||
|
@ -55,6 +57,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide) side.IgnoredErrorChecks.Add(t);
|
||||
else if(side.IgnoredErrorChecks.Contains(t)) side.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
{
|
||||
|
|
|
@ -43,6 +43,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide) { }
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
{
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using CodeImp.DoomBuilder.Geometry;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
|
@ -30,14 +31,24 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public ResultSectorInvalid(Sector s)
|
||||
{
|
||||
// Initialize
|
||||
this.sector = s;
|
||||
this.viewobjects.Add(s);
|
||||
this.description = "This sector has invalid geometry (it has less than 3 sidedefs or it's area is 0). This could cause problems with clipping and rendering in the game.";
|
||||
sector = s;
|
||||
viewobjects.Add(s);
|
||||
hidden = s.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
description = "This sector has invalid geometry (it has less than 3 sidedefs or it's area is 0). This could cause problems with clipping and rendering in the game.";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide) sector.IgnoredErrorChecks.Add(t);
|
||||
else if(sector.IgnoredErrorChecks.Contains(t)) sector.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString() {
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
@ -28,9 +29,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Sector sector;
|
||||
private List<Vertex> vertices;
|
||||
private int index;
|
||||
private readonly Sector sector;
|
||||
private readonly List<Vertex> vertices;
|
||||
private readonly int index;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -44,17 +45,27 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public ResultSectorUnclosed(Sector s, List<Vertex> v)
|
||||
{
|
||||
// Initialize
|
||||
this.sector = s;
|
||||
this.vertices = new List<Vertex>(v);
|
||||
this.viewobjects.Add(s);
|
||||
sector = s;
|
||||
vertices = new List<Vertex>(v);
|
||||
viewobjects.Add(s);
|
||||
hidden = s.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
foreach(Vertex vv in v) this.viewobjects.Add(vv);
|
||||
this.description = "This sector is not a closed region and could cause problems with clipping and rendering in the game. The 'leaks' in the sector are indicated by the colored vertices.";
|
||||
this.index = s.Index;
|
||||
description = "This sector is not a closed region and could cause problems with clipping and rendering in the game. The 'leaks' in the sector are indicated by the colored vertices.";
|
||||
index = s.Index;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide) sector.IgnoredErrorChecks.Add(t);
|
||||
else if(sector.IgnoredErrorChecks.Contains(t)) sector.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
|
|
|
@ -1,41 +1,75 @@
|
|||
using CodeImp.DoomBuilder.Map;
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
using System.Drawing;
|
||||
|
||||
#endregion
|
||||
|
||||
namespace CodeImp.DoomBuilder.BuilderModes.ErrorChecks
|
||||
{
|
||||
public class ResultStrayVertex : ErrorResult
|
||||
{
|
||||
#region ================== Variables
|
||||
|
||||
private readonly Vertex vertex;
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Properties
|
||||
|
||||
public override int Buttons { get { return 1; } }
|
||||
public override string Button1Text { get { return "Delete Vertex"; } }
|
||||
|
||||
private Vertex vertex;
|
||||
#endregion
|
||||
|
||||
// Constructor
|
||||
public ResultStrayVertex(Vertex v) {
|
||||
#region ================== Constructor / Destructor
|
||||
|
||||
public ResultStrayVertex(Vertex v)
|
||||
{
|
||||
// Initialize
|
||||
this.vertex = v;
|
||||
this.viewobjects.Add(v);
|
||||
this.description = "This vertex is not connected to any linedef.";
|
||||
vertex = v;
|
||||
viewobjects.Add(v);
|
||||
hidden = v.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
description = "This vertex is not connected to any linedef.";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide) vertex.IgnoredErrorChecks.Add(t);
|
||||
else if(vertex.IgnoredErrorChecks.Contains(t)) vertex.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString() {
|
||||
public override string ToString()
|
||||
{
|
||||
return "Vertex " + vertex.Index + " at " + vertex.Position.x + ", " + vertex.Position.y + " is not connected to any linedef.";
|
||||
}
|
||||
|
||||
// Rendering
|
||||
public override void RenderOverlaySelection(IRenderer2D renderer) {
|
||||
public override void RenderOverlaySelection(IRenderer2D renderer)
|
||||
{
|
||||
renderer.RenderRectangleFilled(new RectangleF(vertex.Position.x - 3, vertex.Position.y - 3, 6f, 6f), General.Colors.Selection, true);
|
||||
}
|
||||
|
||||
// This removes the vertex
|
||||
public override bool Button1Click(bool batchMode) {
|
||||
public override bool Button1Click(bool batchMode)
|
||||
{
|
||||
if(!batchMode) General.Map.UndoRedo.CreateUndo("Delete vertex");
|
||||
vertex.Dispose();
|
||||
General.Map.IsChanged = true;
|
||||
General.Map.ThingsFilter.Update();
|
||||
return true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
||||
|
@ -27,7 +28,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Thing thing;
|
||||
private readonly Thing thing;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -44,14 +45,24 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public ResultStuckThingInLine(Thing t)
|
||||
{
|
||||
// Initialize
|
||||
this.thing = t;
|
||||
this.viewobjects.Add(t);
|
||||
this.description = "This thing is stuck in a wall (single-sided line) and will likely not be able to move around.";
|
||||
thing = t;
|
||||
viewobjects.Add(t);
|
||||
hidden = t.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
description = "This thing is stuck in a wall (single-sided line) and will likely not be able to move around.";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide) thing.IgnoredErrorChecks.Add(t);
|
||||
else if(thing.IgnoredErrorChecks.Contains(t)) thing.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
||||
|
@ -27,8 +28,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Thing thing1;
|
||||
private Thing thing2; //mxd
|
||||
private readonly Thing thing1;
|
||||
private readonly Thing thing2; //mxd
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -48,6 +49,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.thing1 = t1;
|
||||
this.thing2 = t2; //mxd
|
||||
this.viewobjects.Add(t1);
|
||||
hidden = (t1.IgnoredErrorChecks.Contains(this.GetType()) && t2.IgnoredErrorChecks.Contains(this.GetType())); //mxd
|
||||
this.description = "This thing is stuck in another thing. Both will likely not be able to move around.";
|
||||
}
|
||||
|
||||
|
@ -55,6 +57,23 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide)
|
||||
{
|
||||
thing1.IgnoredErrorChecks.Add(t);
|
||||
thing2.IgnoredErrorChecks.Add(t);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(thing1.IgnoredErrorChecks.Contains(t)) thing1.IgnoredErrorChecks.Remove(t);
|
||||
if(thing2.IgnoredErrorChecks.Contains(t)) thing2.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
{
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
||||
|
@ -27,7 +28,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Thing thing;
|
||||
private readonly Thing thing;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -44,15 +45,25 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public ResultThingOutside(Thing t)
|
||||
{
|
||||
// Initialize
|
||||
this.thing = t;
|
||||
this.viewobjects.Add(t);
|
||||
this.description = "This thing is completely outside the map.";
|
||||
thing = t;
|
||||
viewobjects.Add(t);
|
||||
hidden = t.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
description = "This thing is completely outside the map.";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide) thing.IgnoredErrorChecks.Add(t);
|
||||
else if(thing.IgnoredErrorChecks.Contains(t)) thing.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
{
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
||||
|
@ -27,8 +28,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Sector sector;
|
||||
private bool ceiling;
|
||||
private readonly Sector sector;
|
||||
private readonly bool ceiling;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -48,7 +49,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.sector = s;
|
||||
this.ceiling = ceiling;
|
||||
this.viewobjects.Add(s);
|
||||
|
||||
this.hidden = s.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
string objname = ceiling ? "ceiling" : "floor";
|
||||
this.description = "This sector's " + objname + " uses an unknown flat. This could be the result of missing resources, or a mistyped flat name. Click the 'Add Default Flat' button to use a known flat instead.";
|
||||
}
|
||||
|
@ -56,6 +57,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide) sector.IgnoredErrorChecks.Add(t);
|
||||
else if(sector.IgnoredErrorChecks.Contains(t)) sector.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
||||
|
@ -27,8 +28,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Sidedef side;
|
||||
private SidedefPart part;
|
||||
private readonly Sidedef side;
|
||||
private readonly SidedefPart part;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -49,12 +50,22 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.side = sd;
|
||||
this.part = part;
|
||||
this.viewobjects.Add(sd);
|
||||
this.hidden = sd.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
this.description = "This sidedef uses an unknown texture. This could be the result of missing resources, or a mistyped texture name. Click the 'Remove Texture' button to remove the texture or click on 'Add Default Texture' to use a known texture instead.";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide) side.IgnoredErrorChecks.Add(t);
|
||||
else if(side.IgnoredErrorChecks.Contains(t)) side.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
|
|
|
@ -1,38 +1,74 @@
|
|||
using CodeImp.DoomBuilder.Map;
|
||||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
||||
#endregion
|
||||
|
||||
namespace CodeImp.DoomBuilder.BuilderModes.ErrorChecks {
|
||||
public class ResultUnknownThing : ErrorResult {
|
||||
public class ResultUnknownThing : ErrorResult
|
||||
{
|
||||
|
||||
#region ================== Variables
|
||||
|
||||
private readonly Thing thing;
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Properties
|
||||
|
||||
public override int Buttons { get { return 1; } }
|
||||
public override string Button1Text { get { return "Delete Thing"; } }
|
||||
|
||||
private Thing thing;
|
||||
#endregion
|
||||
|
||||
// Constructor
|
||||
public ResultUnknownThing(Thing t) {
|
||||
#region ================== Constructor / Destructor
|
||||
|
||||
public ResultUnknownThing(Thing t)
|
||||
{
|
||||
// Initialize
|
||||
this.thing = t;
|
||||
this.viewobjects.Add(t);
|
||||
this.description = "This thing has unknown type (eg. it's not defined in DECORATE or current game configuration).";
|
||||
thing = t;
|
||||
viewobjects.Add(t);
|
||||
hidden = t.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
description = "This thing has unknown type (eg. it's not defined in DECORATE or current game configuration).";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide) thing.IgnoredErrorChecks.Add(t);
|
||||
else if(thing.IgnoredErrorChecks.Contains(t)) thing.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString() {
|
||||
public override string ToString()
|
||||
{
|
||||
return "Thing " + thing.Index + " at " + thing.Position.x + ", " + thing.Position.y + " has unknown type (" + thing.Type + ").";
|
||||
}
|
||||
|
||||
// Rendering
|
||||
public override void RenderOverlaySelection(IRenderer2D renderer) {
|
||||
public override void RenderOverlaySelection(IRenderer2D renderer)
|
||||
{
|
||||
renderer.RenderThing(thing, renderer.DetermineThingColor(thing), 1.0f);
|
||||
}
|
||||
|
||||
// This removes the thing
|
||||
public override bool Button1Click(bool batchMode) {
|
||||
public override bool Button1Click(bool batchMode)
|
||||
{
|
||||
if(!batchMode) General.Map.UndoRedo.CreateUndo("Delete thing");
|
||||
thing.Dispose();
|
||||
General.Map.IsChanged = true;
|
||||
General.Map.ThingsFilter.Update();
|
||||
return true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
using CodeImp.DoomBuilder.GZBuilder.Tools;
|
||||
|
@ -12,8 +13,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Sidedef side;
|
||||
private SidedefPart part;
|
||||
private readonly Sidedef side;
|
||||
private readonly SidedefPart part;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -33,12 +34,22 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.side = sd;
|
||||
this.part = part;
|
||||
this.viewobjects.Add(sd);
|
||||
this.hidden = sd.IgnoredErrorChecks.Contains(this.GetType()); //mxd
|
||||
this.description = "This sidedef uses an upper or lower texture, which is not required (it will never be visible ingame). Click the Remove Texture button to remove the texture (this will also reset texture offsets and scale in UDMF map format).";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide) side.IgnoredErrorChecks.Add(t);
|
||||
else if(side.IgnoredErrorChecks.Contains(t)) side.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString()
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
@ -12,8 +13,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Linedef line;
|
||||
private Vertex vertex;
|
||||
private readonly Linedef line;
|
||||
private readonly Vertex vertex;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -30,24 +31,44 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public ResultVertexOverlappingLine(Vertex v, Linedef l)
|
||||
{
|
||||
// Initialize
|
||||
this.line = l;
|
||||
this.vertex = v;
|
||||
this.viewobjects.Add(l);
|
||||
this.viewobjects.Add(v);
|
||||
this.description = "This vertex overlaps this linedef without splitting it.";
|
||||
line = l;
|
||||
vertex = v;
|
||||
viewobjects.Add(l);
|
||||
viewobjects.Add(v);
|
||||
hidden = (l.IgnoredErrorChecks.Contains(this.GetType()) && v.IgnoredErrorChecks.Contains(this.GetType())); //mxd
|
||||
description = "This vertex overlaps this linedef without splitting it.";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide)
|
||||
{
|
||||
vertex.IgnoredErrorChecks.Add(t);
|
||||
line.IgnoredErrorChecks.Add(t);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(vertex.IgnoredErrorChecks.Contains(t)) vertex.IgnoredErrorChecks.Remove(t);
|
||||
if(line.IgnoredErrorChecks.Contains(t)) line.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString() {
|
||||
public override string ToString()
|
||||
{
|
||||
return "Vertex " + vertex.Index + " overlaps line " + line.Index + " without splitting it";
|
||||
}
|
||||
|
||||
// Rendering
|
||||
public override void PlotSelection(IRenderer2D renderer) {
|
||||
public override void PlotSelection(IRenderer2D renderer)
|
||||
{
|
||||
renderer.PlotLinedef(line, General.Colors.Selection);
|
||||
renderer.PlotVertex(line.Start, ColorCollection.VERTICES);
|
||||
renderer.PlotVertex(line.End, ColorCollection.VERTICES);
|
||||
|
@ -56,7 +77,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
}
|
||||
|
||||
// Fix by splitting the line
|
||||
public override bool Button1Click(bool batchMode) {
|
||||
public override bool Button1Click(bool batchMode)
|
||||
{
|
||||
if(!batchMode) General.Map.UndoRedo.CreateUndo("Split Linedef");
|
||||
line.Split(vertex);
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Rendering;
|
||||
|
||||
|
@ -11,8 +12,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
{
|
||||
#region ================== Variables
|
||||
|
||||
private Vertex vertex1;
|
||||
private Vertex vertex2;
|
||||
private readonly Vertex vertex1;
|
||||
private readonly Vertex vertex2;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -29,29 +30,50 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
public ResultVertexOverlappingVertex(Vertex v1, Vertex v2)
|
||||
{
|
||||
// Initialize
|
||||
this.vertex1 = v1;
|
||||
this.vertex2 = v2;
|
||||
this.viewobjects.Add(v1);
|
||||
this.viewobjects.Add(v2);
|
||||
this.description = "These vertices have the same position.";
|
||||
vertex1 = v1;
|
||||
vertex2 = v2;
|
||||
viewobjects.Add(v1);
|
||||
viewobjects.Add(v2);
|
||||
hidden = (v1.IgnoredErrorChecks.Contains(this.GetType()) && v2.IgnoredErrorChecks.Contains(this.GetType())); //mxd
|
||||
description = "These vertices have the same position.";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ================== Methods
|
||||
|
||||
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
||||
internal override void Hide(bool hide)
|
||||
{
|
||||
hidden = hide;
|
||||
Type t = this.GetType();
|
||||
if(hide)
|
||||
{
|
||||
vertex1.IgnoredErrorChecks.Add(t);
|
||||
vertex2.IgnoredErrorChecks.Add(t);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(vertex1.IgnoredErrorChecks.Contains(t)) vertex1.IgnoredErrorChecks.Remove(t);
|
||||
if(vertex2.IgnoredErrorChecks.Contains(t)) vertex2.IgnoredErrorChecks.Remove(t);
|
||||
}
|
||||
}
|
||||
|
||||
// This must return the string that is displayed in the listbox
|
||||
public override string ToString() {
|
||||
public override string ToString()
|
||||
{
|
||||
return "Vertices " + vertex1.Index + " and " + vertex2.Index + " have the same position";
|
||||
}
|
||||
|
||||
// Rendering
|
||||
public override void PlotSelection(IRenderer2D renderer) {
|
||||
public override void PlotSelection(IRenderer2D renderer)
|
||||
{
|
||||
renderer.PlotVertex(vertex1, ColorCollection.SELECTION);
|
||||
}
|
||||
|
||||
// Fix by splitting the line
|
||||
public override bool Button1Click(bool batchMode) {
|
||||
public override bool Button1Click(bool batchMode)
|
||||
{
|
||||
if(!batchMode) General.Map.UndoRedo.CreateUndo("Merge vertices");
|
||||
vertex2.Join(vertex1);
|
||||
General.Map.Map.Update();
|
||||
|
|
|
@ -35,6 +35,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.resultcontextmenustrip = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.resultshowall = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.resulthidecurrent = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.resulthidecurrenttype = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.resultshowonlycurrent = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.resultcopytoclipboard = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
@ -107,11 +108,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.resultcontextmenustrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.resultshowall,
|
||||
this.resulthidecurrent,
|
||||
this.resulthidecurrenttype,
|
||||
this.resultshowonlycurrent,
|
||||
this.toolStripSeparator1,
|
||||
this.resultcopytoclipboard});
|
||||
this.resultcontextmenustrip.Name = "resultcontextmenustrip";
|
||||
this.resultcontextmenustrip.Size = new System.Drawing.Size(232, 120);
|
||||
this.resultcontextmenustrip.Size = new System.Drawing.Size(232, 142);
|
||||
this.resultcontextmenustrip.Opening += new System.ComponentModel.CancelEventHandler(this.resultcontextmenustrip_Opening);
|
||||
//
|
||||
// resultshowall
|
||||
|
@ -119,7 +121,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.resultshowall.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Show;
|
||||
this.resultshowall.Name = "resultshowall";
|
||||
this.resultshowall.Size = new System.Drawing.Size(231, 22);
|
||||
this.resultshowall.Text = "Show All Results";
|
||||
this.resultshowall.Text = "Show all results";
|
||||
this.resultshowall.Click += new System.EventHandler(this.resultshowall_Click);
|
||||
//
|
||||
// resulthidecurrent
|
||||
|
@ -127,9 +129,17 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.resulthidecurrent.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Hide;
|
||||
this.resulthidecurrent.Name = "resulthidecurrent";
|
||||
this.resulthidecurrent.Size = new System.Drawing.Size(231, 22);
|
||||
this.resulthidecurrent.Text = "Hide results of this type";
|
||||
this.resulthidecurrent.Text = "Hide result";
|
||||
this.resulthidecurrent.Click += new System.EventHandler(this.resulthidecurrent_Click);
|
||||
//
|
||||
// resulthidecurrenttype
|
||||
//
|
||||
this.resulthidecurrenttype.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.HideAll;
|
||||
this.resulthidecurrenttype.Name = "resulthidecurrenttype";
|
||||
this.resulthidecurrenttype.Size = new System.Drawing.Size(231, 22);
|
||||
this.resulthidecurrenttype.Text = "Hide results of this type";
|
||||
this.resulthidecurrenttype.Click += new System.EventHandler(this.resulthidecurrenttype_Click);
|
||||
//
|
||||
// resultshowonlycurrent
|
||||
//
|
||||
this.resultshowonlycurrent.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Show2;
|
||||
|
@ -255,22 +265,22 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.exporttofile,
|
||||
this.copytoclipboard});
|
||||
this.exporttrsultsmenustrip.Name = "exporttrsultsmenustrip";
|
||||
this.exporttrsultsmenustrip.Size = new System.Drawing.Size(172, 48);
|
||||
this.exporttrsultsmenustrip.Size = new System.Drawing.Size(207, 48);
|
||||
//
|
||||
// exporttofile
|
||||
//
|
||||
this.exporttofile.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Save;
|
||||
this.exporttofile.Name = "exporttofile";
|
||||
this.exporttofile.Size = new System.Drawing.Size(171, 22);
|
||||
this.exporttofile.Text = "Export to File";
|
||||
this.exporttofile.Size = new System.Drawing.Size(206, 22);
|
||||
this.exporttofile.Text = "Export results to file";
|
||||
this.exporttofile.Click += new System.EventHandler(this.exporttofile_Click);
|
||||
//
|
||||
// copytoclipboard
|
||||
//
|
||||
this.copytoclipboard.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Copy;
|
||||
this.copytoclipboard.Name = "copytoclipboard";
|
||||
this.copytoclipboard.Size = new System.Drawing.Size(171, 22);
|
||||
this.copytoclipboard.Text = "Copy to Clipboard";
|
||||
this.copytoclipboard.Size = new System.Drawing.Size(206, 22);
|
||||
this.copytoclipboard.Text = "Copy results to clipboard";
|
||||
this.copytoclipboard.Click += new System.EventHandler(this.copytoclipboard_Click);
|
||||
//
|
||||
// saveFileDialog
|
||||
|
@ -288,7 +298,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
this.exportresults.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.exportresults.Location = new System.Drawing.Point(10, 89);
|
||||
this.exportresults.Name = "exportresults";
|
||||
this.exportresults.Size = new System.Drawing.Size(140, 25);
|
||||
this.exportresults.Size = new System.Drawing.Size(160, 25);
|
||||
this.exportresults.SplitMenuStrip = this.exporttrsultsmenustrip;
|
||||
this.exportresults.TabIndex = 0;
|
||||
this.exportresults.Text = "Export to File";
|
||||
|
@ -347,9 +357,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
private System.Windows.Forms.SaveFileDialog saveFileDialog;
|
||||
private System.Windows.Forms.ContextMenuStrip resultcontextmenustrip;
|
||||
private System.Windows.Forms.ToolStripMenuItem resultshowall;
|
||||
private System.Windows.Forms.ToolStripMenuItem resulthidecurrent;
|
||||
private System.Windows.Forms.ToolStripMenuItem resulthidecurrenttype;
|
||||
private System.Windows.Forms.ToolStripMenuItem resultshowonlycurrent;
|
||||
private System.Windows.Forms.ToolStripMenuItem resultcopytoclipboard;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||
private System.Windows.Forms.ToolStripMenuItem resulthidecurrent;
|
||||
}
|
||||
}
|
|
@ -137,7 +137,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
}
|
||||
else
|
||||
{
|
||||
if (!hiddentresulttypes.Contains(result.GetType())) //mxd
|
||||
if (!result.IsHidden && !hiddentresulttypes.Contains(result.GetType())) //mxd
|
||||
{
|
||||
results.Items.Add(result);
|
||||
}
|
||||
|
@ -596,7 +596,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
|
||||
#endregion
|
||||
|
||||
#region =================== Results Context Menu (mxd)
|
||||
#region ================== Results Context Menu (mxd)
|
||||
|
||||
private void resultcontextmenustrip_Opening(object sender, System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
|
@ -605,11 +605,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
resultshowall.Enabled = (resultslist.Count > 0 && resultslist.Count > results.Items.Count);
|
||||
resultcopytoclipboard.Enabled = haveresult;
|
||||
resulthidecurrent.Enabled = haveresult;
|
||||
resulthidecurrenttype.Enabled = haveresult;
|
||||
resultshowonlycurrent.Enabled = haveresult;
|
||||
}
|
||||
|
||||
private void resultshowall_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Reset ignored items
|
||||
foreach(ErrorResult result in resultslist) result.Hide(false);
|
||||
|
||||
// Restore items
|
||||
results.Items.Clear();
|
||||
results.Items.AddRange(resultslist.ToArray());
|
||||
|
@ -619,7 +623,18 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
UpdateTitle();
|
||||
}
|
||||
|
||||
private void resulthidecurrent_Click(object sender, EventArgs e)
|
||||
private void resulthidecurrent_Click(object sender, EventArgs e)
|
||||
{
|
||||
ErrorResult r = results.SelectedItem as ErrorResult;
|
||||
if(r == null) return;
|
||||
r.Hide(true);
|
||||
results.Items.Remove(r);
|
||||
|
||||
// Do the obvious
|
||||
UpdateTitle();
|
||||
}
|
||||
|
||||
private void resulthidecurrenttype_Click(object sender, EventArgs e)
|
||||
{
|
||||
ErrorResult r = results.SelectedItem as ErrorResult;
|
||||
if(r == null) return;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.5420
|
||||
// Runtime Version:2.0.50727.5466
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
|
@ -214,6 +214,13 @@ namespace CodeImp.DoomBuilder.BuilderModes.Properties {
|
|||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap HideAll {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("HideAll", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap List {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("List", resourceCulture);
|
||||
|
|
|
@ -142,6 +142,9 @@
|
|||
<data name="SnapVerts" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\SnapVerts.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Similar" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Similar.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="DrawGridMode" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\DrawGridMode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -160,8 +163,8 @@
|
|||
<data name="treeview" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\treeview.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Similar" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Similar.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="FlipSelectionV" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\FlipSelectionV.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="FloorsGradient" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\FloorsGradient.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
|
@ -193,9 +196,6 @@
|
|||
<data name="BrightnessGradient" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\BrightnessGradient.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="FlipSelectionV" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\FlipSelectionV.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Door" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Door.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -217,6 +217,9 @@
|
|||
<data name="DrawCurveMode" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\DrawCurveMode.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Show2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Show2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ColorPick" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ColorPick.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
|
@ -238,7 +241,7 @@
|
|||
<data name="FilterThings" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\FilterThings.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Show2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Show2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="HideAll" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\HideAll.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
BIN
Source/Plugins/BuilderModes/Resources/HideAll.png
Normal file
BIN
Source/Plugins/BuilderModes/Resources/HideAll.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
Loading…
Reference in a new issue