aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sherlock/scene.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/engines/sherlock/scene.cpp b/engines/sherlock/scene.cpp
index 3cc84936b0..ec7831820a 100644
--- a/engines/sherlock/scene.cpp
+++ b/engines/sherlock/scene.cpp
@@ -295,16 +295,19 @@ bool Scene::loadScene(const Common::String &filename) {
}
// Load in cAnim list
- Common::SeekableReadStream *canimStream = _lzwMode ?
- decompressLZ(*rrmStream, 65 * bgHeader._numcAnimations) :
- rrmStream->readStream(65 * bgHeader._numcAnimations);
+ _cAnim.clear();
+ if (bgHeader._numcAnimations) {
+ Common::SeekableReadStream *canimStream = _lzwMode ?
+ decompressLZ(*rrmStream, 65 * bgHeader._numcAnimations) :
+ rrmStream->readStream(65 * bgHeader._numcAnimations);
- _cAnim.resize(bgHeader._numcAnimations);
- for (uint idx = 0; idx < _cAnim.size(); ++idx)
- _cAnim[idx].synchronize(*canimStream);
+ _cAnim.resize(bgHeader._numcAnimations);
+ for (uint idx = 0; idx < _cAnim.size(); ++idx)
+ _cAnim[idx].synchronize(*canimStream);
+
+ delete canimStream;
+ }
- delete canimStream;
-
// Read in the room bounding areas
int size = rrmStream->readUint16LE();
Common::SeekableReadStream *boundsStream = !_lzwMode ? rrmStream :