From dd89aa1d48748bd3cf63f837f836b0c34787ef72 Mon Sep 17 00:00:00 2001 From: Oliver Brakmann Date: Sat, 11 Jul 2015 11:46:40 +0200 Subject: [PATCH] Fix an NRE during building placement under rare circumstances Happens when the last conyard vanishes at the same time a building is picked up for placement. --- OpenRA.Mods.Common/Orders/PlaceBuildingOrderGenerator.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Orders/PlaceBuildingOrderGenerator.cs b/OpenRA.Mods.Common/Orders/PlaceBuildingOrderGenerator.cs index 6c0da3f9e6..f107a7e41c 100644 --- a/OpenRA.Mods.Common/Orders/PlaceBuildingOrderGenerator.cs +++ b/OpenRA.Mods.Common/Orders/PlaceBuildingOrderGenerator.cs @@ -49,7 +49,8 @@ namespace OpenRA.Mods.Common.Orders buildingInfo = info.Traits.Get(); var buildableInfo = info.Traits.Get(); - race = buildableInfo.ForceRace ?? queue.MostLikelyProducer().Trait.Race; + var mostLikelyProducer = queue.MostLikelyProducer(); + race = buildableInfo.ForceRace ?? (mostLikelyProducer.Trait != null ? mostLikelyProducer.Trait.Race : producer.Owner.Country.Race); buildOk = map.SequenceProvider.GetSequence("overlay", "build-valid-{0}".F(tileset)).GetSprite(0); buildBlocked = map.SequenceProvider.GetSequence("overlay", "build-invalid").GetSprite(0);