From 71792a8f090a33b93379e04e9cc0fdd3b40cd32a Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Wed, 4 Aug 2010 18:23:06 +1200 Subject: [PATCH] fix crash on telling {sam,agun} to attack ground --- OpenRA.Mods.RA/AttackBase.cs | 2 +- OpenRA.Mods.RA/AttackTurreted.cs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.RA/AttackBase.cs b/OpenRA.Mods.RA/AttackBase.cs index 4deb961ffe..bf2f74e0ca 100644 --- a/OpenRA.Mods.RA/AttackBase.cs +++ b/OpenRA.Mods.RA/AttackBase.cs @@ -257,6 +257,6 @@ namespace OpenRA.Mods.RA public bool HasAnyValidWeapons(Target t) { return Weapons.Any(w => w.IsValidAgainst(t)); } public float GetMaximumRange() { return Weapons.Max(w => w.Info.Range); } - public Weapon ChooseWeaponForTarget(Target t) { return Weapons.First(w => w.IsValidAgainst(t)); } + public Weapon ChooseWeaponForTarget(Target t) { return Weapons.FirstOrDefault(w => w.IsValidAgainst(t)); } } } diff --git a/OpenRA.Mods.RA/AttackTurreted.cs b/OpenRA.Mods.RA/AttackTurreted.cs index 7eeea093f7..336f3fbe46 100644 --- a/OpenRA.Mods.RA/AttackTurreted.cs +++ b/OpenRA.Mods.RA/AttackTurreted.cs @@ -51,6 +51,8 @@ namespace OpenRA.Mods.RA const int RangeTolerance = 1; /* how far inside our maximum range we should try to sit */ /* todo: choose the appropriate weapon, when only one works against this target */ var weapon = ChooseWeaponForTarget(Target.FromOrder(order)); + if (weapon == null) + return; target = Target.FromOrder(order);