Search in sources :

Example 6 with DataReader

use of info.ata4.io.DataReader in project disunity by ata4.

the class TypeTreeV3 method read.

@Override
public void read(DataReader in) throws IOException {
    revision = new UnityVersion(in.readStringNull(255));
    attributes = in.readInt();
    embedded = in.readBoolean();
    int numBaseClasses = in.readInt();
    for (int i = 0; i < numBaseClasses; i++) {
        int classID = in.readInt();
        TypeRoot typeRoot = new TypeRoot();
        typeRoot.classID(classID);
        if (classID < 0) {
            UnityHash128 scriptID = new UnityHash128();
            in.readStruct(scriptID);
            typeRoot.scriptID(scriptID);
        }
        UnityHash128 oldTypeHash = new UnityHash128();
        in.readStruct(oldTypeHash);
        typeRoot.oldTypeHash(oldTypeHash);
        if (embedded) {
            Node<T> node = new Node<>();
            readNode(in, node);
            typeRoot.nodes(node);
        }
        typeMap.put(classID, typeRoot);
    }
}
Also used : Node(info.ata4.util.collection.Node) UnityVersion(info.ata4.junity.UnityVersion) UnityHash128(info.ata4.junity.UnityHash128)

Example 7 with DataReader

use of info.ata4.io.DataReader in project disunity by ata4.

the class TypeTreeV2 method read.

@Override
public void read(DataReader in) throws IOException {
    revision = new UnityVersion(in.readStringNull(255));
    attributes = in.readInt();
    super.read(in);
    // padding
    in.readInt();
}
Also used : UnityVersion(info.ata4.junity.UnityVersion)

Example 8 with DataReader

use of info.ata4.io.DataReader in project disunity by ata4.

the class SerializedFileMetadata method read.

@Override
public void read(DataReader in) throws IOException {
    // load type tree
    if (version > 13) {
        typeTree = new TypeTreeV3(TypeV2.class);
    } else if (version > 6) {
        typeTree = new TypeTreeV2(TypeV1.class);
    } else {
        typeTree = new TypeTreeV1(TypeV1.class);
    }
    typeTreeBlock.markBegin(in);
    in.readStruct(typeTree);
    typeTreeBlock.markEnd(in);
    L.log(Level.FINER, "typeTreeBlock: {0}", typeTreeBlock);
    // load object info table
    if (version > 14) {
        objectInfoTable = new ObjectInfoTableV2(ObjectInfoV3.class);
    } else if (version > 13) {
        objectInfoTable = new ObjectInfoTableV2(ObjectInfoV2.class);
    } else {
        objectInfoTable = new ObjectInfoTableV1(ObjectInfoV1.class);
    }
    objectInfoBlock.markBegin(in);
    in.readStruct(objectInfoTable);
    objectInfoBlock.markEnd(in);
    L.log(Level.FINER, "objectInfoBlock: {0}", objectInfoBlock);
    // load object identifiers (Unity 5+ only)
    objectIDTable = new ObjectIdentifierTable();
    if (version > 10) {
        objectIDBlock.markBegin(in);
        in.readStruct(objectIDTable);
        objectIDBlock.markEnd(in);
        L.log(Level.FINER, "objectIDBlock: {0}", objectIDBlock);
    }
    // load external references
    if (version > 5) {
        externals = new FileIdentifierTable(FileIdentifierV2.class);
    } else {
        externals = new FileIdentifierTable(FileIdentifierV1.class);
    }
    externalsBlock.markBegin(in);
    in.readStruct(externals);
    externalsBlock.markEnd(in);
    L.log(Level.FINER, "externalsBlock: {0}", externalsBlock);
}
Also used : ObjectInfoTableV1(info.ata4.junity.serialize.objectinfo.ObjectInfoTableV1) ObjectInfoTableV2(info.ata4.junity.serialize.objectinfo.ObjectInfoTableV2) FileIdentifierTable(info.ata4.junity.serialize.fileidentifier.FileIdentifierTable) TypeTreeV3(info.ata4.junity.serialize.typetree.TypeTreeV3) TypeV2(info.ata4.junity.serialize.typetree.TypeV2) TypeTreeV2(info.ata4.junity.serialize.typetree.TypeTreeV2) TypeTreeV1(info.ata4.junity.serialize.typetree.TypeTreeV1) ObjectInfoV3(info.ata4.junity.serialize.objectinfo.ObjectInfoV3) ObjectIdentifierTable(info.ata4.junity.serialize.objectidentifier.ObjectIdentifierTable) FileIdentifierV2(info.ata4.junity.serialize.fileidentifier.FileIdentifierV2) FileIdentifierV1(info.ata4.junity.serialize.fileidentifier.FileIdentifierV1)

Aggregations

UnityVersion (info.ata4.junity.UnityVersion)3 DataBlock (info.ata4.util.io.DataBlock)3 DataReader (info.ata4.io.DataReader)1 UnityHash128 (info.ata4.junity.UnityHash128)1 FileIdentifierTable (info.ata4.junity.serialize.fileidentifier.FileIdentifierTable)1 FileIdentifierV1 (info.ata4.junity.serialize.fileidentifier.FileIdentifierV1)1 FileIdentifierV2 (info.ata4.junity.serialize.fileidentifier.FileIdentifierV2)1 ObjectIdentifierTable (info.ata4.junity.serialize.objectidentifier.ObjectIdentifierTable)1 ObjectInfo (info.ata4.junity.serialize.objectinfo.ObjectInfo)1 ObjectInfoTableV1 (info.ata4.junity.serialize.objectinfo.ObjectInfoTableV1)1 ObjectInfoTableV2 (info.ata4.junity.serialize.objectinfo.ObjectInfoTableV2)1 ObjectInfoV3 (info.ata4.junity.serialize.objectinfo.ObjectInfoV3)1 TypeRoot (info.ata4.junity.serialize.typetree.TypeRoot)1 TypeTreeV1 (info.ata4.junity.serialize.typetree.TypeTreeV1)1 TypeTreeV2 (info.ata4.junity.serialize.typetree.TypeTreeV2)1 TypeTreeV3 (info.ata4.junity.serialize.typetree.TypeTreeV3)1 TypeV2 (info.ata4.junity.serialize.typetree.TypeV2)1 Node (info.ata4.util.collection.Node)1 InputStream (java.io.InputStream)1 ByteBuffer (java.nio.ByteBuffer)1