public static RTTIBaseClassDescriptor Read(DataReader reader)
        {
            RTTIBaseClassDescriptor bcd = new RTTIBaseClassDescriptor();

            bcd.ClassID = reader.ReadInt32();
            bcd.TypeTree = TypeNode.Read(reader);

            return bcd;
        }
Пример #2
0
        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;
        }
Пример #3
0
        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;
        }
Пример #5
0
        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;
        }
Пример #6
0
        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;
        }