aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction
diff options
context:
space:
mode:
authorNicola Mettifogo2009-03-28 14:03:51 +0000
committerNicola Mettifogo2009-03-28 14:03:51 +0000
commita9f5340cbaea79c12f66e0f50c82ab44c037752f (patch)
treeba8f63833c31352324f96f6010c1ec6cd96eea60 /engines/parallaction
parent7bfa1455bcc4461286ebb1395a66f6c3b713277b (diff)
downloadscummvm-rg350-a9f5340cbaea79c12f66e0f50c82ab44c037752f.tar.gz
scummvm-rg350-a9f5340cbaea79c12f66e0f50c82ab44c037752f.tar.bz2
scummvm-rg350-a9f5340cbaea79c12f66e0f50c82ab44c037752f.zip
Save zone and animation flags when a location is closed. This fixes bug #2718462.
svn-id: r39722
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);