From f2d5f65d3344d82964387ef110637328cc7b3a9b Mon Sep 17 00:00:00 2001 From: uruk Date: Sun, 13 Apr 2014 00:10:04 +0200 Subject: AVALANCHE: Fix Ghostroom's destructor. --- engines/avalanche/ghostroom.cpp | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) (limited to 'engines') diff --git a/engines/avalanche/ghostroom.cpp b/engines/avalanche/ghostroom.cpp index 68e3c9ba77..16c79fdee0 100644 --- a/engines/avalanche/ghostroom.cpp +++ b/engines/avalanche/ghostroom.cpp @@ -71,27 +71,29 @@ GhostRoom::~GhostRoom() { _greldet[j][i].free(); } - for (int i = 0; i < 5; i++) { - for (int j = 0; j < 2; j++) { - for (int y = 0; y < 66; y++) { - delete[] _ghost[i][j][y]; + if (_wasLoaded) { + for (int i = 0; i < 5; i++) { + for (int j = 0; j < 2; j++) { + for (int y = 0; y < 66; y++) { + delete[] _ghost[i][j][y]; + } + delete[] _ghost[i][j]; } - delete[] _ghost[i][j]; + delete[] _ghost[i]; } - delete[] _ghost[i]; - } - delete[] _ghost; - - for (int i = 0; i < 6; i++) { - for (int j = 0; j < 4; j++) { - for (int y = 0; y < 35; y++) { - delete[] _glerk[i][j][y]; + delete[] _ghost; + + for (int i = 0; i < 6; i++) { + for (int j = 0; j < 4; j++) { + for (int y = 0; y < 35; y++) { + delete[] _glerk[i][j][y]; + } + delete[] _glerk[i][j]; } - delete[] _glerk[i][j]; + delete[] _glerk[i]; } - delete[] _glerk[i]; + delete[] _glerk; } - delete[] _glerk; } void GhostRoom::wait(uint16 howLong) { -- cgit v1.2.3