diff options
author | Nicola Mettifogo | 2009-03-28 14:03:51 +0000 |
---|---|---|
committer | Nicola Mettifogo | 2009-03-28 14:03:51 +0000 |
commit | a9f5340cbaea79c12f66e0f50c82ab44c037752f (patch) | |
tree | ba8f63833c31352324f96f6010c1ec6cd96eea60 /engines | |
parent | 7bfa1455bcc4461286ebb1395a66f6c3b713277b (diff) | |
download | scummvm-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')
-rw-r--r-- | engines/parallaction/parallaction_br.cpp | 10 |
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); |