Move voice playing for orders into a helper function
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user