Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public void Add(ExdLanguage language, Exd data)
 {
     foreach (T entry in data.Entries)
     {
         entries[language].Add(entry.Index, entry);
     }
 }