aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/exec_ns.cpp
diff options
context:
space:
mode:
authorNicola Mettifogo2008-07-13 03:39:42 +0000
committerNicola Mettifogo2008-07-13 03:39:42 +0000
commit2a80bd0678c29787dd9959cf66842f2e0483327e (patch)
treee5687bb3ce18ea7e4aa73599f17ac55792b771f5 /engines/parallaction/exec_ns.cpp
parent9c2d96530be10b2f8badb500330f744bd6cdc937 (diff)
downloadscummvm-rg350-2a80bd0678c29787dd9959cf66842f2e0483327e.tar.gz
scummvm-rg350-2a80bd0678c29787dd9959cf66842f2e0483327e.tar.bz2
scummvm-rg350-2a80bd0678c29787dd9959cf66842f2e0483327e.zip
Cleanup and improved debugging output for CommandExec::run()
svn-id: r33022
Diffstat (limited to 'engines/parallaction/exec_ns.cpp')
-rw-r--r--engines/parallaction/exec_ns.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/engines/parallaction/exec_ns.cpp b/engines/parallaction/exec_ns.cpp
index 4ee0aca6c1..d1cfb14557 100644
--- a/engines/parallaction/exec_ns.cpp
+++ b/engines/parallaction/exec_ns.cpp
@@ -418,28 +418,38 @@ label1:
void CommandExec::run(CommandList& list, ZonePtr z) {
- if (list.size() == 0)
+ if (list.size() == 0) {
+ debugC(3, kDebugExec, "runCommands: nothing to do");
return;
+ }
+
+ debugC(3, kDebugExec, "runCommands starting");
- debugC(3, kDebugExec, "runCommands");
+ uint32 useFlags = 0;
+ bool useLocalFlags;
CommandList::iterator it = list.begin();
for ( ; it != list.end(); it++) {
-
- CommandPtr cmd = *it;
- uint32 v8 = _vm->getLocationFlags();
-
if (_engineFlags & kEngineQuit)
break;
+ CommandPtr cmd = *it;
+
if (cmd->_flagsOn & kFlagsGlobal) {
- v8 = _commandFlags | kFlagsGlobal;
+ useFlags = _commandFlags | kFlagsGlobal;
+ useLocalFlags = false;
+ } else {
+ useFlags = _vm->getLocationFlags();
+ useLocalFlags = true;
}
- debugC(3, kDebugExec, "runCommands[%i] (on: %x, off: %x)", cmd->_id, cmd->_flagsOn, cmd->_flagsOff);
+ bool onMatch = (cmd->_flagsOn & useFlags) == cmd->_flagsOn;
+ bool offMatch = (cmd->_flagsOff & ~useFlags) == cmd->_flagsOff;
+
+ debugC(3, kDebugExec, "runCommands[%i] (on: %x, off: %x), (%s = %x)", cmd->_id, cmd->_flagsOn, cmd->_flagsOff,
+ useLocalFlags ? "LOCALFLAGS" : "GLOBALFLAGS", useFlags);
- if ((cmd->_flagsOn & v8) != cmd->_flagsOn) continue;
- if ((cmd->_flagsOff & ~v8) != cmd->_flagsOff) continue;
+ if (!onMatch || !offMatch) continue;
_ctxt.z = z;
_ctxt.cmd = cmd;