public static ExdTable <T> Load(string name) { var header = new Exh(name); var exdTable = new ExdTable <T>(header); foreach (ExdLanguage language in header.Languages) { for (uint i = 0u; i < header.Pages.Length; i++) { string exdPath = Path.Combine(Path.GetDirectoryName(name) ?? "", $"{Path.GetFileNameWithoutExtension(name)}_{header.Pages[i].Id}"); if (language != ExdLanguage.None) { exdPath += $"_{language.ToString().ToLower()}"; } exdPath = Path.ChangeExtension(exdPath, ".exd"); // some EXH files contain language codes but don't have the associated EXD files if (!File.Exists(exdPath)) { continue; } var exd = new Exd(); exd.Load <T>(exdPath, header, i); exdTable.Add(language, exd); } } return(exdTable); }
public void Add(ExdLanguage language, Exd data) { foreach (T entry in data.Entries) { entries[language].Add(entry.Index, entry); } }