From 7e67a5bb2d6737b70063deee8ec3fa0ca514a90f Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 21 Aug 2010 18:26:16 +1200 Subject: [PATCH] move calls to manifest ctor into ModData --- OpenRA.Editor/Form1.cs | 15 ++++++--------- OpenRA.Game/Game.cs | 31 +++++++++++++------------------ OpenRA.Game/ModData.cs | 8 ++++---- 3 files changed, 23 insertions(+), 31 deletions(-) diff --git a/OpenRA.Editor/Form1.cs b/OpenRA.Editor/Form1.cs index 319cf725e7..b74795f841 100644 --- a/OpenRA.Editor/Form1.cs +++ b/OpenRA.Editor/Form1.cs @@ -32,10 +32,9 @@ namespace OpenRA.Editor Text = "OpenRA Editor (mod:{0})".F(currentMod); - var manifest = new Manifest(new[] { currentMod }); - Game.modData = new ModData( manifest ); + Game.modData = new ModData( currentMod ); - Rules.LoadRules(manifest, new Map()); + Rules.LoadRules(Game.modData.Manifest, new Map()); folderBrowser.SelectedPath = new string[] { Environment.CurrentDirectory, "mods", currentMod, "maps" } .Aggregate(Path.Combine); @@ -58,8 +57,7 @@ namespace OpenRA.Editor loadedMapName = mapname; - var manifest = new Manifest(new[] { currentMod }); - Game.modData = new ModData( manifest ); + Game.modData = new ModData( currentMod ); // load the map var map = new Map(new Folder(mapname)); @@ -70,7 +68,7 @@ namespace OpenRA.Editor map.Players.Add("Neutral", new PlayerReference("Neutral", Rules.Info["world"].Traits.WithInterface().First().Race, true, true)); - PrepareMapResources(manifest, map); + PrepareMapResources(Game.modData.Manifest, map); dirty = false; } @@ -83,10 +81,9 @@ namespace OpenRA.Editor loadedMapName = null; - var manifest = new Manifest(new[] { currentMod }); - Game.modData = new ModData( manifest ); + Game.modData = new ModData( currentMod ); - PrepareMapResources(manifest, map); + PrepareMapResources(Game.modData.Manifest, map); MakeDirty(); } diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index 7e17366377..bb6ba1043d 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -65,20 +65,18 @@ namespace OpenRA static void ChangeMods() { - Timer.Time("----ChangeMods"); - var manifest = new Manifest(LobbyInfo.GlobalSettings.Mods); - Timer.Time("manifest: {0}"); - modData = new ModData( manifest ); - Timer.Time("load assemblies, packages: {0}"); - ChromeProvider.Initialize(manifest.Chrome); + Timer.Time( "----ChangeMods" ); + modData = new ModData( LobbyInfo.GlobalSettings.Mods ); + + ChromeProvider.Initialize( modData.Manifest.Chrome ); packageChangePending = false; + Timer.Time( "load assemblies, packages: {0}" ); } static void LoadMap(string mapName) { Timer.Time("----LoadMap"); - var manifest = new Manifest(LobbyInfo.GlobalSettings.Mods); - modData = new ModData( manifest ); + modData = new ModData( LobbyInfo.GlobalSettings.Mods ); Timer.Time("manifest: {0}"); if (!Game.AvailableMaps.ContainsKey(mapName)) @@ -90,14 +88,14 @@ namespace OpenRA world = null; // trying to access the old world will NRE, rather than silently doing it wrong. Timer.Time("viewport: {0}"); - Rules.LoadRules(manifest,map); + Rules.LoadRules(modData.Manifest,map); Timer.Time( "load rules: {0}" ); SpriteSheetBuilder.Initialize( Rules.TileSets[map.Tileset] ); - SequenceProvider.Initialize(manifest.Sequences); + SequenceProvider.Initialize(modData.Manifest.Sequences); Timer.Time("SeqProv: {0}"); - world = new World(manifest, map); + world = new World(modData.Manifest, map); Timer.Time("world: {0}"); Timer.Time("----end LoadMap"); @@ -394,8 +392,7 @@ namespace OpenRA Log.AddChannel("sync", "syncreport.log"); LobbyInfo.GlobalSettings.Mods = Settings.InitialMods; - var manifest = new Manifest(LobbyInfo.GlobalSettings.Mods); - modData = new ModData( manifest ); + modData = new ModData( LobbyInfo.GlobalSettings.Mods ); Renderer.SheetSize = Settings.SheetSize; @@ -418,7 +415,7 @@ namespace OpenRA else JoinLocal(); - StartGame(manifest.ShellmapUid); + StartGame(modData.Manifest.ShellmapUid); ResetTimer(); @@ -477,10 +474,8 @@ namespace OpenRA public static void InitializeEngineWithMods(string[] mods) { AppDomain.CurrentDomain.AssemblyResolve += FileSystem.ResolveAssembly; - var manifest = new Manifest(mods); - modData = new ModData( manifest ); - - Rules.LoadRules(manifest, new Map()); + modData = new ModData( mods ); + Rules.LoadRules(modData.Manifest, new Map()); } public static T CreateObject( string name ) diff --git a/OpenRA.Game/ModData.cs b/OpenRA.Game/ModData.cs index 1f4ca08676..e66446b681 100755 --- a/OpenRA.Game/ModData.cs +++ b/OpenRA.Game/ModData.cs @@ -14,11 +14,11 @@ namespace OpenRA public readonly SheetBuilder SheetBuilder; public readonly CursorSheetBuilder CursorSheetBuilder; - public ModData( Manifest manifest ) + public ModData( params string[] mods ) { - Manifest = manifest; - ObjectCreator = new ObjectCreator( manifest ); - FileSystem.LoadFromManifest( manifest ); + Manifest = new Manifest( mods ); + ObjectCreator = new ObjectCreator( Manifest ); + FileSystem.LoadFromManifest( Manifest ); SheetBuilder = new SheetBuilder( TextureChannel.Red ); CursorSheetBuilder = new CursorSheetBuilder( this ); }