diff options
Diffstat (limited to 'engines/parallaction/input.cpp')
-rw-r--r-- | engines/parallaction/input.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/engines/parallaction/input.cpp b/engines/parallaction/input.cpp index 4fbd9b99cc..bf7cdc439d 100644 --- a/engines/parallaction/input.cpp +++ b/engines/parallaction/input.cpp @@ -478,7 +478,7 @@ void Input::initCursors() { break; case GType_BRA: - if (_vm->getPlatform() == Common::kPlatformPC) { + if (_vm->getPlatform() == Common::kPlatformDOS) { _dinoCursor = _vm->_disk->loadPointer("pointer1"); _dougCursor = _vm->_disk->loadPointer("pointer2"); _donnaCursor = _vm->_disk->loadPointer("pointer3"); @@ -551,8 +551,12 @@ void Input::setInventoryCursor(ItemName name) { case GType_BRA: { byte *src = _mouseArrow->getData(0); byte *dst = _comboArrow->getData(0); - memcpy(dst, src, _comboArrow->getSize(0)); // FIXME: destination offseting is not clear + Common::Rect srcRect, dstRect; + _mouseArrow->getRect(0, srcRect); + _comboArrow->getRect(0, dstRect); + for (uint y = 0; y < (uint)srcRect.height(); y++) + memcpy(dst + y * dstRect.width(), src + y * srcRect.width(), srcRect.width()); _vm->_inventoryRenderer->drawItem(name, dst + _mouseComboProps_BR._yOffset * _mouseComboProps_BR._width + _mouseComboProps_BR._xOffset, _mouseComboProps_BR._width); CursorMan.replaceCursor(dst, _mouseComboProps_BR._width, _mouseComboProps_BR._height, 0, 0, 0); break; |