aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/kyra/seqplayer.cpp5
-rw-r--r--engines/kyra/sprites.cpp9
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;