From 97084effac73c5616951d799c8a6138adbe25994 Mon Sep 17 00:00:00 2001 From: reaperrr Date: Thu, 6 Jun 2019 01:50:08 +0200 Subject: [PATCH] Improve Aircraft firstTick code - Remove ReserveSpawnBuilding: Only used in one place, and removing it avoids a double GetActorBelow() look-up. - Remove FallsToEarth check form Aircraft.firstTick: Aircraft triggers UnReserve() on actor disposal, so this work-around should no longer be necessary. --- OpenRA.Mods.Common/Traits/Air/Aircraft.cs | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs index de11416cd7..9cbc1a34ad 100644 --- a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs +++ b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs @@ -321,16 +321,12 @@ namespace OpenRA.Mods.Common.Traits { firstTick = false; - // TODO: Aircraft husks don't properly unreserve. - if (self.Info.HasTraitInfo()) - return; - - ReserveSpawnBuilding(); - var host = GetActorBelow(); if (host == null) return; + MakeReservation(host); + if (Info.TakeOffOnCreation) self.QueueActivity(new TakeOff(self)); } @@ -478,16 +474,6 @@ namespace OpenRA.Mods.Common.Traits .FirstOrDefault(a => a.Info.HasTraitInfo()); } - protected void ReserveSpawnBuilding() - { - // HACK: Not spawning in the air, so try to associate with our spawner. - var spawner = GetActorBelow(); - if (spawner == null) - return; - - MakeReservation(spawner); - } - public void MakeReservation(Actor target) { UnReserve();