ReadAddOn() private méthode

private ReadAddOn ( BinaryReader reader ) : void
reader System.IO.BinaryReader
Résultat void
Exemple #1
0
        internal Message(AssetLoader loader)
            : base(loader)
        {
            using (BinaryReader reader = loader.Reader) {
                Version = (MessageVersion)reader.ReadInt32();

                int fileLength, addonOffset = -1;
                int count;
                Codex <MessageItem> items = new Codex <MessageItem>();
                Items = items;

                switch (MajorVersion)
                {
                case 3:
                    fileLength = reader.ReadUInt16() + 6;
                    count      = reader.ReadUInt16();
                    break;

                case 4:
                    addonOffset = reader.ReadUInt16() + 6;
                    Unknowns.ReadInt16s(reader, 1);
                    count = reader.ReadUInt16();
                    break;

                case 5:
                    addonOffset = reader.ReadInt32() + 6;
                    count       = reader.ReadUInt16();
                    break;

                default:
                    throw new NotImplementedException("Unimplemented version " + Version);
                }

                for (int index = 0; index < count; index++)
                {
                    MessageItem item = new MessageItem(this, index, loader);
                    items.Add(item);
                    AddChild(item);
                }

                foreach (MessageItem item in items)
                {
                    item.ReadText(reader);
                }

                if (addonOffset >= 0)
                {
                    reader.BaseStream.Position = addonOffset;
                    foreach (MessageItem item in items)
                    {
                        item.ReadAddOn(reader);
                    }
                }
            }
        }
Exemple #2
0
        internal Message(AssetLoader loader)
            : base(loader)
        {
            using (BinaryReader reader = loader.Reader) {
                Version = (MessageVersion)reader.ReadInt32();

                int fileLength, addonOffset = -1;
                int count;
                Codex<MessageItem> items = new Codex<MessageItem>();
                Items = items;

                switch (MajorVersion) {
                    case 3:
                        fileLength = reader.ReadUInt16() + 6;
                        count = reader.ReadUInt16();
                        break;

                    case 4:
                        addonOffset = reader.ReadUInt16() + 6;
                        Unknowns.ReadInt16s(reader, 1);
                        count = reader.ReadUInt16();
                        break;

                    case 5:
                        addonOffset = reader.ReadInt32() + 6;
                        count = reader.ReadUInt16();
                        break;

                    default:
                        throw new NotImplementedException("Unimplemented version " + Version);
                }

                for (int index = 0; index < count; index++) {
                    MessageItem item = new MessageItem(this, index, loader);
                    items.Add(item);
                    AddChild(item);
                }

                foreach (MessageItem item in items)
                    item.ReadText(reader);

                if (addonOffset >= 0) {
                    reader.BaseStream.Position = addonOffset;
                    foreach (MessageItem item in items)
                        item.ReadAddOn(reader);
                }
            }
        }