Example #1
0
        public override void ReadData(ESPReader reader, long dataEnd)
        {
            while (reader.BaseStream.Position < dataEnd)
            {
                string subTag = reader.PeekTag();

                switch (subTag)
                {
                case "EDID":
                    if (EditorID == null)
                    {
                        EditorID = new SimpleSubrecord <String>();
                    }

                    EditorID.ReadBinary(reader);
                    break;

                case "QSTI":
                    if (AddedQuests == null)
                    {
                        AddedQuests = new List <AddedQuest>();
                    }

                    AddedQuest tempQSTI = new AddedQuest();
                    tempQSTI.ReadBinary(reader);
                    AddedQuests.Add(tempQSTI);
                    break;

                case "QSTR":
                    if (RemovedQuests == null)
                    {
                        RemovedQuests = new List <RecordReference>();
                    }

                    RecordReference tempQSTR = new RecordReference();
                    tempQSTR.ReadBinary(reader);
                    RemovedQuests.Add(tempQSTR);
                    break;

                case "INFC":
                    if (UnusedInfos == null)
                    {
                        UnusedInfos = new List <SharedInfo>();
                    }

                    SharedInfo tempINFC = new SharedInfo();
                    tempINFC.ReadBinary(reader);
                    UnusedInfos.Add(tempINFC);
                    break;

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

                    Name.ReadBinary(reader);
                    break;

                case "PNAM":
                    if (Priority == null)
                    {
                        Priority = new SimpleSubrecord <Single>();
                    }

                    Priority.ReadBinary(reader);
                    break;

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

                    Unknown.ReadBinary(reader);
                    break;

                case "DATA":
                    if (Data == null)
                    {
                        Data = new DialogTopicData();
                    }

                    Data.ReadBinary(reader);
                    break;

                default:
                    throw new Exception();
                }
            }
        }