UltimateZoneBuilder/Source/Plugins/BuilderModes/ErrorChecks/CheckShortLinedefs.cs
MaxED ecb650259b Added "safeboundary" game configuration property. The value determines the maximum map bounding box size considered to be safe by "Check map size" error check.
Changed, Map Analysis mode: some checks are now available only under certain conditions (for example, "Check polyobjects" is now available only when the map is in Hexen or UDMF map format).
Updated documentation ("Game Configuration - Basic Settings" page).
2016-05-18 23:31:12 +00:00

44 lines
1.1 KiB
C#

using CodeImp.DoomBuilder.Map;
using System.Threading;
namespace CodeImp.DoomBuilder.BuilderModes
{
[ErrorChecker("Check very short linedefs", false, 10)]
public class CheckShortLinedefs : ErrorChecker
{
private const int PROGRESS_STEP = 1000;
// Only possible in UDMF map format
public override bool SkipCheck { get { return !General.Map.UDMF; } }
// Constructor
public CheckShortLinedefs()
{
// Total progress is done when all linedefs are checked
SetTotalProgress(General.Map.Map.Linedefs.Count / PROGRESS_STEP);
}
// This runs the check
public override void Run()
{
int progress = 0;
int stepprogress = 0;
// Go for all linedefs
foreach(Linedef l in General.Map.Map.Linedefs)
{
if(l.Length < 1.0f) SubmitResult(new ResultShortLinedef(l));
// Handle thread interruption
try { Thread.Sleep(0); } catch(ThreadInterruptedException) { return; }
// We are making progress!
if((++progress / PROGRESS_STEP) > stepprogress)
{
stepprogress = (progress / PROGRESS_STEP);
AddProgress(1);
}
}
}
}
}