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 try
{ {
return Game.ModData.RulesetCache.Load(Game.ModData.DefaultFileSystem, this); return Game.ModData.RulesetCache.Load(this, this);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -1178,22 +1178,30 @@ namespace OpenRA
// Placeholders for future implementation // Placeholders for future implementation
public Stream Open(string filename) public Stream Open(string filename)
{ {
if (Container.Contains(filename))
return Container.GetStream(filename);
return Game.ModData.DefaultFileSystem.Open(filename); return Game.ModData.DefaultFileSystem.Open(filename);
} }
public bool TryGetPackageContaining(string path, out IReadOnlyPackage package, out string 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); return Game.ModData.DefaultFileSystem.TryGetPackageContaining(path, out package, out filename);
} }
public bool TryOpen(string filename, out Stream s) 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); return Game.ModData.DefaultFileSystem.TryOpen(filename, out s);
} }
public bool Exists(string filename) 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 // Reinitialize all our assets
InitializeLoaders(map); 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")) using (new Support.PerfTimer("Map.PreloadRules"))
map.PreloadRules(); map.PreloadRules();