Exemplo n.º 1
0
 public void Write(Vault vault, BinaryWriter bw)
 {
     bw.Write(Key);
     InlineData.Write(vault, bw);
     bw.AlignWriter(4);
     bw.Write(TypeIndex);
     bw.WriteEnum(NodeFlags);
 }
Exemplo n.º 2
0
        public override void Write(Vault vault, BinaryWriter bw)
        {
            bw.Write(Key);
            InlineData.Write(vault, bw);
            if (HasInlineFlag())
            {
                bw.AlignWriter(4);
            }

            bw.Write(TypeIndex);
            bw.Write((byte)NodeFlags);
            bw.Write(EntryFlags);
        }
Exemplo n.º 3
0
        public void Read(Vault vault, BinaryReader br)
        {
            Key = br.ReadUInt32();

            InlineDataPointer = br.BaseStream.Position;
            if (IsInline())
            {
                InlineData = TypeRegistry.CreateInstance(vault.Database.Options.GameId, Collection.Class, Collection.Class[Key],
                                                         Collection);
            }
            else
            {
                InlineData = new VLTAttribType(Collection.Class, Collection.Class[Key], Collection);
            }
            InlineData.Read(vault, br);
            br.AlignReader(4);
            TypeIndex = br.ReadUInt16();
            NodeFlags = (NodeFlagsEnum)br.ReadUInt16();
            Debug.Assert((ushort)NodeFlags <= 0x20);
        }
Exemplo n.º 4
0
        public override bool ReadData(Vault vault, BinaryReader br)
        {
            if (Collection.Class.TryGetField(Key, out VltClassField field))
            {
                if (HasInlineFlag())
                {
                    InlineData = TypeRegistry.CreateInstance(vault.Database.Options.GameId, Collection.Class, field, Collection);
                }
                else
                {
                    InlineData = new VLTAttribType(Collection.Class, field, Collection);
                }

                br.BaseStream.Position = InlineDataPointer;
                InlineData.Read(vault, br);

                return(true);
            }

            return(false);
        }
Exemplo n.º 5
0
        public override bool ReadData(Vault vault, BinaryReader br)
        {
            if (Collection.Class.HasField(Key))
            {
                br.BaseStream.Position = InlineDataPointer;

                if (IsInline())
                {
                    InlineData = TypeRegistry.CreateInstance(vault.Database.Options.GameId, Collection.Class, Collection.Class[Key],
                                                             Collection);
                }
                else
                {
                    InlineData = new VLTAttribType(Collection.Class, Collection.Class[Key], Collection);
                }

                InlineData.Read(vault, br);

                return(true);
            }

            return(false);
        }
Exemplo n.º 6
0
 protected void StyleChanged(string key, object value, InlineData style)
 {
     MarkForStyleResolving(style.Identifier != "Style" || key == null || StyleProperties.IsInherited(key));
 }