diff --git a/OpenRA.Game/Traits/TraitsInterfaces.cs b/OpenRA.Game/Traits/TraitsInterfaces.cs index 4ec93f80e9..1b46d4e408 100755 --- a/OpenRA.Game/Traits/TraitsInterfaces.cs +++ b/OpenRA.Game/Traits/TraitsInterfaces.cs @@ -232,10 +232,10 @@ namespace OpenRA.Traits Stance oldStance, Stance newStance); } - public interface ILintPass { void Run(Action emitError, Action emitWarning); } + public interface ILintPass { void Run(Action emitError, Action emitWarning, Map map); } public interface IObjectivesPanel { string ObjectivesPanel { get; } } - + public static class DisableExts { public static bool IsDisabled(this Actor a) diff --git a/OpenRA.Lint/YamlChecker.cs b/OpenRA.Lint/YamlChecker.cs index 9481491345..6027d38ff9 100644 --- a/OpenRA.Lint/YamlChecker.cs +++ b/OpenRA.Lint/YamlChecker.cs @@ -68,7 +68,7 @@ namespace OpenRA.Lint if (verbose) Console.WriteLine("Pass: {0}".F(customPassType.ToString())); - customPass.Run(EmitError, EmitWarning); + customPass.Run(EmitError, EmitWarning, testMap); } catch (Exception e) { diff --git a/OpenRA.Mods.RA/Lint/CheckActorReferences.cs b/OpenRA.Mods.RA/Lint/CheckActorReferences.cs index f391b24c61..fd78e5789d 100644 --- a/OpenRA.Mods.RA/Lint/CheckActorReferences.cs +++ b/OpenRA.Mods.RA/Lint/CheckActorReferences.cs @@ -19,7 +19,7 @@ namespace OpenRA.Mods.RA { Action EmitError; - public void Run(Action emitError, Action emitWarning) + public void Run(Action emitError, Action emitWarning, Map map) { EmitError = emitError; diff --git a/OpenRA.Mods.RA/Lint/CheckSequences.cs b/OpenRA.Mods.RA/Lint/CheckSequences.cs index 809b6761a8..58754e6d2e 100644 --- a/OpenRA.Mods.RA/Lint/CheckSequences.cs +++ b/OpenRA.Mods.RA/Lint/CheckSequences.cs @@ -17,10 +17,11 @@ namespace OpenRA.Mods.RA { class CheckSequences : ILintPass { - public void Run(Action emitError, Action emitWarning) + public void Run(Action emitError, Action emitWarning, Map map) { - var sequences = Game.modData.Manifest.Sequences - .Select(s => MiniYaml.FromFile(s)).Aggregate(MiniYaml.MergeLiberal); + var sequences = MiniYaml.MergeLiberal(map.Sequences, + Game.modData.Manifest.Sequences.Select(s => MiniYaml.FromFile(s)) + .Aggregate(MiniYaml.MergeLiberal)); foreach (var actorInfo in Rules.Info) foreach (var renderInfo in actorInfo.Value.Traits.WithInterface()) diff --git a/OpenRA.Mods.RA/Lint/CheckSyncAnnotations.cs b/OpenRA.Mods.RA/Lint/CheckSyncAnnotations.cs index 527b8ae135..fb066f98bd 100644 --- a/OpenRA.Mods.RA/Lint/CheckSyncAnnotations.cs +++ b/OpenRA.Mods.RA/Lint/CheckSyncAnnotations.cs @@ -17,7 +17,7 @@ namespace OpenRA.Mods.RA { class CheckSyncAnnotations : ILintPass { - public void Run(Action emitError, Action emitWarning) + public void Run(Action emitError, Action emitWarning, Map map) { /* first, check all the types implementing ISync */ foreach (var t in Game.modData.ObjectCreator.GetTypesImplementing()) diff --git a/OpenRA.Mods.RA/Lint/CheckTraitPrerequisites.cs b/OpenRA.Mods.RA/Lint/CheckTraitPrerequisites.cs index 9f3b94cdac..fc4d2ab978 100644 --- a/OpenRA.Mods.RA/Lint/CheckTraitPrerequisites.cs +++ b/OpenRA.Mods.RA/Lint/CheckTraitPrerequisites.cs @@ -16,7 +16,7 @@ namespace OpenRA.Mods.RA { public class CheckTraitPrerequisites : ILintPass { - public void Run(Action emitError, Action emitWarning) + public void Run(Action emitError, Action emitWarning, Map map) { foreach (var actorInfo in Rules.Info.Where(a => !a.Key.StartsWith("^"))) try diff --git a/OpenRA.Mods.RA/Lint/LintBuildablePrerequisites.cs b/OpenRA.Mods.RA/Lint/LintBuildablePrerequisites.cs index e899146c81..81189dafff 100644 --- a/OpenRA.Mods.RA/Lint/LintBuildablePrerequisites.cs +++ b/OpenRA.Mods.RA/Lint/LintBuildablePrerequisites.cs @@ -16,7 +16,7 @@ namespace OpenRA.Mods.RA { class LintBuildablePrerequisites : ILintPass { - public void Run(Action emitError, Action emitWarning) + public void Run(Action emitError, Action emitWarning, Map map) { var providedPrereqs = Rules.Info.Keys.Concat( Rules.Info.SelectMany(a => a.Value.Traits