From 0e4b1d28aa07f04f1eb8134c273ecbb5d6450257 Mon Sep 17 00:00:00 2001 From: Squiggles211 Date: Thu, 22 May 2014 01:34:34 -0500 Subject: [PATCH] Fixes #4955 aircraft reservation crash Fixes the specific cause of the crash reported in #4955 with HeliReturn and adds an UnReserve call while attempting to reserve spawn building in Aircraft.cs --- OpenRA.Mods.RA/Air/Aircraft.cs | 4 ++++ OpenRA.Mods.RA/Air/HeliReturn.cs | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/OpenRA.Mods.RA/Air/Aircraft.cs b/OpenRA.Mods.RA/Air/Aircraft.cs index aff9c13b31..1fab8f902d 100755 --- a/OpenRA.Mods.RA/Air/Aircraft.cs +++ b/OpenRA.Mods.RA/Air/Aircraft.cs @@ -80,8 +80,12 @@ namespace OpenRA.Mods.RA.Air return; var res = afld.Trait(); + if (res != null) + { + UnReserve(); Reservation = res.Reserve(afld, self, this); + } } public void UnReserve() diff --git a/OpenRA.Mods.RA/Air/HeliReturn.cs b/OpenRA.Mods.RA/Air/HeliReturn.cs index fe79071828..d2a525b544 100755 --- a/OpenRA.Mods.RA/Air/HeliReturn.cs +++ b/OpenRA.Mods.RA/Air/HeliReturn.cs @@ -47,9 +47,12 @@ namespace OpenRA.Mods.RA.Air var res = dest.TraitOrDefault(); var heli = self.Trait(); - if (res != null) - heli.Reservation = res.Reserve(dest, self, heli); + if (res != null) + { + heli.UnReserve(); + heli.Reservation = res.Reserve(dest, self, heli); + } var exit = dest.Info.Traits.WithInterface().FirstOrDefault(); var offset = (exit != null) ? exit.SpawnOffset : WVec.Zero;