public TypeTreeNode Parse(EndianBinaryReader varStream, SerializedFileFormatVersion varFormat) { m_Version = varStream.ReadUInt16(); m_Level = varStream.ReadByte(); m_TypeFlags = varStream.ReadByte(); m_TypeStrOffset = varStream.ReadUInt32(); m_NameStrOffset = varStream.ReadUInt32(); m_ByteSize = varStream.ReadInt32(); m_Index = varStream.ReadInt32(); m_MetaFlag = varStream.ReadInt32(); if (varFormat >= SerializedFileFormatVersion.kTypeTreeNodeWithTypeFlags) { m_RefTypeHash = varStream.ReadUInt64(); } return(this); }
public ObjectReader(EndianBinaryReader reader, SerializedFile assetsFile, ObjectInfo objectInfo) : base(reader.BaseStream, reader.endian) { this.assetsFile = assetsFile; m_PathID = objectInfo.m_PathID; byteStart = objectInfo.byteStart; byteSize = objectInfo.byteSize; if (Enum.IsDefined(typeof(ClassIDType), objectInfo.classID)) { type = (ClassIDType)objectInfo.classID; } else { type = ClassIDType.UnknownType; } serializedType = objectInfo.serializedType; platform = assetsFile.m_TargetPlatform; m_Version = assetsFile.header.m_Version; }
public SerializedFileHeader Parse(EndianBinaryReader varStream) { MetadataSize = varStream.ReadUInt32(); FileSize = varStream.ReadUInt32(); Version = (SerializedFileFormatVersion)varStream.ReadUInt32(); { DataOffset = varStream.ReadUInt32(); Endianess = varStream.ReadByte(); Reserved = varStream.ReadBytes(3); MetadataSize = varStream.ReadUInt32(); FileSize = varStream.ReadInt64(); DataOffset = varStream.ReadInt64(); varStream.ReadInt64(); // unknown } return(this); //if (Version < SerializedFileFormatVersion.kLargeFilesSupport) //{ // DataOffset = varStream.ReadUInt32(); // Endianess = varStream.ReadByte(); // Reserved = varStream.ReadBytes(Reserved.Length); //} //else //{ // varStream.Seek(4, SeekOrigin.Current); // varStream.Seek(4, SeekOrigin.Current); // MetadataSize = varStream.ReadUInt32(); // varStream.Seek(4, SeekOrigin.Current); // FileSize = varStream.ReadUInt32(); // varStream.Seek(4, SeekOrigin.Current); // DataOffset = varStream.ReadUInt32(); // varStream.Seek(4, SeekOrigin.Current); // Endianess = varStream.ReadByte(); // Reserved = varStream.ReadBytes(Reserved.Length); //} }
public ObjectReader(EndianBinaryReader reader, SerializedFile assetsFile, ObjectInfo objectInfo) : base(reader.BaseStream, reader.endian) { this.assetsFile = assetsFile; m_PathID = objectInfo.m_PathID; byteStart = objectInfo.byteStart; byteSize = objectInfo.byteSize; if (Enum.IsDefined(typeof(ClassIDType), objectInfo.classID)) { type = (ClassIDType)objectInfo.classID; //Logger.Info(String.Format("object type {0} ({1})", type, objectInfo.classID)); } else { Logger.Error(String.Format("unknown type {0}", objectInfo.classID)); type = ClassIDType.UnknownType; } serializedType = objectInfo.serializedType; platform = assetsFile.m_TargetPlatform; m_Version = assetsFile.header.m_Version; }
public TypeTree Parse(EndianBinaryReader varStream, SerializedFileFormatVersion varFormat) { var tempNodeCount = varStream.ReadInt32(); var tempStringBufferSize = varStream.ReadInt32(); Nodes = new List <TypeTreeNode>(tempNodeCount); for (int i = 0; i < tempNodeCount; ++i) { var tempNode = new TypeTreeNode().Parse(varStream, varFormat); Nodes.Add(tempNode); } m_StringBuffer = varStream.ReadBytes(tempStringBufferSize); using (var stringBufferReader = new BinaryReader(new MemoryStream(m_StringBuffer))) { for (int i = 0; i < tempNodeCount; ++i) { var m_Node = Nodes[i]; m_Node.m_Type = ReadCommonString(stringBufferReader, m_Node.m_TypeStrOffset); m_Node.m_Name = ReadCommonString(stringBufferReader, m_Node.m_NameStrOffset); } } return(this); }
public SerializedType Parse(EndianBinaryReader varStream, bool varEnableTypeTree, SerializedFileFormatVersion varFormat, bool varRefType = false) { classID = (PersistentTypeID)varStream.ReadInt32(); IsStrippedType = varStream.ReadBoolean(); ScriptTypeIndex = varStream.ReadInt16(); if (classID == PersistentTypeID.MonoBehaviour) { m_ScriptID = varStream.ReadBytes(16); } m_OldTypeHash = varStream.ReadBytes(16); if (varEnableTypeTree) { mTypeTree = new TypeTree().Parse(varStream, varFormat); if (varFormat >= SerializedFileFormatVersion.kStoresTypeDependencies) { if (varRefType) { m_KlassName = varStream.ReadStringToNull(); m_NameSpace = varStream.ReadStringToNull(); m_AsmName = varStream.ReadStringToNull(); } else { m_TypeDependencies = varStream.ReadInt32Array(); } } } return(this); }