30 lines
578 B
C#
30 lines
578 B
C#
using System.Collections.Generic;
|
|
|
|
namespace OpenRa
|
|
{
|
|
class VoicePool
|
|
{
|
|
readonly string[] clips;
|
|
readonly List<string> liveclips = new List<string>();
|
|
|
|
public VoicePool(params string[] clips)
|
|
{
|
|
this.clips = clips;
|
|
}
|
|
|
|
public string GetNext()
|
|
{
|
|
if (liveclips.Count == 0)
|
|
liveclips.AddRange(clips);
|
|
|
|
if (liveclips.Count == 0)
|
|
return null; /* avoid crashing if there's no clips at all */
|
|
|
|
var i = Game.CosmeticRandom.Next(liveclips.Count);
|
|
var s = liveclips[i];
|
|
liveclips.RemoveAt(i);
|
|
return s;
|
|
}
|
|
}
|
|
}
|