lint check maps, too

closes #4187
This commit is contained in:
Matthias Mailänder
2014-03-07 22:10:30 +01:00
parent 1f18374733
commit 4ce31f39c6
3 changed files with 36 additions and 21 deletions

View File

@@ -1,6 +1,6 @@
#region Copyright & License Information #region Copyright & License Information
/* /*
* Copyright 2007-2013 The OpenRA Developers (see AUTHORS) * Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made * This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License * available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information, * as published by the Free Software Foundation. For more information,
@@ -355,6 +355,7 @@ namespace OpenRA
modData = new ModData(mod); modData = new ModData(mod);
Renderer.InitializeFonts(modData.Manifest); Renderer.InitializeFonts(modData.Manifest);
modData.InitializeLoaders(); modData.InitializeLoaders();
modData.LoadMaps();
PerfHistory.items["render"].hasNormalTick = false; PerfHistory.items["render"].hasNormalTick = false;
PerfHistory.items["batches"].hasNormalTick = false; PerfHistory.items["batches"].hasNormalTick = false;
@@ -385,7 +386,7 @@ namespace OpenRA
if (Settings.Server.DedicatedLoop) if (Settings.Server.DedicatedLoop)
{ {
Console.WriteLine("Starting a new server instance..."); Console.WriteLine("Starting a new server instance...");
modData.InitializeLoaders(); modData.LoadMaps();
continue; continue;
} }

View File

@@ -76,8 +76,6 @@ namespace OpenRA
SpriteLoader = new SpriteLoader(new string[0], SheetBuilder); SpriteLoader = new SpriteLoader(new string[0], SheetBuilder);
VoxelLoader = new VoxelLoader(); VoxelLoader = new VoxelLoader();
CursorProvider.Initialize(Manifest.Cursors); CursorProvider.Initialize(Manifest.Cursors);
AvailableMaps = FindMaps();
} }
public IEnumerable<string> Languages { get; private set; } public IEnumerable<string> Languages { get; private set; }
@@ -121,6 +119,11 @@ namespace OpenRA
FieldLoader.Translations = translations; FieldLoader.Translations = translations;
} }
public void LoadMaps()
{
AvailableMaps = FindMaps();
}
public Map PrepareMap(string uid) public Map PrepareMap(string uid)
{ {
LoadScreen.Display(); LoadScreen.Display();

View File

@@ -52,27 +52,38 @@ namespace OpenRA.Lint
AppDomain.CurrentDomain.AssemblyResolve += FileSystem.ResolveAssembly; AppDomain.CurrentDomain.AssemblyResolve += FileSystem.ResolveAssembly;
Game.modData = new ModData(mod); Game.modData = new ModData(mod);
var testMap = string.IsNullOrEmpty(map) ? new Map() : new Map(map); var maps = new Map[] { new Map() };
if (verbose && !string.IsNullOrEmpty(map)) if (!string.IsNullOrEmpty(map))
Console.WriteLine("Map: {0}".F(testMap.Title)); maps = new Map[] { new Map(map) };
Rules.LoadRules(Game.modData.Manifest, testMap); else
foreach (var customPassType in Game.modData.ObjectCreator
.GetTypesImplementing<ILintPass>())
{ {
try Game.modData.LoadMaps();
{ maps = Game.modData.AvailableMaps.Values.ToArray();
var customPass = (ILintPass)Game.modData.ObjectCreator }
.CreateBasic(customPassType);
if (verbose) foreach (var testMap in maps)
Console.WriteLine("Pass: {0}".F(customPassType.ToString())); {
if (verbose)
Console.WriteLine("Map: {0}".F(testMap.Title));
Rules.LoadRules(Game.modData.Manifest, testMap);
customPass.Run(EmitError, EmitWarning, testMap); foreach (var customPassType in Game.modData.ObjectCreator
} .GetTypesImplementing<ILintPass>())
catch (Exception e)
{ {
EmitError("Failed with exception: {0}".F(e)); try
{
var customPass = (ILintPass)Game.modData.ObjectCreator
.CreateBasic(customPassType);
if (verbose)
Console.WriteLine("Pass: {0}".F(customPassType.ToString()));
customPass.Run(EmitError, EmitWarning, testMap);
}
catch (Exception e)
{
EmitError("Failed with exception: {0}".F(e));
}
} }
} }