fix crash on selecting husks (and other things with Unit but Selectable.Voice = null)

This commit is contained in:
Chris Forbes
2010-07-07 21:27:34 +12:00
parent fb1d37ae53
commit 12a350b89f
3 changed files with 7 additions and 7 deletions

View File

@@ -48,11 +48,6 @@ namespace OpenRA
}
}
static bool HasVoice(Actor a)
{
return a.Info.Traits.Contains<SelectableInfo>() && a.Info.Traits.Get<SelectableInfo>().Voice != null;
}
void ApplyOrders(World world, float2 xy, MouseInput mi)
{
if (orderGenerator == null) return;
@@ -61,7 +56,7 @@ namespace OpenRA
Game.orderManager.IssueOrders( orders );
var voicedActor = orders.Select(o => o.Subject)
.FirstOrDefault(a => a.Owner == world.LocalPlayer && HasVoice(a));
.FirstOrDefault(a => a.Owner == world.LocalPlayer && a.HasVoice());
var isMove = orders.Any(o => o.OrderString == "Move");
var isAttack = orders.Any( o => o.OrderString == "Attack" );

View File

@@ -41,7 +41,7 @@ namespace OpenRA
else
actors = (isCombine ? oldSelection.Union(newSelection) : newSelection).ToList();
var voicedUnit = actors.FirstOrDefault(a => a.traits.Contains<Unit>() && a.Owner == world.LocalPlayer);
var voicedUnit = actors.FirstOrDefault(a => a.Owner == world.LocalPlayer && a.HasVoice());
Sound.PlayVoice("Select", voicedUnit);
foreach (var ns in world.WorldActor.traits.WithInterface<INotifySelection>())

View File

@@ -222,5 +222,10 @@ namespace OpenRA
return "{0:D2}:{1:D2}".F(minutes, seconds % 60);
}
public static bool HasVoice(this Actor a)
{
return a.Info.Traits.Contains<SelectableInfo>() && a.Info.Traits.Get<SelectableInfo>().Voice != null;
}
}
}