public void LoadAudioHeaders(string basePath, DuplicateBehavior behavior) { var parser = new AudioHeadersParser(); foreach (var path in HeaderPaths) { foreach (var header in parser.ParseFile(basePath + path.Item2, path.Item1, path.Item3)) { var reducedName = header.Name; bool reduced = reducedName.EndsWith($"_{header.Bank}"); if (reduced) { reducedName = reducedName.Substring(0, reducedName.Length - 2); } if (behavior != DuplicateBehavior.LeaveEverythingUntouched) { if (reduced) { if (Headers.ContainsKey(reducedName) && behavior == DuplicateBehavior.NormalizeAndRemoveDuplicates) { Console.WriteLine($"Ignoring duplicate header {header.Name}"); continue; } header.Name = reducedName; } } if (NoiseInstruments.Contains(reducedName)) { header.ResourceType = ResourceType.NoiseInstrument; } else if (PokemonCries.Contains(reducedName)) { header.ResourceType = ResourceType.Cry; } Headers[header.Name] = header; } } }
public AudioLibrary(string basePath, DuplicateBehavior behavior = DuplicateBehavior.NormalizeAndRemoveDuplicates) { LoadAudioSequences(basePath); LoadAudioHeaders(basePath, behavior); CheckReferences(); }