public override void WriteBinary(ESPWriter writer)
 {
     if (EndScriptMarker != null)
     {
         EndScriptMarker.WriteBinary(writer);
     }
     if (EmbeddedScript != null)
     {
         EmbeddedScript.WriteBinary(writer);
     }
 }
        public override void WriteXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            if (EndScriptMarker != null)
            {
                ele.TryPathTo("EndScriptMarker", true, out subEle);
                EndScriptMarker.WriteXML(subEle, master);
            }
            if (EmbeddedScript != null)
            {
                ele.TryPathTo("EmbeddedScript", true, out subEle);
                EmbeddedScript.WriteXML(subEle, master);
            }
        }
        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 "NEXT":
                    if (readTags.Contains("NEXT"))
                    {
                        return;
                    }
                    if (EndScriptMarker == null)
                    {
                        EndScriptMarker = new SubMarker();
                    }

                    EndScriptMarker.ReadBinary(reader);
                    break;

                case "SCHR":
                    if (readTags.Contains("SCHR"))
                    {
                        return;
                    }
                    if (EmbeddedScript == null)
                    {
                        EmbeddedScript = new EmbeddedScript();
                    }

                    EmbeddedScript.ReadBinary(reader);
                    break;

                default:
                    return;
                }

                readTags.Add(subTag);
            }
        }
        public override void ReadXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            if (ele.TryPathTo("EndScriptMarker", false, out subEle))
            {
                if (EndScriptMarker == null)
                {
                    EndScriptMarker = new SubMarker();
                }

                EndScriptMarker.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("EmbeddedScript", false, out subEle))
            {
                if (EmbeddedScript == null)
                {
                    EmbeddedScript = new EmbeddedScript();
                }

                EmbeddedScript.ReadXML(subEle, master);
            }
        }