diff options
author | Nicola Mettifogo | 2007-12-08 11:07:03 +0000 |
---|---|---|
committer | Nicola Mettifogo | 2007-12-08 11:07:03 +0000 |
commit | bf2bc3db80030c68325ac3c37ccf692f3b420df2 (patch) | |
tree | 30e266a2438bb35155ee381bfc52558f19f6de4e | |
parent | e204af821f035deae3367b249cf91b34efe91ee3 (diff) | |
download | scummvm-rg350-bf2bc3db80030c68325ac3c37ccf692f3b420df2.tar.gz scummvm-rg350-bf2bc3db80030c68325ac3c37ccf692f3b420df2.tar.bz2 scummvm-rg350-bf2bc3db80030c68325ac3c37ccf692f3b420df2.zip |
Fix for bug #1837503. Location switches can be scheduled recursively, so now flags needed to be handled in a safer way to prevent inconsistencies.
svn-id: r29763
-rw-r--r-- | engines/parallaction/parallaction_ns.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/engines/parallaction/parallaction_ns.cpp b/engines/parallaction/parallaction_ns.cpp index 6541498988..36f576f38b 100644 --- a/engines/parallaction/parallaction_ns.cpp +++ b/engines/parallaction/parallaction_ns.cpp @@ -370,6 +370,10 @@ void Parallaction_ns::changeLocation(char *location) { _gfx->setBlackPalette(); _gfx->updateScreen(); + // BUG #1837503: kEngineChangeLocation flag must be cleared *before* commands + // and acommands are executed, so that it can be set again if needed. + _engineFlags &= ~kEngineChangeLocation; + runCommands(_location._commands); doLocationEnterTransition(); @@ -381,8 +385,6 @@ void Parallaction_ns::changeLocation(char *location) { debugC(1, kDebugExec, "changeLocation() done"); - _engineFlags &= ~kEngineChangeLocation; - return; } |