private string ReadHavokEntry(ResourceEntry entry, XmlWriter resourceXML, string name) { HavokResource resource = new HavokResource(); using (MemoryStream stream = new MemoryStream(entry.Data)) { resource.Deserialize(entry.Version, stream, _Endian); entry.Data = resource.Data; } if (FileNamesAndHash.ContainsKey(resource.FileHash) && name.Contains("File_")) { name = FileNamesAndHash[resource.FileHash]; } resourceXML.WriteElementString("File", name); resourceXML.WriteElementString("Unk01", resource.Unk01.ToString()); resourceXML.WriteElementString("FileHash", resource.FileHash.ToString()); resourceXML.WriteElementString("Unk02", resource.Unk02.ToString()); return(name); }
private ResourceEntry WriteHavokEntry(ResourceEntry entry, XPathNodeIterator nodes, string sdsFolder, XmlNode descNode) { HavokResource resource = new HavokResource(); // Read contents from SDSContent.xml nodes.Current.MoveToNext(); string name = nodes.Current.Value; nodes.Current.MoveToNext(); uint unk01 = uint.Parse(nodes.Current.Value); nodes.Current.MoveToNext(); ulong filehash = ulong.Parse(nodes.Current.Value); nodes.Current.MoveToNext(); uint unk02 = uint.Parse(nodes.Current.Value); nodes.Current.MoveToNext(); ushort version = ushort.Parse(nodes.Current.Value); // Serialize into separate stream using (MemoryStream stream = new MemoryStream()) { resource.Unk01 = unk01; resource.FileHash = filehash; resource.Unk02 = unk02; resource.Data = File.ReadAllBytes(sdsFolder + "/" + name); resource.Serialize(entry.Version, stream, Endian); // Set entry information and this is it. entry.Data = stream.ToArray(); entry.Version = version; } descNode.InnerText = "not available"; return(entry); }
private string ReadHavokEntry(ResourceEntry entry, XmlWriter resourceXML, string name) { HavokResource resource = new HavokResource(); using (MemoryStream stream = new MemoryStream(entry.Data)) { resource.Deserialize(entry.Version, stream, _Endian); entry.Data = resource.Data; } // If not correctly named - See if its toolkit standard 'File_'. // If yes, see if we can grab the name from our DB and apply hkx extension. if (FileNamesAndHash.ContainsKey(resource.FileHash) && name.Contains("File_")) { name = FileNamesAndHash[resource.FileHash]; name += ".hkx"; } resourceXML.WriteElementString("File", name); resourceXML.WriteElementString("Unk01", resource.Unk01.ToString()); resourceXML.WriteElementString("FileHash", resource.FileHash.ToString()); resourceXML.WriteElementString("Unk02", resource.Unk02.ToString()); return(name); }