mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-30 07:31:36 +00:00
ecb650259b
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).
44 lines
1.1 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|