From 47916aca622f42fe210e7d4738c91f3aca3e9fb2 Mon Sep 17 00:00:00 2001 From: Borja Lorente Date: Fri, 5 Aug 2016 10:53:07 +0200 Subject: MACVENTURE: Fix dragged object drawing --- engines/macventure/gui.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'engines/macventure/gui.cpp') 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, -- cgit v1.2.3