public override void WriteBinary(ESPWriter writer) { if (ItemText != null) { ItemText.WriteBinary(writer); } if (ResultText != null) { ResultText.WriteBinary(writer); } if (Flags != null) { Flags.WriteBinary(writer); } if (DisplayNote != null) { DisplayNote.WriteBinary(writer); } if (SubMenu != null) { SubMenu.WriteBinary(writer); } if (Script != null) { Script.WriteBinary(writer); } if (Conditions != null) { foreach (var item in Conditions) { item.WriteBinary(writer); } } }
public override void WriteXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; if (ItemText != null) { ele.TryPathTo("ItemText", true, out subEle); ItemText.WriteXML(subEle, master); } if (ResultText != null) { ele.TryPathTo("ResultText", true, out subEle); ResultText.WriteXML(subEle, master); } if (Flags != null) { ele.TryPathTo("Flags", true, out subEle); Flags.WriteXML(subEle, master); } if (DisplayNote != null) { ele.TryPathTo("DisplayNote", true, out subEle); DisplayNote.WriteXML(subEle, master); } if (SubMenu != null) { ele.TryPathTo("SubMenu", true, out subEle); SubMenu.WriteXML(subEle, master); } if (Script != null) { ele.TryPathTo("Script", true, out subEle); Script.WriteXML(subEle, master); } if (Conditions != null) { ele.TryPathTo("Conditions", true, out subEle); foreach (var entry in Conditions) { XElement newEle = new XElement("Condition"); entry.WriteXML(newEle, master); subEle.Add(newEle); } } }
public override void ReadBinary(ESPReader reader) { List <string> readTags = new List <string>(); while (reader.BaseStream.Position < reader.BaseStream.Length) { string subTag = reader.PeekTag(); switch (subTag) { case "ITXT": if (readTags.Contains("ITXT")) { return; } ItemText.ReadBinary(reader); break; case "RNAM": if (readTags.Contains("RNAM")) { return; } ResultText.ReadBinary(reader); break; case "ANAM": if (readTags.Contains("ANAM")) { return; } Flags.ReadBinary(reader); break; case "INAM": if (readTags.Contains("INAM")) { return; } if (DisplayNote == null) { DisplayNote = new RecordReference(); } DisplayNote.ReadBinary(reader); break; case "TNAM": if (readTags.Contains("TNAM")) { return; } if (SubMenu == null) { SubMenu = new RecordReference(); } SubMenu.ReadBinary(reader); break; case "SCHR": if (readTags.Contains("SCHR")) { return; } if (Script == null) { Script = new EmbeddedScript(); } Script.ReadBinary(reader); break; case "CTDA": if (Conditions == null) { Conditions = new List <Condition>(); } Condition tempCTDA = new Condition(); tempCTDA.ReadBinary(reader); Conditions.Add(tempCTDA); break; default: return; } readTags.Add(subTag); } }
public override void ReadXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; if (ele.TryPathTo("ItemText", false, out subEle)) { if (ItemText == null) { ItemText = new SimpleSubrecord <String>(); } ItemText.ReadXML(subEle, master); } if (ele.TryPathTo("ResultText", false, out subEle)) { if (ResultText == null) { ResultText = new SimpleSubrecord <String>(); } ResultText.ReadXML(subEle, master); } if (ele.TryPathTo("Flags", false, out subEle)) { if (Flags == null) { Flags = new SimpleSubrecord <TerminalMenuFlags>(); } Flags.ReadXML(subEle, master); } if (ele.TryPathTo("DisplayNote", false, out subEle)) { if (DisplayNote == null) { DisplayNote = new RecordReference(); } DisplayNote.ReadXML(subEle, master); } if (ele.TryPathTo("SubMenu", false, out subEle)) { if (SubMenu == null) { SubMenu = new RecordReference(); } SubMenu.ReadXML(subEle, master); } if (ele.TryPathTo("Script", false, out subEle)) { if (Script == null) { Script = new EmbeddedScript(); } Script.ReadXML(subEle, master); } if (ele.TryPathTo("Conditions", false, out subEle)) { if (Conditions == null) { Conditions = new List <Condition>(); } foreach (XElement e in subEle.Elements()) { Condition temp = new Condition(); temp.ReadXML(e, master); Conditions.Add(temp); } } }