diff options
author | Travis Howell | 2006-02-05 07:55:13 +0000 |
---|---|---|
committer | Travis Howell | 2006-02-05 07:55:13 +0000 |
commit | ffc3b480218052ec541a91431faa8ea158457faf (patch) | |
tree | 756f6387d97442b574f1810836825a15d32f631e /scumm/akos.cpp | |
parent | f18672b3482654c5a4dee9a85c1c624e782d6d1c (diff) | |
download | scummvm-rg350-ffc3b480218052ec541a91431faa8ea158457faf.tar.gz scummvm-rg350-ffc3b480218052ec541a91431faa8ea158457faf.tar.bz2 scummvm-rg350-ffc3b480218052ec541a91431faa8ea158457faf.zip |
Revert back to original shadow detection.
svn-id: r20391
Diffstat (limited to 'scumm/akos.cpp')
-rw-r--r-- | scumm/akos.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/scumm/akos.cpp b/scumm/akos.cpp index b886d8307d..52a50beb19 100644 --- a/scumm/akos.cpp +++ b/scumm/akos.cpp @@ -366,9 +366,6 @@ byte AkosRenderer::drawLimb(const Actor *a, int limb) { bool useCondMask; int lastDx, lastDy; - if (_vm->_heversion >= 90) - _shadow_mode = 0; - lastDx = lastDy = 0; for (i = 0; i < 32; ++i) { heCondMaskIndex[i] = i; @@ -467,10 +464,11 @@ byte AkosRenderer::drawLimb(const Actor *a, int limb) { _ymove -= lastDy; } + uint16 shadowMask = 0; + if (!useCondMask || !akct) { decflag = 1; } else { - uint16 shadowMask = 0; uint32 cond = READ_LE_UINT32(akct + cost.heCondMaskTable[limb] + heCondMaskIndex[i] * 4); if (cond == 0) { decflag = 1; @@ -490,9 +488,6 @@ byte AkosRenderer::drawLimb(const Actor *a, int limb) { } else { decflag = (a->_heCondMask & cond) ? 1 : 0; } - - if (_vm->_heversion >= 90 && (shadowMask & 0x8000) && xmap) - _shadow_mode = 3; } } @@ -501,6 +496,10 @@ byte AkosRenderer::drawLimb(const Actor *a, int limb) { if (decflag == 0) continue; + if (_vm->_heversion >= 90) { + _shadow_mode = ((shadowMask & 0x8000) && xmap) ? 3 : 0; + } + switch (codec) { case 1: result |= codec1(xmoveCur, ymoveCur); |