mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-27 06:02:11 +00:00
7febb2434f
DECORATE: added "$obsolete" special comment. When present, it marks the thing as obsolete. It will be detected by "Check obsolete thing" Map Analysis Mode check and will be marked in the Thing Properties Window and the Thing Info panel. Map Analysis mode: added "Check obsolete things" check. Updated documentation ("DECORATE keys" page). Updated ZDoom_DECORATE.cfg.
61 lines
1.4 KiB
C#
61 lines
1.4 KiB
C#
#region ================== Namespaces
|
|
|
|
using System.Threading;
|
|
using CodeImp.DoomBuilder.Config;
|
|
using CodeImp.DoomBuilder.Map;
|
|
|
|
#endregion
|
|
|
|
namespace CodeImp.DoomBuilder.BuilderModes
|
|
{
|
|
[ErrorChecker("Check obsolete things", true, 50)]
|
|
public class CheckObsoleteThings : ErrorChecker
|
|
{
|
|
#region ================== Constants
|
|
|
|
private const int PROGRESS_STEP = 10;
|
|
|
|
#endregion
|
|
|
|
#region ================== Constructor / Destructor
|
|
|
|
public CheckObsoleteThings()
|
|
{
|
|
// Total progress is done when all things are checked
|
|
SetTotalProgress(General.Map.Map.Things.Count / PROGRESS_STEP);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region ================== Methods
|
|
|
|
// This runs the check
|
|
public override void Run()
|
|
{
|
|
int progress = 0;
|
|
int stepprogress = 0;
|
|
|
|
// Go for all things
|
|
foreach(Thing t in General.Map.Map.Things)
|
|
{
|
|
ThingTypeInfo info = General.Map.Data.GetThingInfoEx(t.Type);
|
|
if(info != null && info.IsObsolete)
|
|
{
|
|
SubmitResult(new ResultObsoleteThing(t, info.ObsoleteMessage));
|
|
}
|
|
|
|
// 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);
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|