aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/wintermute.cpp
diff options
context:
space:
mode:
authorEinar Johan Trøan Sømåen2012-06-25 15:13:34 +0200
committerEinar Johan Trøan Sømåen2012-06-25 15:13:34 +0200
commite68ab9b5721caaafd99d9936dd372fa266069957 (patch)
tree9f38572f20c4397d4870a44d429b6b231b1f5e64 /engines/wintermute/wintermute.cpp
parentd495c588977fc63e42c986e8404ac23ba40a4923 (diff)
downloadscummvm-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.cpp10
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);
}