Add backup ExplicitSequenceFilenames to update rules
(cherry picked from commit 29eaab59be)
This commit is contained in:
@@ -92,19 +92,73 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules
|
|||||||
defaultSpriteExtension = defaultSpriteExtensionNode.Value.Value;
|
defaultSpriteExtension = defaultSpriteExtensionNode.Value.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
var tilesetExtensionsNode = spriteSequenceFormatNode.LastChildMatching("TilesetExtensions");
|
var fromBackup = false;
|
||||||
|
|
||||||
|
var tilesetExtensionsNode = spriteSequenceFormatNode.LastChildMatching("TilesetExtensions")?.Value?.Nodes;
|
||||||
|
if (tilesetExtensionsNode == null)
|
||||||
|
{
|
||||||
|
switch (modData.Manifest.Id)
|
||||||
|
{
|
||||||
|
case "cnc":
|
||||||
|
fromBackup = true;
|
||||||
|
tilesetExtensionsNode = new List<MiniYamlNode>()
|
||||||
|
{
|
||||||
|
new MiniYamlNode("TEMPERAT", ".tem"),
|
||||||
|
new MiniYamlNode("SNOW", ".sno"),
|
||||||
|
new MiniYamlNode("INTERIOR", ".int"),
|
||||||
|
new MiniYamlNode("DESERT", ".des"),
|
||||||
|
new MiniYamlNode("JUNGLE", ".jun"),
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
case "ra":
|
||||||
|
fromBackup = true;
|
||||||
|
tilesetExtensionsNode = new List<MiniYamlNode>()
|
||||||
|
{
|
||||||
|
new MiniYamlNode("TEMPERAT", ".tem"),
|
||||||
|
new MiniYamlNode("SNOW", ".sno"),
|
||||||
|
new MiniYamlNode("INTERIOR", ".int"),
|
||||||
|
new MiniYamlNode("DESERT", ".des"),
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
case "ts":
|
||||||
|
fromBackup = true;
|
||||||
|
tilesetExtensionsNode = new List<MiniYamlNode>()
|
||||||
|
{
|
||||||
|
new MiniYamlNode("TEMPERATE", ".tem"),
|
||||||
|
new MiniYamlNode("SNOW", ".sno"),
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (tilesetExtensionsNode != null)
|
if (tilesetExtensionsNode != null)
|
||||||
{
|
{
|
||||||
reportModYamlChanges = true;
|
if (!fromBackup)
|
||||||
foreach (var n in tilesetExtensionsNode.Value.Nodes)
|
reportModYamlChanges = true;
|
||||||
|
|
||||||
|
foreach (var n in tilesetExtensionsNode)
|
||||||
tilesetExtensions[n.Key] = n.Value.Value;
|
tilesetExtensions[n.Key] = n.Value.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
var tilesetCodesNode = spriteSequenceFormatNode.LastChildMatching("TilesetCodes");
|
fromBackup = false;
|
||||||
|
|
||||||
|
var tilesetCodesNode = spriteSequenceFormatNode.LastChildMatching("TilesetCodes")?.Value?.Nodes;
|
||||||
|
if (tilesetCodesNode == null && modData.Manifest.Id == "ts")
|
||||||
|
{
|
||||||
|
fromBackup = true;
|
||||||
|
tilesetCodesNode = new List<MiniYamlNode>()
|
||||||
|
{
|
||||||
|
new MiniYamlNode("TEMPERATE", "t"),
|
||||||
|
new MiniYamlNode("SNOW", "a"),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
if (tilesetCodesNode != null)
|
if (tilesetCodesNode != null)
|
||||||
{
|
{
|
||||||
reportModYamlChanges = true;
|
if (!fromBackup)
|
||||||
foreach (var n in tilesetCodesNode.Value.Nodes)
|
reportModYamlChanges = true;
|
||||||
|
|
||||||
|
foreach (var n in tilesetCodesNode)
|
||||||
tilesetCodes[n.Key] = n.Value.Value;
|
tilesetCodes[n.Key] = n.Value.Value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user