diff --git a/OpenRA.Game/Settings.cs b/OpenRA.Game/Settings.cs index 77bbac7904..aa313b2ca5 100644 --- a/OpenRA.Game/Settings.cs +++ b/OpenRA.Game/Settings.cs @@ -232,18 +232,19 @@ namespace OpenRA if (File.Exists(settingsFile)) { - yamlCache = MiniYaml.FromFile(settingsFile); + yamlCache = MiniYaml.FromFile(settingsFile, false); foreach (var yamlSection in yamlCache) { object settingsSection; - if (Sections.TryGetValue(yamlSection.Key, out settingsSection)) + if (yamlSection.Key != null && Sections.TryGetValue(yamlSection.Key, out settingsSection)) LoadSectionYaml(yamlSection.Value, settingsSection); } var keysNode = yamlCache.FirstOrDefault(n => n.Key == "Keys"); if (keysNode != null) foreach (var node in keysNode.Value.Nodes) - Keys[node.Key] = FieldLoader.GetValue(node.Key, node.Value.Value); + if (node.Key != null) + Keys[node.Key] = FieldLoader.GetValue(node.Key, node.Value.Value); } // Override with commandline args diff --git a/OpenRA.Mods.Common/UpdateRules/UpdateUtils.cs b/OpenRA.Mods.Common/UpdateRules/UpdateUtils.cs index aec4c6f2a7..0ebfdcd320 100644 --- a/OpenRA.Mods.Common/UpdateRules/UpdateUtils.cs +++ b/OpenRA.Mods.Common/UpdateRules/UpdateUtils.cs @@ -37,7 +37,7 @@ namespace OpenRA.Mods.Common.UpdateRules continue; } - yaml.Add(Tuple.Create((IReadWritePackage)package, name, MiniYaml.FromStream(package.GetStream(name), name))); + yaml.Add(Tuple.Create((IReadWritePackage)package, name, MiniYaml.FromStream(package.GetStream(name), name, false))); } return yaml; @@ -70,7 +70,7 @@ namespace OpenRA.Mods.Common.UpdateRules { // Ignore any files that aren't in the map bundle if (!filename.Contains("|") && mapPackage.Contains(filename)) - fileSet.Add(Tuple.Create(mapPackage, filename, MiniYaml.FromStream(mapPackage.GetStream(filename), filename))); + fileSet.Add(Tuple.Create(mapPackage, filename, MiniYaml.FromStream(mapPackage.GetStream(filename), filename, false))); else if (modData.ModFiles.Exists(filename)) externalFilenames.Add(filename); } @@ -96,7 +96,7 @@ namespace OpenRA.Mods.Common.UpdateRules return manualSteps; } - var yaml = new MiniYaml(null, MiniYaml.FromStream(mapStream, mapPackage.Name)); + var yaml = new MiniYaml(null, MiniYaml.FromStream(mapStream, mapPackage.Name, false)); files = new YamlFileSet() { Tuple.Create(mapPackage, "map.yaml", yaml.Nodes) }; manualSteps.AddRange(rule.BeforeUpdate(modData)); @@ -154,7 +154,7 @@ namespace OpenRA.Mods.Common.UpdateRules if (mapStream == null) continue; - var yaml = new MiniYaml(null, MiniYaml.FromStream(mapStream, package.Name)); + var yaml = new MiniYaml(null, MiniYaml.FromStream(mapStream, package.Name, false)); var mapRulesNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Rules"); if (mapRulesNode != null) foreach (var f in LoadExternalMapYaml(modData, mapRulesNode.Value, externalFilenames)) @@ -192,8 +192,9 @@ namespace OpenRA.Mods.Common.UpdateRules var childrenNode = current.Value.Nodes.FirstOrDefault(n => n.Key == "Children"); if (childrenNode != null) foreach (var node in childrenNode.Value.Nodes) - foreach (var manualStep in ApplyChromeTransformInner(modData, node, transform)) - yield return manualStep; + if (node.Key != null) + foreach (var manualStep in ApplyChromeTransformInner(modData, node, transform)) + yield return manualStep; } static IEnumerable ApplyChromeTransform(ModData modData, YamlFileSet files, UpdateRule.ChromeNodeTransform transform) @@ -203,8 +204,9 @@ namespace OpenRA.Mods.Common.UpdateRules foreach (var file in files) foreach (var node in file.Item3) - foreach (var manualStep in ApplyChromeTransformInner(modData, node, transform)) - yield return manualStep; + if (node.Key != null) + foreach (var manualStep in ApplyChromeTransformInner(modData, node, transform)) + yield return manualStep; } static IEnumerable ApplyTopLevelTransform(ModData modData, YamlFileSet files, UpdateRule.TopLevelNodeTransform transform) @@ -214,8 +216,9 @@ namespace OpenRA.Mods.Common.UpdateRules foreach (var file in files) foreach (var node in file.Item3) - foreach (var manualStep in transform(modData, node)) - yield return manualStep; + if (node.Key != null) + foreach (var manualStep in transform(modData, node)) + yield return manualStep; } public static string FormatMessageList(IEnumerable messages, int indent = 0) diff --git a/OpenRA.Mods.Common/UtilityCommands/ExtractLanguageStringsCommand.cs b/OpenRA.Mods.Common/UtilityCommands/ExtractLanguageStringsCommand.cs index 346ad4bf5f..bf8b8dfe17 100644 --- a/OpenRA.Mods.Common/UtilityCommands/ExtractLanguageStringsCommand.cs +++ b/OpenRA.Mods.Common/UtilityCommands/ExtractLanguageStringsCommand.cs @@ -38,7 +38,7 @@ namespace OpenRA.Mods.Common.UtilityCommands foreach (var filename in modData.Manifest.ChromeLayout) { Console.WriteLine("# {0}:", filename); - var yaml = MiniYaml.FromFile(filename); + var yaml = MiniYaml.FromFile(filename, false); FromChromeLayout(ref yaml, null, translatableFields.Select(t => t.Name).Distinct(), null); using (var file = new StreamWriter(filename)) diff --git a/OpenRA.Mods.Common/UtilityCommands/ExtractMapRules.cs b/OpenRA.Mods.Common/UtilityCommands/ExtractMapRules.cs index 8f1f1bc323..defb91a999 100644 --- a/OpenRA.Mods.Common/UtilityCommands/ExtractMapRules.cs +++ b/OpenRA.Mods.Common/UtilityCommands/ExtractMapRules.cs @@ -36,7 +36,7 @@ namespace OpenRA.Mods.Common.UtilityCommands { include |= map.Package.Contains(f); if (include) - nodes.AddRange(MiniYaml.FromStream(map.Open(f), f)); + nodes.AddRange(MiniYaml.FromStream(map.Open(f), f, false)); else includes.Add(f); } diff --git a/OpenRA.Mods.Common/UtilityCommands/UpdateModCommand.cs b/OpenRA.Mods.Common/UtilityCommands/UpdateModCommand.cs index 854f2e660d..3abb0a8b35 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpdateModCommand.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpdateModCommand.cs @@ -62,8 +62,6 @@ namespace OpenRA.Mods.Common.UtilityCommands if (!args.Contains("--yes")) { Console.WriteLine("WARNING: This command will automatically rewrite your mod rules."); - Console.WriteLine("Side effects of this command may include changing the whitespace to "); - Console.WriteLine("match the default conventions, and any yaml comments will be removed."); Console.WriteLine(); Console.WriteLine("We strongly recommend that you have a backup of your mod rules, and "); Console.WriteLine("for best results, to use a Git client to review the line-by-line ");