diff options
author | Alexander Reim | 2017-12-22 11:20:33 +0100 |
---|---|---|
committer | Alexander Reim | 2017-12-22 14:13:22 +0100 |
commit | 20d5a67f8b71c668ca304b85c1d8b91759922031 (patch) | |
tree | d6dff11c7238d7bc4d160c83a7b785b248c0ce6a /engines/sherlock | |
parent | f383f002742a952ac91dc515208e5f2add1b1956 (diff) | |
download | scummvm-rg350-20d5a67f8b71c668ca304b85c1d8b91759922031.tar.gz scummvm-rg350-20d5a67f8b71c668ca304b85c1d8b91759922031.tar.bz2 scummvm-rg350-20d5a67f8b71c668ca304b85c1d8b91759922031.zip |
SHERLOCK: Disable cache for uncompressed resources
Diffstat (limited to 'engines/sherlock')
-rw-r--r-- | engines/sherlock/resources.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/engines/sherlock/resources.cpp b/engines/sherlock/resources.cpp index ec7d60a1a2..9ed6951fbe 100644 --- a/engines/sherlock/resources.cpp +++ b/engines/sherlock/resources.cpp @@ -57,24 +57,23 @@ void Cache::load(const Common::String &name, Common::SeekableReadStream &stream) int32 signature = stream.readUint32BE(); stream.seek(0); - - // Allocate a new cache entry - _resources[name] = CacheEntry(); - CacheEntry &cacheEntry = _resources[name]; - + // Check whether the file is compressed if (signature == MKTAG('L', 'Z', 'V', 26)) { + + // Allocate a new cache entry + _resources[name] = CacheEntry(); + CacheEntry &cacheEntry = _resources[name]; + // It's compressed, so decompress the file and store its data in the cache entry Common::SeekableReadStream *decompressed = _vm->_res->decompress(stream); cacheEntry.resize(decompressed->size()); decompressed->read(&cacheEntry[0], decompressed->size()); delete decompressed; - } else { - // It's not, so read the raw data of the file into the cache entry - cacheEntry.resize(stream.size()); - stream.read(&cacheEntry[0], stream.size()); + } + } Common::SeekableReadStream *Cache::get(const Common::String &filename) const { |