diff options
author | Thanasis Antoniou | 2019-09-10 19:18:12 +0300 |
---|---|---|
committer | Thanasis Antoniou | 2019-09-10 19:18:45 +0300 |
commit | 2003c12bc3fcdd8540cbe8942c86980f2d1b2131 (patch) | |
tree | d2518d57f9488f5edbfc0b333f58f449027dfb87 /engines | |
parent | bef3f902e693a4f17fef896d8a991077d1a602a6 (diff) | |
download | scummvm-rg350-2003c12bc3fcdd8540cbe8942c86980f2d1b2131.tar.gz scummvm-rg350-2003c12bc3fcdd8540cbe8942c86980f2d1b2131.tar.bz2 scummvm-rg350-2003c12bc3fcdd8540cbe8942c86980f2d1b2131.zip |
BLADERUNNER: Move shutdown() in Engine destructor
Diffstat (limited to 'engines')
-rw-r--r-- | engines/bladerunner/bladerunner.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp index a2fa003ae6..e83c8114a1 100644 --- a/engines/bladerunner/bladerunner.cpp +++ b/engines/bladerunner/bladerunner.cpp @@ -226,6 +226,7 @@ BladeRunnerEngine::BladeRunnerEngine(OSystem *syst, const ADGameDescription *des } BladeRunnerEngine::~BladeRunnerEngine() { + shutdown(); } bool BladeRunnerEngine::hasFeature(EngineFeature f) const { @@ -322,7 +323,7 @@ Common::Error BladeRunnerEngine::run() { } missingFileStr += missingFiles[i]; } - + // shutting down return Common::Error(Common::kNoGameDataFoundError, missingFileStr); } @@ -335,7 +336,7 @@ Common::Error BladeRunnerEngine::run() { bool hasSavegames = !SaveFileManager::list(_targetName).empty(); if (!startup(hasSavegames)) { - shutdown(); + // shutting down return Common::Error(Common::kUnknownError, _("Failed to initialize resources")); } @@ -402,8 +403,7 @@ Common::Error BladeRunnerEngine::run() { } } while (_gameOver); // if main game loop ended and _gameOver == false, then shutdown - shutdown(); - + // shutting down return Common::kNoError; } @@ -798,7 +798,11 @@ void BladeRunnerEngine::shutdown() { _playerActor = nullptr; delete _actors[kActorVoiceOver]; _actors[kActorVoiceOver] = nullptr; - int actorCount = (int)_gameInfo->getActorCount(); + int actorCount = kActorCount; + if (_gameInfo) { + actorCount = (int)_gameInfo->getActorCount(); + } + for (int i = 0; i < actorCount; ++i) { delete _actors[i]; _actors[i] = nullptr; |