public static RTTIBaseClassDescriptor Read(DataReader reader) { RTTIBaseClassDescriptor bcd = new RTTIBaseClassDescriptor(); bcd.ClassID = reader.ReadInt32(); bcd.TypeTree = TypeNode.Read(reader); return bcd; }
public static FileIdentifier Read(DataReader reader, bool includeAssetPath) { FileIdentifier fi = new FileIdentifier(); if (includeAssetPath) { fi.AssetPath = reader.ReadString(); } fi.GUID = reader.ReadBytes(16); fi.Type = reader.ReadInt32(); fi.FilePath = reader.ReadString(); return fi; }
public static ObjectData Read(DataReader reader, ObjectInfo info, int dataOffset) { ObjectData od = new ObjectData(); od.ObjectID = info.ObjectID; od.TypeID = info.TypeID; od.ClassID = info.ClassID; od.ScriptTypeIndex = info.ScriptTypeIndex; od.IsStripped = info.IsStripped; reader.JumpTo(dataOffset + info.ByteStart); od.Bytes = reader.ReadBytes(info.ByteSize); return od; }
public static RTTIClassHierarchyDescriptor Read(DataReader reader) { RTTIClassHierarchyDescriptor chd = new RTTIClassHierarchyDescriptor(); chd.Signature = reader.ReadString(); chd.Attributes = reader.ReadInt32(); chd.NumberOfBaseClasses = reader.ReadInt32(); chd.BaseClassDescriptors = new RTTIBaseClassDescriptor[chd.NumberOfBaseClasses]; for (int i = 0; i < chd.NumberOfBaseClasses; i++) { chd.BaseClassDescriptors[i] = RTTIBaseClassDescriptor.Read(reader); } reader.ReadBytes(4); //Read padding bytes return chd; }
public static TypeNode Read(DataReader reader) { TypeNode tn = new TypeNode(); tn.Type = reader.ReadString(); tn.Name = reader.ReadString(); tn.ByteSize = reader.ReadInt32(); tn.Index = reader.ReadInt32(); tn.IsArray = reader.ReadInt32(); tn.Version = reader.ReadInt32(); tn.MetaFlag = reader.ReadInt32(); int numberOfChildren = reader.ReadInt32(); tn.Children = new TypeNode[numberOfChildren]; for (int i = 0; i < numberOfChildren; i++) { tn.Children[i] = TypeNode.Read(reader); } return tn; }
public static ObjectInfo Read(DataReader reader, bool unity5Formatting) { ObjectInfo oi = new ObjectInfo(); if (unity5Formatting) { oi.ObjectID = reader.ReadInt64(); } else { oi.ObjectID = reader.ReadInt32(); } oi.ByteStart = reader.ReadInt32(); oi.ByteSize = reader.ReadInt32(); oi.TypeID = reader.ReadInt32(); oi.ClassID = reader.ReadInt16(); if (unity5Formatting) { oi.ScriptTypeIndex = reader.ReadInt16(); oi.IsStripped = reader.ReadBoolean() ? (short)1 : (short)0; } else { oi.IsStripped = reader.ReadInt16(); } return oi; }