public ResourceEntry WriteXMLEntry(ResourceEntry entry, XPathNodeIterator nodes, string sdsFolder, XmlNode descNode) { nodes.Current.MoveToNext(); string file = nodes.Current.Value; descNode.InnerText = file; nodes.Current.MoveToNext(); string tag = nodes.Current.Value; nodes.Current.MoveToNext(); bool unk1 = nodes.Current.ValueAsBoolean; nodes.Current.MoveToNext(); bool unk3 = nodes.Current.ValueAsBoolean; nodes.Current.MoveToNext(); bool failedToDecompile = nodes.Current.ValueAsBoolean; //need to do version early. nodes.Current.MoveToNext(); entry.Version = Convert.ToUInt16(nodes.Current.Value); MemoryStream stream = new MemoryStream(); XmlResource resource = new XmlResource { Name = file, Content = sdsFolder + "/" + file + ".xml", Tag = tag, Unk1 = unk1, Unk3 = unk3, bFailedToDecompile = failedToDecompile }; resource.Serialize(entry.Version, stream, Endian.Little); if (resource.Unk3) { entry.Data = stream.ToArray(); } else { entry.Data = stream.ToArray(); } return(entry); }
public ResourceEntry WriteXMLEntry(ResourceEntry entry, XPathNodeIterator nodes, string sdsFolder, XmlNode descNode) { nodes.Current.MoveToNext(); string file = nodes.Current.Value; descNode.InnerText = file; nodes.Current.MoveToNext(); string tag = nodes.Current.Value; nodes.Current.MoveToNext(); bool unk1 = nodes.Current.ValueAsBoolean; nodes.Current.MoveToNext(); bool unk3 = nodes.Current.ValueAsBoolean; //need to do version early. nodes.Current.MoveToNext(); entry.Version = Convert.ToUInt16(nodes.Current.Value); MemoryStream stream = new MemoryStream(); XmlResource resource = new XmlResource { Name = file, Content = sdsFolder + "/" + file + ".xml", Tag = tag, Unk1 = unk1, Unk3 = unk3 }; resource.Serialize(entry.Version, stream, Endian.Little); if (resource.Unk3) { using (BinaryReader reader = new BinaryReader(File.Open(sdsFolder + "/" + file + ".xml", FileMode.Open))) entry.Data = reader.ReadBytes((int)reader.BaseStream.Length); } else { entry.Data = stream.GetBuffer(); } return(entry); }