Exemplo n.º 1
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();
                }
            }
        }
Exemplo n.º 2
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);
            }
        }