public void SetSettings(XmlNode settings) { setDefaults(); XmlElement element = (XmlElement)settings; if (!element.IsEmpty) { if (element[LOG_KEY] != null) { LogLocation = element[LOG_KEY].InnerText; } if (element[LOAD_REMOVAL_FLAG] != null) { LoadRemovalEnabled = bool.Parse(element[LOAD_REMOVAL_FLAG].InnerText); } if (element[AUTO_SPLIT_FLAG] != null) { AutoSplitEnabled = bool.Parse(element[AUTO_SPLIT_FLAG].InnerText); } if (element[SPLIT_LABYRINTH_TYPE] != null) { LabSplitType = (LabSplitMode)Enum.Parse(typeof(LabSplitMode), element[SPLIT_LABYRINTH_TYPE].InnerText); } if (element[SPLIT_CRITERIA] != null) { CriteriaToSplit = (SplitCriteria)Enum.Parse(typeof(SplitCriteria), element[SPLIT_CRITERIA].InnerText); } if (element[GENERATE_WITH_ICONS] != null) { GenerateWithIcons = bool.Parse(element[GENERATE_WITH_ICONS].InnerText); } if (element[SPLIT_ZONES] != null) { HashSet <string> deserialized = DeserializeZones(element[SPLIT_ZONES]); foreach (Zone zone in Zone.ZONES) { if (deserialized.Contains(zone.Serialize())) { SplitZones.Add(zone); } } } if (element[SPLIT_LEVELS] != null) { foreach (XmlNode child in element[SPLIT_LEVELS].GetElementsByTagName(SPLIT_LEVEL)) { SplitLevels.Add(Int32.Parse(child.InnerText)); } } if (element[LEGACY_SPLIT_LABYRINTH] != null && bool.Parse(element[LEGACY_SPLIT_LABYRINTH].InnerText)) { // Override to support old split settings. CriteriaToSplit = SplitCriteria.Labyrinth; } } }
private void setDefaults() { AutoSplitEnabled = true; LoadRemovalEnabled = false; LabSplitType = LabSplitMode.AllZones; GenerateWithIcons = true; CriteriaToSplit = SplitCriteria.Zones; logLocation = DEFAULT_LOG_LOCATION; SplitZones = new HashSet <IZone>(); SplitLevels = new HashSet <int>(); }