diff options
author | Einar Johan Trøan Sømåen | 2012-06-25 15:13:34 +0200 |
---|---|---|
committer | Einar Johan Trøan Sømåen | 2012-06-25 15:13:34 +0200 |
commit | e68ab9b5721caaafd99d9936dd372fa266069957 (patch) | |
tree | 9f38572f20c4397d4870a44d429b6b231b1f5e64 /engines/wintermute/wintermute.cpp | |
parent | d495c588977fc63e42c986e8404ac23ba40a4923 (diff) | |
download | scummvm-rg350-e68ab9b5721caaafd99d9936dd372fa266069957.tar.gz scummvm-rg350-e68ab9b5721caaafd99d9936dd372fa266069957.tar.bz2 scummvm-rg350-e68ab9b5721caaafd99d9936dd372fa266069957.zip |
WINTERMUTE: Make the ClassRegistry clean up after itself when returning to launcher
Diffstat (limited to 'engines/wintermute/wintermute.cpp')
-rw-r--r-- | engines/wintermute/wintermute.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/engines/wintermute/wintermute.cpp b/engines/wintermute/wintermute.cpp index 06ab932f21..f34aa0d9f6 100644 --- a/engines/wintermute/wintermute.cpp +++ b/engines/wintermute/wintermute.cpp @@ -66,6 +66,7 @@ WinterMuteEngine::WinterMuteEngine(OSystem *syst) _game = NULL; g_wintermute = this; + _classReg = NULL; } WinterMuteEngine::~WinterMuteEngine() { @@ -132,11 +133,14 @@ Common::Error WinterMuteEngine::run() { if (ret == 0) { ret = messageLoop(); } + deinit(); return Common::kNoError; } int WinterMuteEngine::init() { - registerClasses(); // Needs to be done before the first WME class is instantiated + _classReg = new CSysClassRegistry(); + _classReg->registerClasses(); + _game = new CAdGame; if (!_game) return 1; CBPlatform::Initialize(_game, 0, NULL); @@ -306,6 +310,10 @@ int WinterMuteEngine::messageLoop() { return 0; } +void WinterMuteEngine::deinit() { + delete _classReg; +} + uint32 WinterMuteEngine::randInt(int from, int to) { return _rnd->getRandomNumberRng(from, to); } |