diff --git a/OpenRA.Mods.Cnc/ImportTiberianDawnLegacyMapCommand.cs b/OpenRA.Mods.Cnc/ImportTiberianDawnLegacyMapCommand.cs index f7280b7aed..fbe3f74235 100644 --- a/OpenRA.Mods.Cnc/ImportTiberianDawnLegacyMapCommand.cs +++ b/OpenRA.Mods.Cnc/ImportTiberianDawnLegacyMapCommand.cs @@ -148,5 +148,17 @@ namespace OpenRA.Mods.Cnc.UtilityCommands ReadOverlay(file); } + + public override void SaveWaypoint(int waypointNumber, ActorReference waypointReference) + { + var waypointName = "waypoint" + waypointNumber; + if (waypointNumber == 25) + waypointName = "DefaultFlareLocation"; + else if (waypointNumber == 26) + waypointName = "DefaultCameraPosition"; + else if (waypointNumber == 27) + waypointName = "DefaultChinookTarget"; + Map.ActorDefinitions.Add(new MiniYamlNode(waypointName, waypointReference.Save())); + } } } diff --git a/OpenRA.Mods.Common/UtilityCommands/ImportLegacyMapCommand.cs b/OpenRA.Mods.Common/UtilityCommands/ImportLegacyMapCommand.cs index ae3dfaf712..6837451240 100644 --- a/OpenRA.Mods.Common/UtilityCommands/ImportLegacyMapCommand.cs +++ b/OpenRA.Mods.Common/UtilityCommands/ImportLegacyMapCommand.cs @@ -277,11 +277,17 @@ namespace OpenRA.Mods.Common.UtilityCommands new OwnerInit("Neutral") }; - Map.ActorDefinitions.Add(new MiniYamlNode("waypoint" + kv.First, ar.Save())); + SaveWaypoint(kv.First, ar); } } } + public virtual void SaveWaypoint(int waypointNumber, ActorReference waypointReference) + { + var waypointName = "waypoint" + waypointNumber; + Map.ActorDefinitions.Add(new MiniYamlNode(waypointName, waypointReference.Save())); + } + void LoadSmudges(IniFile file, string section) { var scorches = new List(); diff --git a/OpenRA.Mods.RA/ImportRedAlertLegacyMapCommand.cs b/OpenRA.Mods.RA/ImportRedAlertLegacyMapCommand.cs index cd4db44f71..38d7bc7f7f 100644 --- a/OpenRA.Mods.RA/ImportRedAlertLegacyMapCommand.cs +++ b/OpenRA.Mods.RA/ImportRedAlertLegacyMapCommand.cs @@ -228,5 +228,13 @@ namespace OpenRA.Mods.RA.UtilityCommands base.ReadActors(file); LoadActors(file, "SHIPS", Players, MapSize, Map); } + + public override void SaveWaypoint(int waypointNumber, ActorReference waypointReference) + { + var waypointName = "waypoint" + waypointNumber; + if (waypointNumber == 98) + waypointName = "DefaultCameraPosition"; + Map.ActorDefinitions.Add(new MiniYamlNode(waypointName, waypointReference.Save())); + } } }