diff options
-rw-r--r-- | engines/director/score.cpp | 12 | ||||
-rw-r--r-- | engines/director/score.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/engines/director/score.cpp b/engines/director/score.cpp index d1c198fe59..2f9f619eec 100644 --- a/engines/director/score.cpp +++ b/engines/director/score.cpp @@ -95,6 +95,14 @@ Score::Score(Archive &movie, Lingo &lingo) { } +Score::~Score() { + _surface->free(); + delete _surface; + + _movieArchive->close(); + delete _movieArchive; +} + void Score::loadFrames(Common::SeekableReadStream &stream) { uint32 size = stream.readUint32BE(); size -= 4; @@ -538,6 +546,10 @@ Frame::~Frame() { for (uint16 i = 0; i < _sprites.size(); i++) { delete _sprites[i]; } + + for (uint16 i = 0; i < _drawRects.size(); i++) { + delete _drawRects[i]; + } } void Frame::readChannel(Common::SeekableReadStream &stream, uint16 offset, uint16 size) { diff --git a/engines/director/score.h b/engines/director/score.h index 00c3294394..3cebbbf542 100644 --- a/engines/director/score.h +++ b/engines/director/score.h @@ -265,6 +265,7 @@ public: class Score { public: Score(Archive &movie, Lingo &lingo); + ~Score(); static Common::Rect readRect(Common::SeekableReadStream &stream); void startLoop(); |