removing duplication wrt mounting FS packages
This commit is contained in:
@@ -17,10 +17,8 @@ namespace FileExtractor
|
|||||||
}
|
}
|
||||||
|
|
||||||
var mods = args[0].Split(',');
|
var mods = args[0].Split(',');
|
||||||
var manifest = new Manifest(mods);
|
var manifest = new Manifest(mods);
|
||||||
|
FileSystem.LoadFromManifest( manifest );
|
||||||
foreach (var folder in manifest.Folders) FileSystem.Mount(folder);
|
|
||||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -34,10 +34,7 @@ namespace OpenRA.Editor
|
|||||||
|
|
||||||
var manifest = new Manifest(new[] { currentMod });
|
var manifest = new Manifest(new[] { currentMod });
|
||||||
Game.modData = new ModData( manifest );
|
Game.modData = new ModData( manifest );
|
||||||
|
FileSystem.LoadFromManifest( manifest );
|
||||||
FileSystem.UnmountAll();
|
|
||||||
foreach (var folder in manifest.Folders) FileSystem.Mount(folder);
|
|
||||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
|
||||||
|
|
||||||
Rules.LoadRules(manifest, new Map());
|
Rules.LoadRules(manifest, new Map());
|
||||||
|
|
||||||
@@ -64,10 +61,7 @@ namespace OpenRA.Editor
|
|||||||
|
|
||||||
var manifest = new Manifest(new[] { currentMod });
|
var manifest = new Manifest(new[] { currentMod });
|
||||||
Game.modData = new ModData( manifest );
|
Game.modData = new ModData( manifest );
|
||||||
|
FileSystem.LoadFromManifest( manifest );
|
||||||
FileSystem.UnmountAll();
|
|
||||||
foreach (var folder in manifest.Folders) FileSystem.Mount(folder);
|
|
||||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
|
||||||
|
|
||||||
// load the map
|
// load the map
|
||||||
var map = new Map(new Folder(mapname));
|
var map = new Map(new Folder(mapname));
|
||||||
@@ -93,10 +87,7 @@ namespace OpenRA.Editor
|
|||||||
|
|
||||||
var manifest = new Manifest(new[] { currentMod });
|
var manifest = new Manifest(new[] { currentMod });
|
||||||
Game.modData = new ModData( manifest );
|
Game.modData = new ModData( manifest );
|
||||||
|
FileSystem.LoadFromManifest( manifest );
|
||||||
FileSystem.UnmountAll();
|
|
||||||
foreach (var folder in manifest.Folders) FileSystem.Mount(folder);
|
|
||||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
|
||||||
|
|
||||||
PrepareMapResources(manifest, map);
|
PrepareMapResources(manifest, map);
|
||||||
|
|
||||||
|
|||||||
@@ -64,6 +64,13 @@ namespace OpenRA.FileFormats
|
|||||||
allFiles = new Cache<uint, List<IFolder>>( _ => new List<IFolder>() );
|
allFiles = new Cache<uint, List<IFolder>>( _ => new List<IFolder>() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void LoadFromManifest( Manifest manifest )
|
||||||
|
{
|
||||||
|
UnmountAll();
|
||||||
|
foreach (var dir in manifest.Folders) Mount(dir);
|
||||||
|
foreach (var pkg in manifest.Packages) Mount(pkg);
|
||||||
|
}
|
||||||
|
|
||||||
static Stream GetFromCache( Cache<uint, List<IFolder>> index, string filename )
|
static Stream GetFromCache( Cache<uint, List<IFolder>> index, string filename )
|
||||||
{
|
{
|
||||||
foreach( var folder in index[ PackageEntry.HashFilename( filename ) ] )
|
foreach( var folder in index[ PackageEntry.HashFilename( filename ) ] )
|
||||||
|
|||||||
@@ -51,17 +51,6 @@ namespace OpenRA
|
|||||||
static bool packageChangePending;
|
static bool packageChangePending;
|
||||||
static bool mapChangePending;
|
static bool mapChangePending;
|
||||||
|
|
||||||
static void LoadModPackages( Manifest manifest )
|
|
||||||
{
|
|
||||||
FileSystem.UnmountAll();
|
|
||||||
Timer.Time("reset: {0}");
|
|
||||||
|
|
||||||
foreach (var dir in manifest.Folders) FileSystem.Mount(dir);
|
|
||||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
|
||||||
|
|
||||||
Timer.Time("mount temporary packages: {0}");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Dictionary<string, MapStub> AvailableMaps;
|
public static Dictionary<string, MapStub> AvailableMaps;
|
||||||
|
|
||||||
// TODO: Do this nicer
|
// TODO: Do this nicer
|
||||||
@@ -81,7 +70,7 @@ namespace OpenRA
|
|||||||
Timer.Time("manifest: {0}");
|
Timer.Time("manifest: {0}");
|
||||||
modData = new ModData( manifest );
|
modData = new ModData( manifest );
|
||||||
SheetBuilder.Initialize();
|
SheetBuilder.Initialize();
|
||||||
LoadModPackages( manifest );
|
FileSystem.LoadFromManifest( manifest );
|
||||||
Timer.Time("load assemblies, packages: {0}");
|
Timer.Time("load assemblies, packages: {0}");
|
||||||
ChromeProvider.Initialize(manifest.Chrome);
|
ChromeProvider.Initialize(manifest.Chrome);
|
||||||
packageChangePending = false;
|
packageChangePending = false;
|
||||||
@@ -464,7 +453,7 @@ namespace OpenRA
|
|||||||
modData = new ModData( manifest );
|
modData = new ModData( manifest );
|
||||||
|
|
||||||
// Load the default mod to access required files
|
// Load the default mod to access required files
|
||||||
LoadModPackages( manifest );
|
FileSystem.LoadFromManifest( manifest );
|
||||||
|
|
||||||
Renderer.SheetSize = Settings.SheetSize;
|
Renderer.SheetSize = Settings.SheetSize;
|
||||||
|
|
||||||
@@ -548,10 +537,7 @@ namespace OpenRA
|
|||||||
AppDomain.CurrentDomain.AssemblyResolve += FileSystem.ResolveAssembly;
|
AppDomain.CurrentDomain.AssemblyResolve += FileSystem.ResolveAssembly;
|
||||||
var manifest = new Manifest(mods);
|
var manifest = new Manifest(mods);
|
||||||
modData = new ModData( manifest );
|
modData = new ModData( manifest );
|
||||||
|
FileSystem.LoadFromManifest( manifest );
|
||||||
FileSystem.UnmountAll();
|
|
||||||
foreach (var folder in manifest.Folders) FileSystem.Mount(folder);
|
|
||||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
|
||||||
|
|
||||||
Rules.LoadRules(manifest, new Map());
|
Rules.LoadRules(manifest, new Map());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,9 +87,7 @@ namespace SequenceEditor
|
|||||||
|
|
||||||
var mods = args[0].Split(',');
|
var mods = args[0].Split(',');
|
||||||
var manifest = new Manifest(mods);
|
var manifest = new Manifest(mods);
|
||||||
|
FileSystem.LoadFromManifest( manifest );
|
||||||
foreach (var folder in manifest.Folders) FileSystem.Mount(folder);
|
|
||||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
|
||||||
|
|
||||||
XmlFilename = args[1];
|
XmlFilename = args[1];
|
||||||
Doc = new XmlDocument();
|
Doc = new XmlDocument();
|
||||||
|
|||||||
Reference in New Issue
Block a user