diff options
author | Borja Lorente | 2016-08-05 10:53:07 +0200 |
---|---|---|
committer | Borja Lorente | 2016-08-14 19:01:01 +0200 |
commit | 47916aca622f42fe210e7d4738c91f3aca3e9fb2 (patch) | |
tree | 234054c48abc1592252cb6e1650371dd4ffd5d8e /engines | |
parent | 0c0be43a3e1e4d012eb6742a88aaa2e398360f2c (diff) | |
download | scummvm-rg350-47916aca622f42fe210e7d4738c91f3aca3e9fb2.tar.gz scummvm-rg350-47916aca622f42fe210e7d4738c91f3aca3e9fb2.tar.bz2 scummvm-rg350-47916aca622f42fe210e7d4738c91f3aca3e9fb2.zip |
MACVENTURE: Fix dragged object drawing
Diffstat (limited to 'engines')
-rw-r--r-- | engines/macventure/gui.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/engines/macventure/gui.cpp b/engines/macventure/gui.cpp index 6833de7dfc..0f5a264d61 100644 --- a/engines/macventure/gui.cpp +++ b/engines/macventure/gui.cpp @@ -708,14 +708,21 @@ void Gui::drawDraggedObject() { if (_draggedObj.pos.x > 0 && _draggedObj.pos.x + w > kScreenWidth) { w = kScreenWidth - _draggedObj.pos.x; } if (_draggedObj.pos.y > 0 && _draggedObj.pos.y + h > kScreenHeight) { h = kScreenHeight - _draggedObj.pos.y; } - _draggedSurface.create(w, h, _screen.format); - - asset->blitInto(&_draggedSurface, MIN((int16)0, _draggedObj.pos.x), MIN((int16)0, _draggedObj.pos.y), kBlitBIC); - Common::Point target = _draggedObj.pos; if (target.x < 0) { target.x = 0; } if (target.y < 0) { target.y = 0; } + _draggedSurface.create(w, h, _screen.format); + _draggedSurface.blitFrom( + _screen, + Common::Rect( + target.x, + target.y, + target.x + _draggedSurface.w, + target.y + _draggedSurface.h), + Common::Point(0, 0)); + asset->blitInto(&_draggedSurface, MIN((int16)0, _draggedObj.pos.x), MIN((int16)0, _draggedObj.pos.y), kBlitBIC); + g_system->copyRectToScreen( _draggedSurface.getBasePtr(0, 0), _draggedSurface.pitch, |