public string[] FindVoices(DETAIL detail, Human.CULTIVATE cultivate, Human.CHARATYPE charaType) { string chara = FirstCharToUpper(charaType.ToString()); string cult = FirstCharToUpper(cultivate.ToString()); string detailStr = detail.ToString(); string lookupString = String.Format("{0}-{1}-{2}", chara, cult, detailStr); if (cacheResults && cache.ContainsKey(lookupString)) { return(cache[lookupString]); } var results = new List <string>(); int i = 0; foreach (var folder in GetFolderList(chara, cult, detailStr)) { results.AddRange(GetMusicFiles(folder, i++ < 4)); if (results.Count > 0 && useFallback) { break; } } var resultsArr = results.ToArray(); if (cacheResults) { cache[lookupString] = resultsArr; } return(resultsArr); }
private IEnumerable <OneVoice> GetFallbacks(Human.CULTIVATE cultivate) { return(Fallbacks.Where(v => v.hasVoice[(int)cultivate])); }