private void LoadSDSContent(FileInfo info) { if (!info.Name.Contains("SDSContent") && info.Extension != "xml") { return; } XmlDocument document = new XmlDocument(); document.Load(info.FullName); XPathNavigator nav = document.CreateNavigator(); var nodes = nav.Select("/SDSResource/ResourceEntry"); while (nodes.MoveNext() == true) { nodes.Current.MoveToFirstChild(); string resourceType = nodes.Current.Value; BaseResource resource = null; if (!resources.ContainsKey(resourceType)) { resources.Add(resourceType, new List <TreeNode>()); } switch (resourceType) { case "FrameResource": case "Effects": case "PREFAB": case "ItemDesc": case "FrameNameTable": case "Actors": case "NAV_AIWORLD_DATA": case "NAV_OBJ_DATA": case "NAV_HPD_DATA": case "Cutscene": case "FxActor": case "FxAnimSet": case "Translokator": case "Speech": case "SoundTable": case "AnimalTrafficPaths": case "AudioSectors": case "Animated Texture": case "Collisions": case "IndexBufferPool": case "VertexBufferPool": case "EntityDataStorage": case "Animation2": case "Mipmap": case "Sound": case "MemFile": resource = new BaseResource(); resource.ReadResourceEntry(nodes); break; case "Texture": resource = new TextureResource(); resource.ReadResourceEntry(nodes); break; case "XML": resource = new XMLResource(); resource.ReadResourceEntry(nodes); break; case "Script": resource = new ScriptResource(); resource.ReadResourceEntry(nodes); break; case "Table": resource = new TableResource(); resource.ReadResourceEntry(nodes); break; default: MessageBox.Show("Did not pack type: " + resourceType, "Toolkit", MessageBoxButtons.OK, MessageBoxIcon.Information); break; } TreeNode node = BuildTreeNode(resource.GetFileName(), resource); resources[resourceType].Add(node); } }