From 493dec031b2ed6f2d19ca07cfaf580a3ab659d71 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 31 May 2010 14:24:35 +1200 Subject: [PATCH] allow queueing on Mobile --- OpenRA.Game/Network/Order.cs | 2 ++ OpenRA.Game/Traits/Mobile.cs | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/OpenRA.Game/Network/Order.cs b/OpenRA.Game/Network/Order.cs index ebc74817ac..2ead383e08 100755 --- a/OpenRA.Game/Network/Order.cs +++ b/OpenRA.Game/Network/Order.cs @@ -53,6 +53,8 @@ namespace OpenRA : this(orderString, subject, targetActor, int2.Zero, null, false) { } public Order(string orderString, Actor subject, int2 targetLocation) : this(orderString, subject, null, targetLocation, null, false) { } + public Order(string orderString, Actor subject, int2 targetLocation, bool queued) + : this(orderString, subject, null, targetLocation, null, queued) { } public Order(string orderString, Actor subject, string targetString) : this(orderString, subject, null, int2.Zero, targetString, false) { } public Order(string orderString, Actor subject, Actor targetActor, int2 targetLocation) diff --git a/OpenRA.Game/Traits/Mobile.cs b/OpenRA.Game/Traits/Mobile.cs index f8690fac56..505034cfd8 100644 --- a/OpenRA.Game/Traits/Mobile.cs +++ b/OpenRA.Game/Traits/Mobile.cs @@ -87,7 +87,7 @@ namespace OpenRA.Traits var umt = self.Info.Traits.Get().MovementType; if (Util.GetEffectiveSpeed(self,umt) == 0) return null; /* allow disabling move orders from modifiers */ if (xy == toCell) return null; - return new Order("Move", self, xy); + return new Order("Move", self, xy, mi.Modifiers.HasModifier(Modifiers.Shift)); } public void ResolveOrder(Actor self, Order order) @@ -96,7 +96,7 @@ namespace OpenRA.Traits { if (self.traits.GetOrDefault().CanEnterCell(order.TargetLocation)) { - self.CancelActivity(); + if( !order.Queued ) self.CancelActivity(); self.QueueActivity(new Activities.Move(order.TargetLocation, 8)); } }