aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction
diff options
context:
space:
mode:
Diffstat (limited to 'engines/parallaction')
-rw-r--r--engines/parallaction/parallaction_br.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/engines/parallaction/parallaction_br.cpp b/engines/parallaction/parallaction_br.cpp
index 89166c8d19..87aa8289ab 100644
--- a/engines/parallaction/parallaction_br.cpp
+++ b/engines/parallaction/parallaction_br.cpp
@@ -207,6 +207,16 @@ void Parallaction_br::freeLocation(bool removeAll) {
_gfx->freeLocationObjects();
+ // save zone and animation flags
+ ZoneList::iterator zit = _location._zones.begin();
+ for ( ; zit != _location._zones.end(); ++zit) {
+ restoreOrSaveZoneFlags(*zit, false);
+ }
+ AnimationList::iterator ait = _location._animations.begin();
+ for ( ; ait != _location._animations.end(); ++ait) {
+ restoreOrSaveZoneFlags(*ait, false);
+ }
+
_location._animations.remove(_char._ani);
_location.cleanup(removeAll);
_location._animations.push_front(_char._ani);