Beispiel #1
0
        public override void WriteDataXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            if (FileHeader != null)
            {
                ele.TryPathTo("FileHeader", true, out subEle);
                FileHeader.WriteXML(subEle, master);
            }
            if (OffsetData != null)
            {
                ele.TryPathTo("OffsetData", true, out subEle);
                OffsetData.WriteXML(subEle, master);
            }
            if (DeletionsData != null)
            {
                ele.TryPathTo("DeletionsData", true, out subEle);
                DeletionsData.WriteXML(subEle, master);
            }
            if (Author != null)
            {
                ele.TryPathTo("Author", true, out subEle);
                Author.WriteXML(subEle, master);
            }
            if (Description != null)
            {
                ele.TryPathTo("Description", true, out subEle);
                Description.WriteXML(subEle, master);
            }
            if (MasterFiles != null)
            {
                ele.TryPathTo("MasterFiles", true, out subEle);
                List <string> xmlNames = new List <string> {
                    "MasterFile"
                };
                int i = 0;
                foreach (var entry in MasterFiles)
                {
                    i = i % xmlNames.Count();
                    XElement newEle = new XElement(xmlNames[i]);
                    entry.WriteXML(newEle, master);
                    subEle.Add(newEle);
                    i++;
                }
            }
            if (OverriddenRecords != null)
            {
                ele.TryPathTo("OverriddenRecords", true, out subEle);
                OverriddenRecords.WriteXML(subEle, master);
            }
            if (ScreenshotData != null)
            {
                ele.TryPathTo("ScreenshotData", true, out subEle);
                ScreenshotData.WriteXML(subEle, master);
            }
        }
Beispiel #2
0
 public override void WriteData(ESPWriter writer)
 {
     if (FileHeader != null)
     {
         FileHeader.WriteBinary(writer);
     }
     if (OffsetData != null)
     {
         OffsetData.WriteBinary(writer);
     }
     if (DeletionsData != null)
     {
         DeletionsData.WriteBinary(writer);
     }
     if (Author != null)
     {
         Author.WriteBinary(writer);
     }
     if (Description != null)
     {
         Description.WriteBinary(writer);
     }
     if (MasterFiles != null)
     {
         foreach (var item in MasterFiles)
         {
             item.WriteBinary(writer);
         }
     }
     if (OverriddenRecords != null)
     {
         OverriddenRecords.WriteBinary(writer);
     }
     if (ScreenshotData != null)
     {
         ScreenshotData.WriteBinary(writer);
     }
 }
Beispiel #3
0
        public override void ReadData(ESPReader reader, long dataEnd)
        {
            while (reader.BaseStream.Position < dataEnd)
            {
                string subTag = reader.PeekTag();

                switch (subTag)
                {
                case "HEDR":
                    if (FileHeader == null)
                    {
                        FileHeader = new PluginHeader();
                    }

                    FileHeader.ReadBinary(reader);
                    break;

                case "OFST":
                    if (OffsetData == null)
                    {
                        OffsetData = new SimpleSubrecord <Byte[]>();
                    }

                    OffsetData.ReadBinary(reader);
                    break;

                case "DELE":
                    if (DeletionsData == null)
                    {
                        DeletionsData = new SimpleSubrecord <Byte[]>();
                    }

                    DeletionsData.ReadBinary(reader);
                    break;

                case "CNAM":
                    if (Author == null)
                    {
                        Author = new SimpleSubrecord <String>();
                    }

                    Author.ReadBinary(reader);
                    break;

                case "SNAM":
                    if (Description == null)
                    {
                        Description = new SimpleSubrecord <String>();
                    }

                    Description.ReadBinary(reader);
                    break;

                case "MAST":
                    if (MasterFiles == null)
                    {
                        MasterFiles = new List <MasterFileData>();
                    }

                    MasterFileData tempMAST = new MasterFileData();
                    tempMAST.ReadBinary(reader);
                    MasterFiles.Add(tempMAST);
                    break;

                case "ONAM":
                    if (OverriddenRecords == null)
                    {
                        OverriddenRecords = new FormArray();
                    }

                    OverriddenRecords.ReadBinary(reader);
                    break;

                case "SCRN":
                    if (ScreenshotData == null)
                    {
                        ScreenshotData = new SimpleSubrecord <Byte[]>();
                    }

                    ScreenshotData.ReadBinary(reader);
                    break;

                default:
                    throw new Exception();
                }
            }
        }
Beispiel #4
0
        public override void ReadDataXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

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

                FileHeader.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("OffsetData", false, out subEle))
            {
                if (OffsetData == null)
                {
                    OffsetData = new SimpleSubrecord <Byte[]>();
                }

                OffsetData.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("DeletionsData", false, out subEle))
            {
                if (DeletionsData == null)
                {
                    DeletionsData = new SimpleSubrecord <Byte[]>();
                }

                DeletionsData.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Author", false, out subEle))
            {
                if (Author == null)
                {
                    Author = new SimpleSubrecord <String>();
                }

                Author.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Description", false, out subEle))
            {
                if (Description == null)
                {
                    Description = new SimpleSubrecord <String>();
                }

                Description.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("MasterFiles", false, out subEle))
            {
                if (MasterFiles == null)
                {
                    MasterFiles = new List <MasterFileData>();
                }

                foreach (XElement e in subEle.Elements())
                {
                    MasterFileData tempMAST = new MasterFileData();
                    tempMAST.ReadXML(e, master);
                    MasterFiles.Add(tempMAST);
                }
            }
            if (ele.TryPathTo("OverriddenRecords", false, out subEle))
            {
                if (OverriddenRecords == null)
                {
                    OverriddenRecords = new FormArray();
                }

                OverriddenRecords.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ScreenshotData", false, out subEle))
            {
                if (ScreenshotData == null)
                {
                    ScreenshotData = new SimpleSubrecord <Byte[]>();
                }

                ScreenshotData.ReadXML(subEle, master);
            }
        }