/// <summary> /// Create a HashTable with the needed Names from the UI xml File /// </summary> void ParseXml() { map = new Hashtable(); Interfaces.Scenegraph.IScenegraphFileIndexItem[] items = FileTable.FileIndex.FindFile(0x00000000, 0xCDA53B6F, 0x2D7EE26B); if (items.Length > 0) { SimPe.PackedFiles.Wrapper.Xml xml = new SimPe.PackedFiles.Wrapper.Xml(); xml.ProcessData(items[0]); //read XML File System.Xml.XmlDocument xmlfile = new XmlDocument(); xmlfile.LoadXml(xml.Text); //seek Root Node XmlNodeList XMLData = xmlfile.GetElementsByTagName("wantSimulator"); //Process all Root Node Entries for (int i = 0; i < XMLData.Count; i++) { XmlNode node = XMLData.Item(i); foreach (XmlNode subnode in node) { switch (subnode.Name) { case "categories": { map[WantType.Category] = ParseSubNode("category", subnode); break; } case "skills": { map[WantType.Skill] = ParseSubNode("skill", subnode); break; } case "careers": { map[WantType.Career] = ParseSubNode("career", subnode); break; } } //switch } } //for i } }
/// <summary> /// Create a HashTable with the needed Names from the UI xml File /// </summary> /// <param name="version">Version where you want to load the Description from</param> void ParseXml(SimPe.PackedFiles.Wrapper.SDescVersions version) { map = new Hashtable(); Interfaces.Scenegraph.IScenegraphFileIndexItem[] items = FileTable.FileIndex.FindFile(0x00000000, 0xCDA53B6F, 0x2D7EE26B, null); System.Collections.Generic.Dictionary <SimPe.PackedFiles.Wrapper.SDescVersions, string> vmap = new System.Collections.Generic.Dictionary <SimPe.PackedFiles.Wrapper.SDescVersions, string>(); vmap[version] = PathProvider.Global.Latest.InstallFolder.Trim().ToLower(); foreach (ExpansionItem ei in PathProvider.Global.Expansions) { if (ei.Flag.Class == ExpansionItem.Classes.ExpansionPack) { SimPe.PackedFiles.Wrapper.SDescVersions ver = SimPe.PackedFiles.Wrapper.SDesc.GetMinVersion(ei.Expansion); vmap [ver] = ei.InstallFolder.Trim().ToLower(); if (ver == SimPe.PackedFiles.Wrapper.SDescVersions.Voyage) { vmap[SimPe.PackedFiles.Wrapper.SDescVersions.VoyageB] = ei.InstallFolder.Trim().ToLower(); } } } foreach (Interfaces.Scenegraph.IScenegraphFileIndexItem item in items) { if (!vmap.ContainsKey(version)) { continue; } string s = vmap[version]; if (s != null && s != "") { if (!item.Package.SaveFileName.Trim().ToLower().StartsWith(s)) { continue; } } SimPe.PackedFiles.Wrapper.Xml xml = new SimPe.PackedFiles.Wrapper.Xml(); xml.ProcessData(item); ParseXml(xml.Text); } }