Merge pull request #13148 from obrakmann/fix13147_fix-rtb-dead-dest-race
Check for dead destination airfield in ReturnToBase
This commit is contained in:
@@ -43,12 +43,12 @@ namespace OpenRA.Mods.Common.Activities
|
|||||||
if (IsCanceled)
|
if (IsCanceled)
|
||||||
return NextActivity;
|
return NextActivity;
|
||||||
|
|
||||||
if (dest == null || Reservable.IsReserved(dest))
|
if (dest == null || dest.IsDead || Reservable.IsReserved(dest))
|
||||||
dest = ChooseHelipad(self);
|
dest = ChooseHelipad(self);
|
||||||
|
|
||||||
var initialFacing = heli.Info.InitialFacing;
|
var initialFacing = heli.Info.InitialFacing;
|
||||||
|
|
||||||
if (dest == null)
|
if (dest == null || dest.IsDead)
|
||||||
{
|
{
|
||||||
var rearmBuildings = heli.Info.RearmBuildings;
|
var rearmBuildings = heli.Info.RearmBuildings;
|
||||||
var nearestHpad = self.World.ActorsHavingTrait<Reservable>()
|
var nearestHpad = self.World.ActorsHavingTrait<Reservable>()
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ namespace OpenRA.Mods.Common.Activities
|
|||||||
|
|
||||||
void Calculate(Actor self)
|
void Calculate(Actor self)
|
||||||
{
|
{
|
||||||
if (dest == null || Reservable.IsReserved(dest))
|
if (dest == null || dest.IsDead || Reservable.IsReserved(dest))
|
||||||
dest = ChooseAirfield(self, true);
|
dest = ChooseAirfield(self, true);
|
||||||
|
|
||||||
if (dest == null)
|
if (dest == null)
|
||||||
@@ -116,7 +116,7 @@ namespace OpenRA.Mods.Common.Activities
|
|||||||
if (!isCalculated)
|
if (!isCalculated)
|
||||||
Calculate(self);
|
Calculate(self);
|
||||||
|
|
||||||
if (dest == null)
|
if (dest == null || dest.IsDead)
|
||||||
{
|
{
|
||||||
var nearestAfld = ChooseAirfield(self, false);
|
var nearestAfld = ChooseAirfield(self, false);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user