Add Aircraft.MakeReservation.

This provides a simpler method for making reservations and also ensures the previous reservation is definitely unreserved before being discarded.
This commit is contained in:
RoosterDragon
2015-10-27 22:15:56 +00:00
parent e2dd967757
commit b4180615a8
3 changed files with 18 additions and 37 deletions

View File

@@ -53,13 +53,7 @@ namespace OpenRA.Mods.Common.Activities
return Util.SequenceActivities(new HeliFly(self, Target.FromActor(nearestHpad)));
}
var res = dest.TraitOrDefault<Reservable>();
if (res != null)
{
heli.UnReserve();
heli.Reservation = res.Reserve(dest, self, heli);
}
heli.MakeReservation(dest);
var exit = dest.Info.TraitInfos<ExitInfo>().FirstOrDefault();
var offset = (exit != null) ? exit.SpawnOffset : WVec.Zero;

View File

@@ -50,12 +50,7 @@ namespace OpenRA.Mods.Common.Activities
if (dest == null)
return;
var res = dest.TraitOrDefault<Reservable>();
if (res != null)
{
plane.UnReserve();
plane.Reservation = res.Reserve(dest, self, plane);
}
plane.MakeReservation(dest);
var landPos = dest.CenterPosition;
var altitude = planeInfo.CruiseAltitude.Length;