Exemple #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();
                }
            }
        }