aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/parallaction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/parallaction/parallaction.cpp')
-rw-r--r--engines/parallaction/parallaction.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/engines/parallaction/parallaction.cpp b/engines/parallaction/parallaction.cpp
index d66b1af1f1..cd723181d9 100644
--- a/engines/parallaction/parallaction.cpp
+++ b/engines/parallaction/parallaction.cpp
@@ -89,16 +89,18 @@ Parallaction::~Parallaction() {
delete _globalTable;
delete _callableNames;
- delete _localFlagNames;
+ //delete _localFlagNames;
freeLocation();
freeCharacter();
destroyInventory();
+ delete _localFlagNames;
delete _gfx;
delete _soundMan;
delete _disk;
+ delete _input;
}
@@ -354,12 +356,20 @@ void Parallaction::runGame() {
processInput(data);
}
+ if (_engineFlags & kEngineQuit)
+ return;
+
runPendingZones();
+ if (_engineFlags & kEngineQuit)
+ return;
+
if (_engineFlags & kEngineChangeLocation) {
changeLocation(_location._name);
}
+ if (_engineFlags & kEngineQuit)
+ return;
_gfx->beginFrame();
@@ -522,6 +532,7 @@ void Character::free() {
delete _talk;
delete _head;
delete _objs;
+ delete _ani->gfxobj;
_ani->gfxobj = NULL;
_talk = NULL;