diff options
Diffstat (limited to 'engines/scumm')
-rw-r--r-- | engines/scumm/actor.cpp | 2 | ||||
-rw-r--r-- | engines/scumm/boxes.cpp | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/engines/scumm/actor.cpp b/engines/scumm/actor.cpp index 4fde436e2f..443c66034e 100644 --- a/engines/scumm/actor.cpp +++ b/engines/scumm/actor.cpp @@ -1536,6 +1536,8 @@ void Actor::prepareDrawActorCostume(BaseCostumeRenderer *bcr) { bcr->_zbuf = 0; else { bcr->_zbuf = _vm->getMaskFromBox(_walkbox); + if (_vm->_game.version == 0) + bcr->_zbuf &= 0x03; if (bcr->_zbuf > _vm->_gdi->_numZBuffer-1) bcr->_zbuf = _vm->_gdi->_numZBuffer-1; } diff --git a/engines/scumm/boxes.cpp b/engines/scumm/boxes.cpp index 65e32e0a2c..dc6f10696f 100644 --- a/engines/scumm/boxes.cpp +++ b/engines/scumm/boxes.cpp @@ -613,6 +613,16 @@ BoxCoords ScummEngine::getBoxCoordinates(int boxnum) { box->ll.y = bp->c64.y2; box->lr.x = bp->c64.x2; box->lr.y = bp->c64.y2; + + if (bp->c64.mask & 0x88) { + // walkbox for (right/left) corner + // TODO: ladders (incl. man-eating plant) have mask 0x8A, + // must those walkboxes be adjusted? + if (bp->c64.mask & 0x04) + box->ur = box->ul; + else + box->ul = box->ur; + } } else if (_game.version <= 2) { box->ul.x = bp->v2.ulx; box->ul.y = bp->v2.uy; |