public override void Read(BinaryReader reader, Resource resource)
        {
            reader.BaseStream.Position = Offset;

            for (var i = 0; i < Size; i++)
            {
                var dep = new EditStringData();

                dep.Name = reader.ReadOffsetString(Encoding.UTF8);
                dep.Value = reader.ReadOffsetString(Encoding.UTF8);

                List.Add(dep);
            }
        }
        public override void Read(BinaryReader reader, Resource resource)
        {
            reader.BaseStream.Position = Offset;

            for (var i = 0; i < Size; i++)
            {
                var dep = new AdditionalRelatedFile();

                dep.ContentRelativeFilename = reader.ReadOffsetString(Encoding.UTF8);
                dep.ContentSearchPath = reader.ReadOffsetString(Encoding.UTF8);

                List.Add(dep);
            }
        }
        public override void Read(BinaryReader reader, Resource resource)
        {
            reader.BaseStream.Position = Offset;

            for (var i = 0; i < Size; i++)
            {
                var dep = new InputDependency();

                dep.ContentRelativeFilename = reader.ReadOffsetString(Encoding.UTF8);
                dep.ContentSearchPath = reader.ReadOffsetString(Encoding.UTF8);
                dep.FileCRC = reader.ReadUInt32();
                dep.Flags = reader.ReadUInt32();

                List.Add(dep);
            }
        }
        public override void Read(BinaryReader reader, Resource resource)
        {
            reader.BaseStream.Position = Offset;

            for (var i = 0; i < Size; i++)
            {
                var dep = new SpecialDependency();

                dep.String = reader.ReadOffsetString(Encoding.UTF8);
                dep.CompilerIdentifier = reader.ReadOffsetString(Encoding.UTF8);
                dep.Fingerprint = reader.ReadUInt32();
                dep.UserData = reader.ReadUInt32();

                List.Add(dep);
            }
        }
        public override void Read(BinaryReader reader, Resource resource)
        {
            reader.BaseStream.Position = Offset;

            for (var i = 0; i < Size; i++)
            {
                var dep = new ArgumentDependency();

                dep.ParameterName = reader.ReadOffsetString(Encoding.UTF8);
                dep.ParameterType = reader.ReadOffsetString(Encoding.UTF8);
                dep.Fingerprint = reader.ReadUInt32();
                dep.FingerprintDefault = reader.ReadUInt32();

                List.Add(dep);
            }
        }
        public override void Read(BinaryReader reader, Resource resource)
        {
            reader.BaseStream.Position = Offset;

            for (var i = 0; i < Size; i++)
            {
                var dep = new ReferenceInfo();

                dep.Id = reader.ReadUInt64();
                dep.ResourceName = reader.ReadOffsetString(Encoding.UTF8);

                reader.ReadBytes(4); // TODO: ????

                List.Add(dep);
            }
        }
Esempio n. 7
0
        public override void Read(BinaryReader reader, Resource resource)
        {
            reader.BaseStream.Position = Offset;

            var modelName = reader.ReadOffsetString(Encoding.UTF8);
        }
        private void ReadEnums(BinaryReader reader)
        {
            var entriesOffset = reader.ReadUInt32();
            var entriesCount = reader.ReadUInt32();

            if (entriesCount == 0)
            {
                return;
            }

            reader.BaseStream.Position += entriesOffset - 8; // offset minus 2 ints we just read

            for (var i = 0; i < entriesCount; i++)
            {
                var diskEnum = new ResourceDiskEnum();
                diskEnum.IntrospectionVersion = reader.ReadUInt32();
                diskEnum.Id = reader.ReadUInt32();
                diskEnum.Name = reader.ReadOffsetString(Encoding.UTF8);
                diskEnum.DiskCrc = reader.ReadUInt32();
                diskEnum.UserVersion = reader.ReadInt32();

                var fieldsOffset = reader.ReadUInt32();
                var fieldsSize = reader.ReadUInt32();

                // jump to fields
                if (fieldsSize > 0)
                {
                    var prev = reader.BaseStream.Position;
                    reader.BaseStream.Position += fieldsOffset - 8; // offset minus 2 ints we just read

                    for (var y = 0; y < fieldsSize; y++)
                    {
                        var field = new ResourceDiskEnum.Value();

                        field.EnumValueName = reader.ReadOffsetString(Encoding.UTF8);
                        field.EnumValue = reader.ReadInt32();

                        diskEnum.EnumValueIntrospection.Add(field);
                    }

                    reader.BaseStream.Position = prev;
                }

                ReferencedEnums.Add(diskEnum);
            }
        }
        private void ReadStructs(BinaryReader reader)
        {
            var entriesOffset = reader.ReadUInt32();
            var entriesCount = reader.ReadUInt32();

            if (entriesCount == 0)
            {
                return;
            }

            reader.BaseStream.Position += entriesOffset - 8; // offset minus 2 ints we just read

            for (var i = 0; i < entriesCount; i++)
            {
                var diskStruct = new ResourceDiskStruct();
                diskStruct.IntrospectionVersion = reader.ReadUInt32();
                diskStruct.Id = reader.ReadUInt32();
                diskStruct.Name = reader.ReadOffsetString(Encoding.UTF8);
                diskStruct.DiskCrc = reader.ReadUInt32();
                diskStruct.UserVersion = reader.ReadInt32();
                diskStruct.DiskSize = reader.ReadUInt16();
                diskStruct.Alignment = reader.ReadUInt16();
                diskStruct.BaseStructId = reader.ReadUInt32();

                var fieldsOffset = reader.ReadUInt32();
                var fieldsSize = reader.ReadUInt32();

                // jump to fields
                if (fieldsSize > 0)
                {
                    var prev = reader.BaseStream.Position;
                    reader.BaseStream.Position += fieldsOffset - 8; // offset minus 2 ints we just read

                    for (var y = 0; y < fieldsSize; y++)
                    {
                        var field = new ResourceDiskStruct.Field();

                        field.FieldName = reader.ReadOffsetString(Encoding.UTF8);
                        field.Count = reader.ReadInt16();
                        field.OnDiskOffset = reader.ReadInt16();

                        var indirectionOffset = reader.ReadUInt32();
                        var indirectionSize = reader.ReadUInt32();

                        if (indirectionSize > 0)
                        {
                            // jump to indirections
                            var prev2 = reader.BaseStream.Position;
                            reader.BaseStream.Position += indirectionOffset - 8; // offset minus 2 ints we just read

                            for (var x = 0; x < indirectionSize; x++)
                            {
                                field.Indirections.Add(reader.ReadByte());
                            }

                            reader.BaseStream.Position = prev2;
                        }

                        field.TypeData = reader.ReadUInt32();
                        field.Type = (DataType)reader.ReadInt16();

                        reader.ReadBytes(2); // TODO: ????

                        diskStruct.FieldIntrospection.Add(field);
                    }

                    reader.BaseStream.Position = prev;
                }

                diskStruct.StructFlags = reader.ReadByte();

                reader.ReadBytes(3); // TODO: ????

                ReferencedStructs.Add(diskStruct);
            }
        }