Beispiel #1
0
        public void Read(SerializedReader reader)
        {
            if (IsLongID(reader.Generation))
            {
                reader.AlignStream();
                PathID = reader.ReadInt64();
            }
            else
            {
                PathID = reader.ReadInt32();
            }

            Offset = reader.ReadUInt32();
            Size   = reader.ReadInt32();
            if (HasTypeIndex(reader.Generation))
            {
                TypeIndex = reader.ReadInt32();
            }
            else
            {
                TypeID   = reader.ReadInt32();
                ClassID  = (ClassIDType)reader.ReadInt16();
                ScriptID = reader.ReadInt16();
            }

            if (HasStripped(reader.Generation))
            {
                IsStripped = reader.ReadBoolean();
            }
        }
        public void Read(SerializedReader reader)
        {
            if (HasSignature(reader.Generation))
            {
                string signature = reader.ReadStringZeroTerm();
                Version = Version.Parse(signature);
            }
            if (HasPlatform(reader.Generation))
            {
                Platform = (Platform)reader.ReadUInt32();
            }

            bool serializeTypeTree;

            if (HasSerializeTypeTrees(reader.Generation))
            {
                SerializeTypeTrees = reader.ReadBoolean();
                serializeTypeTree  = SerializeTypeTrees;
            }
            else
            {
                serializeTypeTree = true;
            }

            Types = reader.ReadSerializedArray(() => new RTTIBaseClassDescriptor(serializeTypeTree));
            if (HasUnknown(reader.Generation))
            {
                Unknown = reader.ReadInt32();
            }
        }
        public void Read(SerializedReader reader)
        {
            if (IsLongID(reader.Generation))
            {
                reader.AlignStream();
                FileID = reader.ReadInt64();
            }
            else
            {
                FileID = reader.ReadInt32();
            }

            ByteStart = reader.ReadUInt32();
            ByteSize  = reader.ReadInt32();
            TypeID    = reader.ReadInt32();
            if (HasClassID(reader.Generation))
            {
                ClassID = (ClassIDType)reader.ReadInt16();
            }
            if (HasScriptID(reader.Generation))
            {
                ScriptTypeIndex = reader.ReadInt16();
            }
            else if (HasIsDestroyed(reader.Generation))
            {
                IsDestroyed = reader.ReadUInt16();
            }
            if (HasStripped(reader.Generation))
            {
                Stripped = reader.ReadBoolean();
            }
        }
 public void Read(SerializedReader reader)
 {
     LocalSerializedFileIndex = reader.ReadInt32();
     if (ObjectInfo.IsLongID(reader.Generation))
     {
         reader.AlignStream();
         LocalIdentifierInFile = reader.ReadInt64();
     }
     else
     {
         LocalIdentifierInFile = reader.ReadInt32();
     }
 }
Beispiel #5
0
 public void Read(SerializedReader reader)
 {
     FileID = reader.ReadInt32();
     if (AssetEntry.IsLongID(reader.Generation))
     {
         reader.AlignStream();
         PathID = reader.ReadInt64();
     }
     else
     {
         PathID = reader.ReadInt32();
     }
 }
Beispiel #6
0
 public void Read(SerializedReader reader)
 {
     Hierarchy.Read(reader);
     Entries = reader.ReadSerializedArray <AssetEntry>();
     if (HasPreload(reader.Generation))
     {
         Preloads = reader.ReadSerializedArray <ObjectPtr>();
     }
     Dependencies = reader.ReadSerializedArray <FileIdentifier>();
     if (HasUnknown(reader.Generation))
     {
         Unknown = reader.ReadStringZeroTerm();
     }
 }
        private void ReadScheme()
        {
            using (PartialStream stream = new PartialStream(m_stream, m_offset, m_size))
            {
                using (EndianReader reader = new EndianReader(stream, EndianType.BigEndian))
                {
                    Header.Read(reader);
                }

                EndianType endianess = EndianType.LittleEndian;
                if (SerializedFileHeader.HasEndian(Header.Generation))
                {
                    endianess = Header.SwapEndianess ? EndianType.BigEndian : EndianType.LittleEndian;
                }
                using (SerializedReader reader = new SerializedReader(stream, endianess, Name, Header.Generation))
                {
                    if (SerializedFileMetadata.IsMetadataAtTheEnd(reader.Generation))
                    {
                        reader.BaseStream.Position = Header.FileSize - Header.MetadataSize;
                        reader.BaseStream.Position++;
                    }

                    Metadata.Read(reader);
                }
            }

            SerializedFileMetadataConverter.CombineFormats(Header.Generation, Metadata);
            RTTIClassHierarchyDescriptorConverter.FixResourceVersion(Name, ref Metadata.Hierarchy);

#warning TEMP HACK
            if (Metadata.Hierarchy.Platform == Platform.NoTarget)
            {
                Flags = TransferInstructionFlags.NoTransferInstructionFlags;
            }
            if (FilenameUtils.IsEngineResource(Name) || Header.Generation < FileGeneration.FG_500a1 && FilenameUtils.IsBuiltinExtra(Name))
            {
                Flags |= TransferInstructionFlags.IsBuiltinResourcesFile;
            }
            if (Header.SwapEndianess)
            {
                Flags |= TransferInstructionFlags.SwapEndianess;
            }
        }
        private void ReadScheme()
        {
            using (EndianReader reader = new EndianReader(Stream, EndianType.BigEndian))
            {
                Header.Read(reader);
            }
            if (SerializedFileMetadata.IsMetadataAtTheEnd(Header.Generation))
            {
                Stream.Position = Header.FileSize - Header.MetadataSize;
                Stream.Position++;
            }
            using (SerializedReader reader = new SerializedReader(Stream, Header.GetEndianType(), Name, Header.Generation))
            {
                Metadata.Read(reader);
            }

            SerializedFileMetadataConverter.CombineFormats(Header.Generation, Metadata);
            RTTIClassHierarchyDescriptorConverter.FixResourceVersion(Name, ref Metadata.Hierarchy);
            UpdateFlags();
        }
Beispiel #9
0
 public void Read(SerializedReader reader)
 {
     Read((EndianReader)reader);
 }