voices now support prefixes

required for d2k
This commit is contained in:
Matthias Mailänder
2012-06-21 15:31:12 +02:00
parent 033dd10192
commit 6bc3249685
7 changed files with 41 additions and 83 deletions

View File

@@ -18,8 +18,10 @@ namespace OpenRA.GameRules
public class VoiceInfo
{
[FieldLoader.Ignore] public readonly Dictionary<string,string[]> Variants;
[FieldLoader.Ignore] public readonly Dictionary<string,string[]> Prefixes;
[FieldLoader.Ignore] public readonly Dictionary<string,string[]> Voices;
public readonly string DefaultVariant = ".aud" ;
public readonly string DefaultPrefix = "" ;
public readonly string[] DisableVariants = { };
static Dictionary<string, string[]> Load( MiniYaml y, string name )
@@ -37,6 +39,7 @@ namespace OpenRA.GameRules
{
FieldLoader.Load( this, y );
Variants = Load(y, "Variants");
Prefixes = Load(y, "Prefixes");
Voices = Load(y, "Voices");
if (!Voices.ContainsKey("Attack"))

View File

@@ -259,7 +259,9 @@ namespace OpenRA
var variantExt = (vi.Variants.ContainsKey(variant) && !vi.DisableVariants.Contains(phrase)) ?
vi.Variants[variant][voicedUnit.ActorID % vi.Variants[variant].Length] : vi.DefaultVariant;
Play(clip + variantExt);
var prefix = (vi.Prefixes.ContainsKey(variant)) ?
vi.Prefixes[variant][voicedUnit.ActorID % vi.Prefixes[variant].Length] : vi.DefaultPrefix;
Play(prefix + clip + variantExt);
return true;
}
}