コード例 #1
0
        public void Read(AssetsFileReader reader)
        {
            reader.bigEndian = false;
            header           = reader.ReadStringLength(4);
            if (header != "cldb")
            {
                throw new Exception("header not detected. is this a cldb file?");
            }
            fileVersion = reader.ReadByte();
            flags       = 0;
            if (fileVersion == 4)
            {
                flags = reader.ReadByte();
            }
            switch (fileVersion)
            {
            case 1:
                compressionType = 0;
                break;

            case 2:
                compressionType = reader.ReadByte();
                break;

            case 3:
            case 4:
                compressionType  = reader.ReadByte();
                compressedSize   = reader.ReadUInt32();
                uncompressedSize = reader.ReadUInt32();
                break;

            default:
                return;
            }
            unityVersionCount = reader.ReadByte();
            unityVersions     = new string[unityVersionCount];
            for (int i = 0; i < unityVersionCount; i++)
            {
                unityVersions[i] = reader.ReadCountString();
            }
            stringTableLen = reader.ReadUInt32();
            stringTablePos = reader.ReadUInt32();
        }
コード例 #2
0
        public ulong Read(AssetsFileReader reader, ulong filePos)
        {
            reader.bigEndian = false;
            header           = reader.ReadStringLength(4);
            if (header != "cldb")
            {
                return(reader.Position);
            }
            fileVersion = reader.ReadByte();
            switch (fileVersion)
            {
            case 1:
                break;

            case 3:
                compressionType = reader.ReadByte();
                if (compressionType != 0)
                {
                    return(reader.Position);
                }
                compressedSize   = reader.ReadUInt32();
                uncompressedSize = reader.ReadUInt32();
                break;

            default:
                return(reader.Position);
            }
            unityVersionCount = reader.ReadByte();
            pUnityVersions    = new string[unityVersionCount];
            for (int i = 0; i < unityVersionCount; i++)
            {
                pUnityVersions[i] = reader.ReadCountString();
            }
            stringTableLen = reader.ReadUInt32();
            stringTablePos = reader.ReadUInt32();
            return(reader.Position);
        }