Change Exit.SpawnOffsetVector to WVec.

This commit is contained in:
Paul Chote
2013-07-21 10:08:48 +12:00
parent ac3f63b59c
commit 36a45d1a3f
4 changed files with 9 additions and 10 deletions

View File

@@ -51,8 +51,7 @@ namespace OpenRA.Mods.RA.Air
heli.reservation = res.Reserve(dest, self, heli);
var exit = dest.Info.Traits.WithInterface<ExitInfo>().FirstOrDefault();
var offset = (exit == null) ? WVec.Zero :
new WVec(exit.SpawnOffsetVector.X, exit.SpawnOffsetVector.Y, 0) * 1024 / Game.CellSize;
var offset = (exit != null) ? exit.SpawnOffsetVector : WVec.Zero;
return Util.SequenceActivities(
new HeliFly(dest.CenterPosition + offset),

View File

@@ -72,8 +72,7 @@ namespace OpenRA.Mods.RA.Air
reservation = res.Reserve(order.TargetActor, self, this);
var exit = order.TargetActor.Info.Traits.WithInterface<ExitInfo>().FirstOrDefault();
var offset = (exit == null) ? WVec.Zero :
new WVec(exit.SpawnOffsetVector.X, exit.SpawnOffsetVector.Y, 0) * 1024 / Game.CellSize;
var offset = (exit != null) ? exit.SpawnOffsetVector : WVec.Zero;
self.SetTargetLine(Target.FromActor(order.TargetActor), Color.Green);

View File

@@ -217,8 +217,7 @@ namespace OpenRA.Mods.RA.Missions
cargo.Load(chinook, world.CreateActor(false, ChinookCargo.Random(world.SharedRandom), allies, null, null));
var exit = lz.Info.Traits.WithInterface<ExitInfo>().FirstOrDefault();
var offset = (exit == null) ? WVec.Zero :
new WVec(exit.SpawnOffsetVector.X, exit.SpawnOffsetVector.Y, 0) * 1024 / Game.CellSize;
var offset = (exit != null) ? exit.SpawnOffsetVector : WVec.Zero;
chinook.QueueActivity(new HeliFly(lz.CenterPosition + offset)); // no reservation of hpad but it's not needed
chinook.QueueActivity(new Turn(0));

View File

@@ -34,9 +34,11 @@ namespace OpenRA.Mods.RA
public readonly int2 ExitCell = int2.Zero; // in cells relative to TopLeft
public readonly int Facing = -1;
public PVecInt SpawnOffsetVector { get { return (PVecInt)SpawnOffset; } }
// TODO: Push this conversion into the yaml
public WVec SpawnOffsetVector { get { return new WVec(SpawnOffset.X, SpawnOffset.Y, 0) * 1024 / Game.CellSize; } }
public CVec ExitCellVector { get { return (CVec)ExitCell; } }
}
public class Exit { }
public class Production
@@ -50,7 +52,7 @@ namespace OpenRA.Mods.RA
public void DoProduction(Actor self, ActorInfo producee, ExitInfo exitinfo)
{
var exit = self.Location + exitinfo.ExitCellVector;
var spawn = (self.Trait<IHasLocation>().PxPosition + exitinfo.SpawnOffsetVector).ToWPos(0);
var spawn = self.CenterPosition + exitinfo.SpawnOffsetVector;
var to = exit.CenterPosition;
var fi = producee.Traits.Get<IFacingInfo>();