public void Read(SerializedFileReader reader, RTTIClassHierarchyDescriptor heirarchy) { if (IsReadLongID(reader.Generation)) { reader.AlignStream(AlignType.Align4); PathID = reader.ReadInt64(); } else { PathID = reader.ReadInt32(); } Offset = reader.ReadUInt32(); Size = reader.ReadInt32(); if (IsReadTypeIndex(reader.Generation)) { int TypeIndex = reader.ReadInt32(); RTTIBaseClassDescriptor type = heirarchy.Types[TypeIndex]; TypeID = type.ClassID == ClassIDType.MonoBehaviour ? (-type.ScriptID - 1) : (int)type.ClassID; ClassID = type.ClassID; ScriptID = type.ScriptID; } else { TypeID = reader.ReadInt32(); ClassID = (ClassIDType)reader.ReadInt16(); ScriptID = reader.ReadInt16(); } if (IsReadUnknown(reader.Generation)) { IsStripped = reader.ReadBoolean(); } }
public static void CombineFormats(FileGeneration generation, ref RTTIBaseClassDescriptor origin) { if (origin.Tree != null) { TypeTreeConverter.CombineFormats(generation, origin.Tree); } }
public static void CombineFormats(FileGeneration generation, SerializedFileMetadata origin) { RTTIClassHierarchyDescriptorConverter.CombineFormats(generation, ref origin.Hierarchy); if (AssetEntry.HasTypeIndex(generation)) { for (int i = 0; i < origin.Entries.Length; i++) { ref AssetEntry entry = ref origin.Entries[i]; ref RTTIBaseClassDescriptor type = ref origin.Hierarchy.Types[entry.TypeIndex]; entry.TypeID = type.ClassID == ClassIDType.MonoBehaviour ? (-type.ScriptID - 1) : (int)type.ClassID; entry.ClassID = type.ClassID; entry.ScriptID = type.ScriptID; }