static Dictionary <SaveLanguages, string> ReadNameNodes(XmlNode parentNode) { Dictionary <SaveLanguages, string> names = new Dictionary <SaveLanguages, string>(); foreach (XmlNode nameNode in parentNode.ChildNodes) { SaveLanguages nameLang = (SaveLanguages)Enum.Parse(typeof(SaveLanguages), nameNode.Attributes["Language"].InnerText); names.Add(nameLang, nameNode.InnerText); } return(names); }
public bool LoadDirectory(string directory) { foreach (string file in Directory.EnumerateFiles(directory)) { using (FileStream stream = new FileStream(file, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)) { BinaryReader reader = new BinaryReader(stream); string signature = Encoding.ASCII.GetString(reader.ReadBytes(8)); stream.Seek(0, SeekOrigin.Begin); if (signature == Mori4Game.ExpectedFileSignature) { /* Derive save language from size of Mori4Game */ if (stream.Length == 0x865C) { SaveDataHandler.SaveLanguage = SaveLanguages.English; } else if (stream.Length == 0x84DC) { SaveDataHandler.SaveLanguage = SaveLanguages.Japanese; } else { throw new Exception("Unexpected size for file of type Mori4Game"); } } switch (signature) { case Mori4Option.ExpectedFileSignature: DataFiles.Add(new Mori4Option(stream)); break; case Mori4Map.ExpectedFileSignature: DataFiles.Add(new Mori4Map(stream)); break; case Mori4Game.ExpectedFileSignature: DataFiles.Add(new Mori4Game(stream)); break; case Mori4GdCard.ExpectedFileSignature: DataFiles.Add(new Mori4GdCard(stream)); break; } } } return(IsDataLoaded); }