start removing weird ctors on Order

This commit is contained in:
Chris Forbes
2010-11-23 15:14:48 +13:00
parent 49ab704a84
commit 490b0801a0
16 changed files with 22 additions and 51 deletions

View File

@@ -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)

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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 );
}

View File

@@ -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;
}

View File

@@ -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>();
passenger.ResolveOrder( order.TargetActor, new Order( "EnterTransport", order.TargetActor, self, false ) );
passenger.ResolveOrder(order.TargetActor,
new Order("EnterTransport", order.TargetActor, false) { TargetActor = self });
}
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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 );

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -79,7 +79,7 @@ namespace OpenRA.Mods.RA
&& a.HasTrait<Selectable>()).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;

View File

@@ -76,8 +76,8 @@ namespace OpenRA.Mods.RA
&& a.HasTrait<IronCurtainable>()
&& a.HasTrait<Selectable>()).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 };
}
}