diff --git a/OpenRA.Game/Network/UnitOrders.cs b/OpenRA.Game/Network/UnitOrders.cs index 843d153d5e..c32870654a 100644 --- a/OpenRA.Game/Network/UnitOrders.cs +++ b/OpenRA.Game/Network/UnitOrders.cs @@ -237,7 +237,7 @@ namespace OpenRA.Network return; var targetPlayer = order.Player.World.Players.FirstOrDefault(p => p.InternalName == order.TargetString); - var newStance = (Stance)order.TargetLocation.X; + var newStance = (Stance)order.ExtraData; SetPlayerStance(world, order.Player, targetPlayer, newStance); diff --git a/OpenRA.Mods.RA/AutoTarget.cs b/OpenRA.Mods.RA/AutoTarget.cs index 2b03ff1891..ef1ef7ea26 100644 --- a/OpenRA.Mods.RA/AutoTarget.cs +++ b/OpenRA.Mods.RA/AutoTarget.cs @@ -66,7 +66,7 @@ namespace OpenRA.Mods.RA public void ResolveOrder(Actor self, Order order) { if (order.OrderString == "SetUnitStance" && info.EnableStances) - Stance = (UnitStance)order.TargetLocation.X; + Stance = (UnitStance)order.ExtraData; } public void Damaged(Actor self, AttackInfo e) diff --git a/OpenRA.Mods.RA/Widgets/Logic/DiplomacyLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/DiplomacyLogic.cs index d336ddbc7b..d4d02722df 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/DiplomacyLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/DiplomacyLogic.cs @@ -87,9 +87,11 @@ namespace OpenRA.Mods.RA.Widgets.Logic if (!p.World.LobbyInfo.GlobalSettings.FragileAlliances) return; // stance changes are banned - // HACK: Abuse of the type system here with `CPos` world.IssueOrder(new Order("SetStance", world.LocalPlayer.PlayerActor, false) - { TargetLocation = new CPos((int)ss, 0), TargetString = p.InternalName, SuppressVisualFeedback = true }); + { + ExtraData = (uint)ss, + TargetString = p.InternalName, + }); bw.Text = ss.ToString(); } diff --git a/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs b/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs index 014decb26e..19776dbb13 100644 --- a/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs +++ b/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs @@ -164,8 +164,7 @@ namespace OpenRA.Mods.RA.Widgets if (at != null) at.PredictedStance = nextStance; - // FIXME: Abuse of the type system here with `CPos` - return new Order("SetUnitStance", a, false) { TargetLocation = new CPos((int)nextStance, 0), SuppressVisualFeedback = true }; + return new Order("SetUnitStance", a, false) { ExtraData = (uint)nextStance }; }); Game.Debug("Unit stance set to: {0}".F(nextStance));