diff options
| -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;  | 
