Don't reenumerate files when loading maps.

This commit is contained in:
Paul Chote
2016-02-15 03:52:15 +00:00
parent 88f6daf57f
commit 0b13811976
2 changed files with 10 additions and 6 deletions

View File

@@ -372,7 +372,7 @@ namespace OpenRA
{
try
{
return Game.ModData.RulesetCache.Load(Game.ModData.DefaultFileSystem, this);
return Game.ModData.RulesetCache.Load(this, this);
}
catch (Exception e)
{
@@ -1178,22 +1178,30 @@ namespace OpenRA
// Placeholders for future implementation
public Stream Open(string filename)
{
if (Container.Contains(filename))
return Container.GetStream(filename);
return Game.ModData.DefaultFileSystem.Open(filename);
}
public bool TryGetPackageContaining(string path, out IReadOnlyPackage package, out string filename)
{
// Packages aren't supported inside maps
return Game.ModData.DefaultFileSystem.TryGetPackageContaining(path, out package, out filename);
}
public bool TryOpen(string filename, out Stream s)
{
s = Container.GetStream(filename);
if (s != null)
return true;
return Game.ModData.DefaultFileSystem.TryOpen(filename, out s);
}
public bool Exists(string filename)
{
return Game.ModData.DefaultFileSystem.Exists(filename);
return Container.Contains(filename) || Game.ModData.DefaultFileSystem.Exists(filename);
}
}
}

View File

@@ -171,10 +171,6 @@ namespace OpenRA
// Reinitialize all our assets
InitializeLoaders(map);
ModFiles.LoadFromManifest(Manifest);
// Mount map package so custom assets can be used.
ModFiles.Mount(ModFiles.OpenPackage(map.Path));
using (new Support.PerfTimer("Map.PreloadRules"))
map.PreloadRules();