Support ingame mod switching.
This commit is contained in:
@@ -23,9 +23,6 @@ namespace OpenRA.FileFormats
|
|||||||
|
|
||||||
public ActorReference( string type, Dictionary<string, MiniYaml> inits )
|
public ActorReference( string type, Dictionary<string, MiniYaml> inits )
|
||||||
{
|
{
|
||||||
if (Rules.Info != null && !Rules.Info.ContainsKey(type))
|
|
||||||
throw new InvalidDataException("Unknown actor: `{0}'".F(type));
|
|
||||||
|
|
||||||
Type = type;
|
Type = type;
|
||||||
InitDict = new TypeDictionary();
|
InitDict = new TypeDictionary();
|
||||||
foreach( var i in inits )
|
foreach( var i in inits )
|
||||||
|
|||||||
@@ -246,11 +246,16 @@ namespace OpenRA
|
|||||||
foreach(var mod in Mod.AllMods)
|
foreach(var mod in Mod.AllMods)
|
||||||
Console.WriteLine("\t{0}: {1} ({2})", mod.Key, mod.Value.Title, mod.Value.Version);
|
Console.WriteLine("\t{0}: {1} ({2})", mod.Key, mod.Value.Title, mod.Value.Version);
|
||||||
|
|
||||||
// Discard any invalid mods
|
InitializeWithMods(Settings.Game.Mods);
|
||||||
var mods = Settings.Game.Mods.Where( m => Mod.AllMods.ContainsKey( m ) ).ToArray();
|
}
|
||||||
Console.WriteLine("Loading mods: {0}",string.Join(",",mods));
|
|
||||||
|
|
||||||
modData = new ModData( mods );
|
public static void InitializeWithMods(string[] mods)
|
||||||
|
{
|
||||||
|
// Discard any invalid mods
|
||||||
|
var mm = mods.Where( m => Mod.AllMods.ContainsKey( m ) ).ToArray();
|
||||||
|
Console.WriteLine("Loading mods: {0}",string.Join(",",mm));
|
||||||
|
|
||||||
|
modData = new ModData( mm );
|
||||||
modData.LoadInitialAssets();
|
modData.LoadInitialAssets();
|
||||||
|
|
||||||
Sound.Initialize();
|
Sound.Initialize();
|
||||||
|
|||||||
Reference in New Issue
Block a user