aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/parallaction_br.cpp
diff options
context:
space:
mode:
authorNicola Mettifogo2008-11-08 14:56:45 +0000
committerNicola Mettifogo2008-11-08 14:56:45 +0000
commit55810309725b02b26ab17ddc02cbba2361977a2b (patch)
treee976a14d71ab1e5e8308c4c13c3a2095b1126ab5 /engines/parallaction/parallaction_br.cpp
parent767485840f8259c8441b2879eec5cb327c79e049 (diff)
downloadscummvm-rg350-55810309725b02b26ab17ddc02cbba2361977a2b.tar.gz
scummvm-rg350-55810309725b02b26ab17ddc02cbba2361977a2b.tar.bz2
scummvm-rg350-55810309725b02b26ab17ddc02cbba2361977a2b.zip
* removed the obsolete _quit flag
* refactored most cleanup code for locations and game svn-id: r34939
Diffstat (limited to 'engines/parallaction/parallaction_br.cpp')
-rw-r--r--engines/parallaction/parallaction_br.cpp18
1 files changed, 4 insertions, 14 deletions
diff --git a/engines/parallaction/parallaction_br.cpp b/engines/parallaction/parallaction_br.cpp
index fe179a0ba4..9c71303aeb 100644
--- a/engines/parallaction/parallaction_br.cpp
+++ b/engines/parallaction/parallaction_br.cpp
@@ -169,7 +169,7 @@ void Parallaction_br::runPendingZones() {
}
}
-void Parallaction_br::freeLocation() {
+void Parallaction_br::freeLocation(bool removeAll) {
// free open location stuff
clearSubtitles();
@@ -178,24 +178,14 @@ void Parallaction_br::freeLocation() {
_gfx->freeLabels();
_subtitle[0] = _subtitle[1] = -1;
- _location._programs.clear();
-
_location._animations.remove(_char._ani);
-
- freeZones();
- freeAnimations();
-
+ _location.cleanup(removeAll);
_location._animations.push_front(_char._ani);
- free(_location._comment);
- _location._comment = 0;
- _location._commands.clear();
- _location._aCommands.clear();
-
}
void Parallaction_br::cleanupGame() {
- freeLocation();
+ freeLocation(true);
// freeCharacter();
@@ -241,7 +231,7 @@ void Parallaction_br::changeLocation(char *location) {
parseLocation("common.slf");
}
- freeLocation();
+ freeLocation(false);
// load new location
parseLocation(location);
// kFlagsRemove is cleared because the character is visible by default.