Move smudge definitions from Map to SmudgeLayer.
This commit is contained in:
@@ -273,14 +273,40 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
|
||||
static void LoadSmudges(IniFile file, string section, int mapSize, Map map)
|
||||
{
|
||||
var scorches = new List<MiniYamlNode>();
|
||||
var craters = new List<MiniYamlNode>();
|
||||
foreach (var s in file.GetSection(section, true))
|
||||
{
|
||||
// loc=type,loc,depth
|
||||
var parts = s.Value.Split(',');
|
||||
var loc = Exts.ParseIntegerInvariant(parts[1]);
|
||||
var key = "{0} {1},{2} {3}".F(parts[0].ToLowerInvariant(), loc % mapSize, loc / mapSize, Exts.ParseIntegerInvariant(parts[2]));
|
||||
map.SmudgeDefinitions.Add(new MiniYamlNode(key, ""));
|
||||
var type = parts[0].ToLowerInvariant();
|
||||
var key = "{0},{1}".F(loc % mapSize, loc / mapSize);
|
||||
var value = "{0},{1}".F(type, parts[2]);
|
||||
var node = new MiniYamlNode(key, value);
|
||||
if (type.StartsWith("sc"))
|
||||
scorches.Add(node);
|
||||
else if (type.StartsWith("cr"))
|
||||
craters.Add(node);
|
||||
}
|
||||
|
||||
var worldNode = new MiniYamlNode("World", new MiniYaml("", new List<MiniYamlNode>()));
|
||||
if (scorches.Any())
|
||||
{
|
||||
var initialScorches = new MiniYamlNode("InitialSmudges", new MiniYaml("", scorches));
|
||||
var smudgeLayer = new MiniYamlNode("SmudgeLayer@SCORCH", new MiniYaml("", new List<MiniYamlNode>() { initialScorches }));
|
||||
worldNode.Value.Nodes.Add(smudgeLayer);
|
||||
}
|
||||
|
||||
if (craters.Any())
|
||||
{
|
||||
var initialCraters = new MiniYamlNode("InitialSmudges", new MiniYaml("", craters));
|
||||
var smudgeLayer = new MiniYamlNode("SmudgeLayer@CRATER", new MiniYaml("", new List<MiniYamlNode>() { initialCraters }));
|
||||
worldNode.Value.Nodes.Add(smudgeLayer);
|
||||
}
|
||||
|
||||
if (worldNode.Value.Nodes.Any())
|
||||
map.RuleDefinitions.Add(worldNode);
|
||||
}
|
||||
|
||||
// TODO: fix this -- will have bitrotted pretty badly.
|
||||
|
||||
Reference in New Issue
Block a user