protected override void ReadDataXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; if (ele.TryPathTo("Value", false, out subEle)) { Value = subEle.ToInt32(); } if (ele.TryPathTo("Flags", false, out subEle)) { Flags = subEle.ToEnum <IngestibleFlags>(); } ReadUnusedXML(ele, master); if (ele.TryPathTo("WithdrawalEffect", false, out subEle)) { WithdrawalEffect.ReadXML(subEle, master); } if (ele.TryPathTo("AddictionChance", false, out subEle)) { AddictionChance = subEle.ToSingle(); } if (ele.TryPathTo("ConsumeSound", false, out subEle)) { SoundConsume.ReadXML(subEle, master); } }
protected override void WriteData(ESPWriter writer) { writer.Write(Value); writer.Write((Byte)Flags); if (Unused == null) { writer.Write(new byte[3]); } else { writer.Write(Unused); } WithdrawalEffect.WriteBinary(writer); writer.Write(AddictionChance); SoundConsume.WriteBinary(writer); }
protected override void ReadData(ESPReader reader) { using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size))) using (ESPReader subReader = new ESPReader(stream, reader.Plugin)) { try { Value = subReader.ReadInt32(); Flags = subReader.ReadEnum <IngestibleFlags>(); Unused = subReader.ReadBytes(3); WithdrawalEffect.ReadBinary(subReader); AddictionChance = subReader.ReadSingle(); SoundConsume.ReadBinary(subReader); } catch { return; } } }
protected override void WriteDataXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; ele.TryPathTo("Value", true, out subEle); subEle.Value = Value.ToString(); ele.TryPathTo("Flags", true, out subEle); subEle.Value = Flags.ToString(); WriteUnusedXML(ele, master); ele.TryPathTo("WithdrawalEffect", true, out subEle); WithdrawalEffect.WriteXML(subEle, master); ele.TryPathTo("AddictionChance", true, out subEle); subEle.Value = AddictionChance.ToString("G15"); ele.TryPathTo("ConsumeSound", true, out subEle); SoundConsume.WriteXML(subEle, master); }
public override int GetHashCode() { return(WithdrawalEffect.GetHashCode()); }