From 7d19e2562759767c6ab34e1470729e5271e54a0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 28 Dec 2013 16:50:03 +0100 Subject: [PATCH] don't crash on empty orders --- OpenRA.Game/Widgets/WorldInteractionControllerWidget.cs | 6 +++++- OpenRA.Game/WorldUtils.cs | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/OpenRA.Game/Widgets/WorldInteractionControllerWidget.cs b/OpenRA.Game/Widgets/WorldInteractionControllerWidget.cs index 893177e572..f332424a39 100644 --- a/OpenRA.Game/Widgets/WorldInteractionControllerWidget.cs +++ b/OpenRA.Game/Widgets/WorldInteractionControllerWidget.cs @@ -138,7 +138,8 @@ namespace OpenRA.Widgets void ApplyOrders(World world, int2 xy, MouseInput mi) { - if (world.OrderGenerator == null) return; + if (world.OrderGenerator == null) + return; var pos = worldRenderer.Position(xy); var orders = world.OrderGenerator.Order(world, pos.ToCPos(), mi).ToArray(); @@ -149,6 +150,9 @@ namespace OpenRA.Widgets foreach (var order in orders) { var o = order; + if (o == null) + continue; + if (!flashed) { if (o.TargetActor != null) diff --git a/OpenRA.Game/WorldUtils.cs b/OpenRA.Game/WorldUtils.cs index db9d5f9c6c..7dbdaa9503 100755 --- a/OpenRA.Game/WorldUtils.cs +++ b/OpenRA.Game/WorldUtils.cs @@ -158,7 +158,12 @@ namespace OpenRA // Find an actor with a phrase to say foreach (var o in orders) { - if (o.Subject.Destroyed) continue; + if (o == null) + continue; + + if (o.Subject.Destroyed) + continue; + foreach (var v in o.Subject.TraitsImplementing()) if (Sound.PlayVoice(v.VoicePhraseForOrder(o.Subject, o), o.Subject, o.Subject.Owner.Country.Race))