aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Montoir2006-03-25 20:15:41 +0000
committerGregory Montoir2006-03-25 20:15:41 +0000
commit575c831684d2c2584c6ff64e2e6d4ce960526a7e (patch)
treef6cfda1b12fe781af5a5b9e8ade6d694d8aab9ff
parent47b3a748f4bfd4d393fb271973bff4f3aa97debd (diff)
downloadscummvm-rg350-575c831684d2c2584c6ff64e2e6d4ce960526a7e.tar.gz
scummvm-rg350-575c831684d2c2584c6ff64e2e6d4ce960526a7e.tar.bz2
scummvm-rg350-575c831684d2c2584c6ff64e2e6d4ce960526a7e.zip
fixed wrong computation of decflag in AkosRenderer::drawLimb (HE specific, bug #1416186).
svn-id: r21454
-rw-r--r--engines/scumm/akos.cpp2
-rw-r--r--engines/scumm/debugger.cpp5
2 files changed, 6 insertions, 1 deletions
diff --git a/engines/scumm/akos.cpp b/engines/scumm/akos.cpp
index cf20ef754a..563855bf4d 100644
--- a/engines/scumm/akos.cpp
+++ b/engines/scumm/akos.cpp
@@ -483,7 +483,7 @@ byte AkosRenderer::drawLimb(const Actor *a, int limb) {
if (_vm->_game.heversion >= 90 && cond == 0) {
decflag = 1;
} else if (type == 0x40000000) { // restored_bit
- decflag = (a->_heCondMask & cond) ? 1 : 0;
+ decflag = (a->_heCondMask & cond) == cond ? 1 : 0;
} else if (type == 0x80000000) { // dirty_bit
decflag = (a->_heCondMask & cond) ? 0 : 1;
} else {
diff --git a/engines/scumm/debugger.cpp b/engines/scumm/debugger.cpp
index d953b0f24f..98359f084c 100644
--- a/engines/scumm/debugger.cpp
+++ b/engines/scumm/debugger.cpp
@@ -418,6 +418,11 @@ bool ScummDebugger::Cmd_Actor(int argc, const char **argv) {
}
} else if (!strcmp(argv[2], "name")) {
DebugPrintf("Name of actor %d: %s\n", actnum, _vm->getObjOrActorName(actnum));
+ } else if (!strcmp(argv[2], "condmask")) {
+ if (argc > 3) {
+ a->_heCondMask = value;
+ }
+ DebugPrintf("Actor[%d]._heCondMask = 0x%X\n", actnum, a->_heCondMask);
} else {
DebugPrintf("Unknown actor command '%s'\nUse <ignoreboxes |costume> as command\n", argv[2]);
}