Exemplo n.º 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 "DESC":
                    if (Content == null)
                    {
                        Content = new SimpleSubrecord <String>();
                    }

                    Content.ReadBinary(reader);
                    break;

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

                    Header.ReadBinary(reader);
                    break;

                case "INAM":
                    if (Icon == null)
                    {
                        Icon = new RecordReference();
                    }

                    Icon.ReadBinary(reader);
                    break;

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

                    Unused0.ReadBinary(reader);
                    break;

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

                    Unused1.ReadBinary(reader);
                    break;

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

                    Unused2.ReadBinary(reader);
                    break;

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

                    Unused3.ReadBinary(reader);
                    break;

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

                    Unused4.ReadBinary(reader);
                    break;

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

                    Unused5.ReadBinary(reader);
                    break;

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

                    Unused6.ReadBinary(reader);
                    break;

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

                    Unused7.ReadBinary(reader);
                    break;

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

                    Unused8.ReadBinary(reader);
                    break;

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

                    Unused9.ReadBinary(reader);
                    break;

                case "DNAM":
                    if (MessageFlags == null)
                    {
                        MessageFlags = new SimpleSubrecord <MessageFlags>();
                    }

                    MessageFlags.ReadBinary(reader);
                    break;

                case "TNAM":
                    if (DisplayTime == null)
                    {
                        DisplayTime = new SimpleSubrecord <UInt32>();
                    }

                    DisplayTime.ReadBinary(reader);
                    break;

                case "ITXT":
                    if (Buttons == null)
                    {
                        Buttons = new List <MessageButton>();
                    }

                    MessageButton tempITXT = new MessageButton();
                    tempITXT.ReadBinary(reader);
                    Buttons.Add(tempITXT);
                    break;

                default:
                    throw new Exception();
                }
            }
        }