diff --git a/OpenRA.Game/ActorReference.cs b/OpenRA.Game/ActorReference.cs index 965f087fea..3d09a53e64 100755 --- a/OpenRA.Game/ActorReference.cs +++ b/OpenRA.Game/ActorReference.cs @@ -23,9 +23,6 @@ namespace OpenRA.FileFormats public ActorReference( string type, Dictionary inits ) { - if (Rules.Info != null && !Rules.Info.ContainsKey(type)) - throw new InvalidDataException("Unknown actor: `{0}'".F(type)); - Type = type; InitDict = new TypeDictionary(); foreach( var i in inits ) diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index b60a48795e..091a776b18 100755 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -246,11 +246,16 @@ namespace OpenRA foreach(var mod in Mod.AllMods) Console.WriteLine("\t{0}: {1} ({2})", mod.Key, mod.Value.Title, mod.Value.Version); + InitializeWithMods(Settings.Game.Mods); + } + + public static void InitializeWithMods(string[] mods) + { // Discard any invalid mods - var mods = Settings.Game.Mods.Where( m => Mod.AllMods.ContainsKey( m ) ).ToArray(); - Console.WriteLine("Loading mods: {0}",string.Join(",",mods)); + var mm = mods.Where( m => Mod.AllMods.ContainsKey( m ) ).ToArray(); + Console.WriteLine("Loading mods: {0}",string.Join(",",mm)); - modData = new ModData( mods ); + modData = new ModData( mm ); modData.LoadInitialAssets(); Sound.Initialize();