diff --git a/OpenRA.Game/Network/Order.cs b/OpenRA.Game/Network/Order.cs index c296d9dbfa..cca62d338a 100755 --- a/OpenRA.Game/Network/Order.cs +++ b/OpenRA.Game/Network/Order.cs @@ -33,43 +33,15 @@ namespace OpenRA } } - public sealed class _Order - { - public readonly string OrderString; - public readonly Actor Subject; - public Actor TargetActor; - public int2 TargetLocation; - public string TargetString; - public bool Queued; - public int2 ExtraLocation; - - public _Order(Actor subject, string orderString) - { - this.Subject = subject; - this.OrderString = orderString; - } - - public static implicit operator Order(_Order o) - { - return new Order(o.OrderString, - o.Subject, - o.TargetActor, - o.TargetLocation, - o.TargetString, - o.Queued, - o.ExtraLocation); - } - } - public sealed class Order { public readonly string OrderString; public readonly Actor Subject; - public readonly Actor TargetActor; - public readonly int2 TargetLocation; - public readonly string TargetString; public readonly bool Queued; - public readonly int2 ExtraLocation; + public Actor TargetActor; + public int2 TargetLocation; + public string TargetString; + public int2 ExtraLocation; public bool IsImmediate; public Player Player { get { return Subject.Owner; } } @@ -88,8 +60,6 @@ namespace OpenRA public Order(string orderString, Actor subject, bool queued) : this(orderString, subject, null, int2.Zero, null, queued, int2.Zero) { } - public Order(string orderString, Actor subject, Actor targetActor, bool queued) - : this(orderString, subject, targetActor, int2.Zero, null, queued, int2.Zero) { } public Order(string orderString, Actor subject, int2 targetLocation, bool queued) : this(orderString, subject, null, targetLocation, null, queued, int2.Zero) { } public Order(string orderString, Actor subject, string targetString, bool queued) diff --git a/OpenRA.Mods.RA/Air/Helicopter.cs b/OpenRA.Mods.RA/Air/Helicopter.cs index 63c649f414..5145ea0650 100755 --- a/OpenRA.Mods.RA/Air/Helicopter.cs +++ b/OpenRA.Mods.RA/Air/Helicopter.cs @@ -54,7 +54,7 @@ namespace OpenRA.Mods.RA.Air public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued ) { if( order.OrderID == "Enter" ) - return new Order( order.OrderID, self, target.Actor, queued ); + return new Order(order.OrderID, self, queued) { TargetActor = target.Actor }; if( order.OrderID == "Move" ) return new Order( order.OrderID, self, Util.CellContaining( target.CenterLocation ), queued ); diff --git a/OpenRA.Mods.RA/Air/Plane.cs b/OpenRA.Mods.RA/Air/Plane.cs index 4a6c9f6492..82517d076b 100755 --- a/OpenRA.Mods.RA/Air/Plane.cs +++ b/OpenRA.Mods.RA/Air/Plane.cs @@ -63,7 +63,7 @@ namespace OpenRA.Mods.RA.Air public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued ) { if( order.OrderID == "Enter" ) - return new Order( order.OrderID, self, target.Actor, queued ); + return new Order(order.OrderID, self, queued) { TargetActor = target.Actor }; if( order.OrderID == "Move" ) return new Order( order.OrderID, self, Util.CellContaining( target.CenterLocation ), queued ); diff --git a/OpenRA.Mods.RA/AttackBase.cs b/OpenRA.Mods.RA/AttackBase.cs index e10046f4da..5bc51c2f70 100644 --- a/OpenRA.Mods.RA/AttackBase.cs +++ b/OpenRA.Mods.RA/AttackBase.cs @@ -138,7 +138,7 @@ namespace OpenRA.Mods.RA if( order is AttackOrderTargeter ) { if( target.IsActor ) - return new Order( "Attack", self, target.Actor, queued ); + return new Order("Attack", self, queued) { TargetActor = target.Actor }; else return new Order( "Attack", self, Util.CellContaining( target.CenterLocation ), queued ); } diff --git a/OpenRA.Mods.RA/C4Demolition.cs b/OpenRA.Mods.RA/C4Demolition.cs index e276d5f38a..ee27be0069 100644 --- a/OpenRA.Mods.RA/C4Demolition.cs +++ b/OpenRA.Mods.RA/C4Demolition.cs @@ -34,7 +34,7 @@ namespace OpenRA.Mods.RA public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued ) { if( order.OrderID == "C4" ) - return new Order( "C4", self, target.Actor, queued ); + return new Order("C4", self, queued) { TargetActor = target.Actor }; return null; } diff --git a/OpenRA.Mods.RA/Cargo.cs b/OpenRA.Mods.RA/Cargo.cs index 2f2bfab7a0..b564fed69e 100644 --- a/OpenRA.Mods.RA/Cargo.cs +++ b/OpenRA.Mods.RA/Cargo.cs @@ -50,7 +50,7 @@ namespace OpenRA.Mods.RA return new Order( order.OrderID, self, queued ); if( order.OrderID == "ReverseEnterTransport" ) - return new Order( order.OrderID, self, target.Actor, queued ); + return new Order(order.OrderID, self, queued) { TargetActor = target.Actor }; return null; } @@ -71,7 +71,8 @@ namespace OpenRA.Mods.RA if( order.TargetActor != null && order.Subject.Owner == order.TargetActor.Owner ) { var passenger = order.TargetActor.Trait(); - passenger.ResolveOrder( order.TargetActor, new Order( "EnterTransport", order.TargetActor, self, false ) ); + passenger.ResolveOrder(order.TargetActor, + new Order("EnterTransport", order.TargetActor, false) { TargetActor = self }); } } } diff --git a/OpenRA.Mods.RA/EngineerCapture.cs b/OpenRA.Mods.RA/EngineerCapture.cs index 0d652655ab..7b2edfc1d4 100644 --- a/OpenRA.Mods.RA/EngineerCapture.cs +++ b/OpenRA.Mods.RA/EngineerCapture.cs @@ -33,7 +33,7 @@ namespace OpenRA.Mods.RA public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued ) { if( order.OrderID == "CaptureBuilding" ) - return new Order( order.OrderID, self, target.Actor, queued ); + return new Order(order.OrderID, self, queued) { TargetActor = target.Actor }; return null; } diff --git a/OpenRA.Mods.RA/EngineerRepair.cs b/OpenRA.Mods.RA/EngineerRepair.cs index 7555f6ff26..280c2d6a7d 100644 --- a/OpenRA.Mods.RA/EngineerRepair.cs +++ b/OpenRA.Mods.RA/EngineerRepair.cs @@ -30,7 +30,7 @@ namespace OpenRA.Mods.RA public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued ) { if( order.OrderID == "EngineerRepair" ) - return new Order( order.OrderID, self, target.Actor, queued ); + return new Order(order.OrderID, self, queued) { TargetActor = target.Actor }; return null; } diff --git a/OpenRA.Mods.RA/Harvester.cs b/OpenRA.Mods.RA/Harvester.cs index aacf358f4b..5c2a8e7c45 100644 --- a/OpenRA.Mods.RA/Harvester.cs +++ b/OpenRA.Mods.RA/Harvester.cs @@ -106,7 +106,7 @@ namespace OpenRA.Mods.RA public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued ) { if( order.OrderID == "Deliver" ) - return new Order( order.OrderID, self, target.Actor, queued ); + return new Order(order.OrderID, self, queued) { TargetActor = target.Actor }; if( order.OrderID == "Harvest" ) return new Order( order.OrderID, self, Util.CellContaining( target.CenterLocation ), queued ); diff --git a/OpenRA.Mods.RA/Passenger.cs b/OpenRA.Mods.RA/Passenger.cs index bf662812dc..11507841e0 100644 --- a/OpenRA.Mods.RA/Passenger.cs +++ b/OpenRA.Mods.RA/Passenger.cs @@ -45,7 +45,7 @@ namespace OpenRA.Mods.RA public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued ) { if( order.OrderID == "EnterTransport" ) - return new Order( order.OrderID, self, target.Actor, queued ); + return new Order(order.OrderID, self, queued) { TargetActor = target.Actor }; return null; } diff --git a/OpenRA.Mods.RA/Render/RenderSpy.cs b/OpenRA.Mods.RA/Render/RenderSpy.cs index 2ecb02cb7a..5a9282dd8d 100755 --- a/OpenRA.Mods.RA/Render/RenderSpy.cs +++ b/OpenRA.Mods.RA/Render/RenderSpy.cs @@ -65,7 +65,7 @@ namespace OpenRA.Mods.RA.Render public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued ) { if( order.OrderID == "Disguise" ) - return new Order( order.OrderID, self, target.Actor, queued ); + return new Order(order.OrderID, self, queued) { TargetActor = target.Actor }; return null; } diff --git a/OpenRA.Mods.RA/Repairable.cs b/OpenRA.Mods.RA/Repairable.cs index 88d879bd28..3a61afa328 100644 --- a/OpenRA.Mods.RA/Repairable.cs +++ b/OpenRA.Mods.RA/Repairable.cs @@ -45,7 +45,7 @@ namespace OpenRA.Mods.RA public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued ) { if( order.OrderID == "Repair" ) - return new Order( order.OrderID, self, target.Actor, queued ); + return new Order(order.OrderID, self, queued) { TargetActor = target.Actor }; return null; } diff --git a/OpenRA.Mods.RA/RepairableNear.cs b/OpenRA.Mods.RA/RepairableNear.cs index d2a0fe6529..4fab2f03ad 100644 --- a/OpenRA.Mods.RA/RepairableNear.cs +++ b/OpenRA.Mods.RA/RepairableNear.cs @@ -45,7 +45,7 @@ namespace OpenRA.Mods.RA public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued ) { if( order.OrderID == "RepairNear" ) - return new Order( order.OrderID, self, target.Actor, queued ); + return new Order(order.OrderID, self, queued) { TargetActor = target.Actor }; return null; } diff --git a/OpenRA.Mods.RA/Spy.cs b/OpenRA.Mods.RA/Spy.cs index 57dc2424fe..a1bc50c552 100644 --- a/OpenRA.Mods.RA/Spy.cs +++ b/OpenRA.Mods.RA/Spy.cs @@ -29,7 +29,7 @@ namespace OpenRA.Mods.RA public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued ) { if( order.OrderID == "SpyInfiltrate" ) - return new Order( order.OrderID, self, target.Actor, queued ); + return new Order(order.OrderID, self, queued) { TargetActor = target.Actor }; return null; } diff --git a/OpenRA.Mods.RA/SupportPowers/ChronoshiftPower.cs b/OpenRA.Mods.RA/SupportPowers/ChronoshiftPower.cs index 680b85053d..f60b4acfd4 100755 --- a/OpenRA.Mods.RA/SupportPowers/ChronoshiftPower.cs +++ b/OpenRA.Mods.RA/SupportPowers/ChronoshiftPower.cs @@ -79,7 +79,7 @@ namespace OpenRA.Mods.RA && a.HasTrait()).FirstOrDefault(); if (underCursor != null) - yield return new Order("ChronosphereSelect", world.LocalPlayer.PlayerActor, underCursor, false); + yield return new Order("ChronosphereSelect", world.LocalPlayer.PlayerActor, false) { TargetActor = underCursor }; } yield break; diff --git a/OpenRA.Mods.RA/SupportPowers/IronCurtainPower.cs b/OpenRA.Mods.RA/SupportPowers/IronCurtainPower.cs index 5a266f92ce..e0968def87 100755 --- a/OpenRA.Mods.RA/SupportPowers/IronCurtainPower.cs +++ b/OpenRA.Mods.RA/SupportPowers/IronCurtainPower.cs @@ -76,8 +76,8 @@ namespace OpenRA.Mods.RA && a.HasTrait() && a.HasTrait()).FirstOrDefault(); - if( underCursor != null ) - yield return new Order( "IronCurtain", underCursor.Owner.PlayerActor, underCursor, false ); + if (underCursor != null) + yield return new Order("IronCurtain", underCursor.Owner.PlayerActor, false) { TargetActor = underCursor }; } }