/// <summary> /// Parses files found in the WoW archives. /// </summary> /// <param name="searchPattern"></param> /// <param name="useParallelization"></param> /// <returns></returns> public IEnumerable <IFormat> EnumerateArchives(string searchPattern = "*", bool useParallelization = true) { var archives = _directoryReader.GetArchives("*", true); var fileLookup = _mpqReader.GetFileLookup(archives, searchPattern).AsParallel(); if (!useParallelization) { fileLookup = fileLookup.WithDegreeOfParallelism(1); } return(fileLookup.Select(lookup => _mpqReader.ReadFile(lookup.Key, lookup.Value))); }