예제 #1
0
파일: Version7.cs 프로젝트: revel8n/rpftool
        private byte[] LoadData(FileEntry entry, bool getCustom)
        {
            /*
            if (entry.CustomData == null)
            {

                byte[] data = _rpfFile.ReadData(entry.Offset, entry.SizeInArchive);

                if (entry.IsCompressed)
                {
                    data = DataUtil.DecompressDeflate(data, entry.Size);
                }

                return data;
            }
            else
            {
                return entry.CustomData;
            }
             */

            byte[] data;
            if (getCustom && entry.CustomData != null)
                data = entry.CustomData;
            else
                data = _rpfFile.ReadData(entry.Offset, entry.SizeInArchive);
            if (entry.IsCompressed && entry.IsEncrypted && !entry.IsResourceFile)
            {
                data = DataUtil.DecryptNew(data);
                data = xcompress2.Decompress(data, (int)entry.Size);
            }
            else if (entry.IsCompressed && !entry.IsEncrypted && !entry.IsResourceFile)
            {
                data = xcompress2.Decompress(data, (int)entry.Size);
            }
            return data;
        }
예제 #2
0
파일: Version7.cs 프로젝트: revel8n/rpftool
 private void StoreData(FileEntry entry, byte[] data)
 {
     entry.SetCustomData(data);
 }