From d74d50df526d081d64873ebc14cd6e3dc1178b95 Mon Sep 17 00:00:00 2001 From: Pavel Penev Date: Wed, 9 Sep 2015 20:06:21 +0300 Subject: [PATCH] Add an upgrade rule for D2k actor renaming --- .../UtilityCommands/UpgradeRules.cs | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs index 51ad3a69e9..d228724b9f 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs @@ -110,6 +110,44 @@ namespace OpenRA.Mods.Common.UtilityCommands } } + internal static string RenameD2kActors(string name) + { + switch (name) + { + case "rifle": return "light_inf"; + case "bazooka": return "trooper"; + case "stealthraider": return "stealth_raider"; + case "combata": return "combat_tank_a"; + case "combath": return "combat_tank_h"; + case "combato": return "combat_tank_o"; + case "siegetank": return "siege_tank"; + case "missiletank": return "missile_tank"; + case "sonictank": return "sonic_tank"; + case "devast": return "devastator"; + case "deviatortank": return "deviator"; + case "orni": return "ornithopter"; + + case "combata.starport": return "combat_tank_a.starport"; + case "combath.starport": return "combat_tank_h.starport"; + case "combato.starport": return "combat_tank_o.starport"; + case "siegetank.starport": return "siege_tank.starport"; + case "missiletank.starport": return "missile_tank.starport"; + + case "conyard": return "construction_yard"; + case "power": return "wind_trap"; + case "light": return "light_factory"; + case "heavy": return "heavy_factory"; + case "guntower": return "medium_gun_turret"; + case "rockettower": return "large_gun_turret"; + case "research": return "research_centre"; + case "repair": return "repair_pad"; + case "radar": return "outpost"; + case "hightech": return "high_tech_factory"; + + default: return name; + } + } + internal static void UpgradeActorRules(int engineVersion, ref List nodes, MiniYamlNode parent, int depth) { var parentKey = parent != null ? parent.Key.Split('@').First() : null; @@ -2084,6 +2122,10 @@ namespace OpenRA.Mods.Common.UtilityCommands } } + // Rename D2k actors to match the original game. + if (engineVersion < 20150910 && Game.ModData.Manifest.Mod.Id == "d2k") + node.Key = RenameD2kActors(node.Key); + UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1); } } @@ -2644,6 +2686,12 @@ namespace OpenRA.Mods.Common.UtilityCommands node.Key = "Faction"; } + // Rename D2k actors to match the original game. + if (engineVersion < 20150909 && Game.ModData.Manifest.Mod.Id == "d2k") + { + node.Value.Value = RenameD2kActors(node.Value.Value); + } + UpgradeActors(engineVersion, ref node.Value.Nodes, node, depth + 1); } }