Move voice playing for orders into a helper function

This commit is contained in:
abcdefg30
2019-12-12 22:35:55 +01:00
committed by reaperrr
parent 4d407da3e6
commit 959c750851

View File

@@ -51,26 +51,34 @@ namespace OpenRA
public static void PlayVoiceForOrders(this World w, Order[] orders)
{
// Find an actor with a phrase to say
// Find the first actor with a phrase to say
foreach (var o in orders)
{
if (o == null)
continue;
var orderSubject = o.Subject;
if (orderSubject == null || orderSubject.Disposed)
continue;
if (PlayVoiceForOrder(o))
return;
}
}
foreach (var voice in orderSubject.TraitsImplementing<IVoiced>())
static bool PlayVoiceForOrder(Order o)
{
var orderSubject = o.Subject;
if (orderSubject == null || orderSubject.Disposed)
return false;
foreach (var voice in orderSubject.TraitsImplementing<IVoiced>())
{
foreach (var v in orderSubject.TraitsImplementing<IOrderVoice>())
{
foreach (var v in orderSubject.TraitsImplementing<IOrderVoice>())
{
if (voice.PlayVoice(orderSubject, v.VoicePhraseForOrder(orderSubject, o),
orderSubject.Owner.Faction.InternalName))
return;
}
if (voice.PlayVoice(orderSubject, v.VoicePhraseForOrder(orderSubject, o),
orderSubject.Owner.Faction.InternalName))
return true;
}
}
return false;
}
}
}