public void Deserialize(ushort version, Stream input, Endian endian) { this.Tag = input.ReadStringU32(endian); this.Unk1 = version >= 3 ? input.ReadValueU8() != 0 : true; this.Name = input.ReadStringU32(endian); this.Unk3 = version >= 2 ? input.ReadValueU8() != 0 : false; if (Name == "/config/ai/battle/eval_shoottarget/shootchain_precombat") { Console.Write("st"); } // Super hacky solution to unpack XMLs with xml:xsi etc. if (this.Unk3 == false) { long currentPositon = input.Position; try { this.Content = XmlResource0.Deserialize(input, endian); } catch (Exception ex) { input.Position = currentPositon; Console.WriteLine(ex.Message); bFailedToDecompile = true; } } else { this.Content = XmlResource1.Deserialize(input, endian); } }
public void Serialize(ushort version, Stream output, Endian endian) { output.WriteStringU32(this.Tag, endian); if (version >= 3) { output.WriteValueU8((byte)(this.Unk1 ? 1 : 0)); } output.WriteStringU32(this.Name, endian); if (version >= 2) { output.WriteValueU8((byte)(this.Unk3 ? 1 : 0)); } if (this.Unk3 == false) { XmlResource0.Serialize(output, this.Content, endian); } else { XmlResource1.Serialize(output, this.Content, endian); } }
public void Serialize(ushort version, Stream output, Endian endian) { output.WriteStringU32(this.Tag, endian); if (version >= 3) { output.WriteValueU8((byte)(this.Unk1 ? 1 : 0)); } output.WriteStringU32(this.Name, endian); if (version >= 2) { output.WriteValueU8((byte)(this.Unk3 ? 1 : 0)); } if (this.Unk3 == false) { if (!bFailedToDecompile) { XmlResource0.Serialize(output, this.Content, endian); } else { byte[] data = File.ReadAllBytes(this.Content); output.WriteBytes(data); } } else { XmlResource1.Serialize(output, this.Content, endian); } }
public void Deserialize(ushort version, Stream input, Endian endian) { this.Tag = input.ReadStringU32(endian); this.Unk1 = version >= 3 ? input.ReadValueU8() != 0 : true; this.Name = input.ReadStringU32(endian); this.Unk3 = version >= 2 ? input.ReadValueU8() != 0 : false; if (this.Unk3 == false) { this.Content = XmlResource0.Deserialize(input, endian); } else { this.Content = XmlResource1.Deserialize(input, endian); } }