aboutsummaryrefslogtreecommitdiff
path: root/engines/teenagent/teenagent.cpp
diff options
context:
space:
mode:
authorD G Turner2012-07-26 09:18:57 +0100
committerD G Turner2012-07-26 09:18:57 +0100
commitf137c75e4619d5ae8a103bfb800018da38d0c552 (patch)
tree6c14361ada4b44ff34410dc33237d0f50371e656 /engines/teenagent/teenagent.cpp
parent72adca69f327a1d6a6b6e0c09447d05a74151a8d (diff)
downloadscummvm-rg350-f137c75e4619d5ae8a103bfb800018da38d0c552.tar.gz
scummvm-rg350-f137c75e4619d5ae8a103bfb800018da38d0c552.tar.bz2
scummvm-rg350-f137c75e4619d5ae8a103bfb800018da38d0c552.zip
TEENAGENT: Migrate deinit functions to constructor/destructors.
This removes a number of memory leaks.
Diffstat (limited to 'engines/teenagent/teenagent.cpp')
-rw-r--r--engines/teenagent/teenagent.cpp32
1 files changed, 13 insertions, 19 deletions
diff --git a/engines/teenagent/teenagent.cpp b/engines/teenagent/teenagent.cpp
index a14fffd77f..acfc0cbc17 100644
--- a/engines/teenagent/teenagent.cpp
+++ b/engines/teenagent/teenagent.cpp
@@ -73,10 +73,20 @@ TeenAgentEngine::TeenAgentEngine(OSystem *system, const ADGameDescription *gd)
}
TeenAgentEngine::~TeenAgentEngine() {
- delete music;
delete dialog;
- res->deinit();
+ dialog = 0;
+ delete scene;
+ scene = 0;
+ delete inventory;
+ inventory = 0;
+ delete music;
+ music = 0;
+ _mixer->stopAll();
+ use_hotspots.clear();
delete res;
+ res = 0;
+
+ CursorMan.popCursor();
delete console;
DebugMan.clearAllDebugChannels();
@@ -206,19 +216,6 @@ void TeenAgentEngine::init() {
}
}
-void TeenAgentEngine::deinit() {
- _mixer->stopAll();
- delete scene;
- scene = NULL;
- delete inventory;
- inventory = NULL;
- //delete music;
- //music = NULL;
- use_hotspots.clear();
- res->deinit();
- CursorMan.popCursor();
-}
-
Common::Error TeenAgentEngine::loadGameState(int slot) {
debug(0, "loading from slot %d", slot);
Common::ScopedPtr<Common::InSaveFile> in(_saveFileMan->openForLoading(Common::String::format("teenagent.%02d", slot)));
@@ -579,10 +576,8 @@ Common::Error TeenAgentEngine::run() {
Object *current_object = scene->findObject(mouse);
while (_event->pollEvent(event)) {
- if (event.type == Common::EVENT_RTL) {
- deinit();
+ if (event.type == Common::EVENT_RTL)
return Common::kNoError;
- }
if ((!scene_busy && inventory->processEvent(event)) || scene->processEvent(event))
continue;
@@ -702,7 +697,6 @@ Common::Error TeenAgentEngine::run() {
}
} while (!shouldQuit());
- deinit();
return Common::kNoError;
}