From 575c831684d2c2584c6ff64e2e6d4ce960526a7e Mon Sep 17 00:00:00 2001 From: Gregory Montoir Date: Sat, 25 Mar 2006 20:15:41 +0000 Subject: fixed wrong computation of decflag in AkosRenderer::drawLimb (HE specific, bug #1416186). svn-id: r21454 --- engines/scumm/akos.cpp | 2 +- engines/scumm/debugger.cpp | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) 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 as command\n", argv[2]); } -- cgit v1.2.3