Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }