예제 #1
0
        /// <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
            }
        }
예제 #2
0
        /// <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);
            }
        }