add a lint pass to catch Mirey's bogus autotarget wiring cases

This commit is contained in:
Chris Forbes
2011-04-18 07:37:29 +12:00
parent a0941db61b
commit 2317325591

View File

@@ -20,7 +20,23 @@ namespace OpenRA.Mods.RA
{
public void Run(Action<string> emitError)
{
emitError("Hello World");
/* do something intelligent here. */
}
}
class CheckAutotargetWiring : ILintPass
{
public void Run(Action<string> emitError)
{
foreach( var i in Rules.Info )
{
if (i.Key.StartsWith("^"))
continue;
var attackMove = i.Value.Traits.GetOrDefault<AttackMoveInfo>();
if (attackMove != null && !attackMove.JustMove &&
!i.Value.Traits.Contains<AutoTargetInfo>())
emitError( "{0} has AttackMove setup without AutoTarget, and will crash when resolving that order.".F(i.Key) );
}
}
}
}