diff options
-rw-r--r-- | engines/kyra/seqplayer.cpp | 5 | ||||
-rw-r--r-- | engines/kyra/sprites.cpp | 9 |
2 files changed, 10 insertions, 4 deletions
diff --git a/engines/kyra/seqplayer.cpp b/engines/kyra/seqplayer.cpp index 4837fb03dd..7080d27dc2 100644 --- a/engines/kyra/seqplayer.cpp +++ b/engines/kyra/seqplayer.cpp @@ -655,6 +655,11 @@ bool SeqPlayer::playSequence(const uint8 *seqData, bool skipSeq) { } delete[] _specialBuffer; _specialBuffer = 0; + + for (uint i = 0; i < ARRAYSIZE(_seqMovies); ++i) { + delete _seqMovies[i].movie; + _seqMovies[i].movie = 0; + } return seqSkippedFlag; } diff --git a/engines/kyra/sprites.cpp b/engines/kyra/sprites.cpp index 11a47f1527..4fa12fd687 100644 --- a/engines/kyra/sprites.cpp +++ b/engines/kyra/sprites.cpp @@ -65,10 +65,8 @@ void Sprites::setupSceneAnims() { uint8 *data; for (int i = 0; i < MAX_NUM_ANIMS; i++) { - if (_anims[i].background) { - delete[] _anims[i].background; - _anims[i].background = 0; - } + delete[] _anims[i].background; + _anims[i].background = 0; if (_anims[i].script != 0) { data = _anims[i].script; @@ -407,6 +405,9 @@ void Sprites::loadDat(const char *filename, SceneExits &exits) { _res->exists(filename, true); _dat = _res->fileData(filename, &fileSize); + for (uint i = 0; i < MAX_NUM_ANIMS; ++i) + delete[] _anims[i].background; + memset(_anims, 0, sizeof(_anims)); uint8 nextAnim = 0; |