diff --git a/src/client/mapview.cpp b/src/client/mapview.cpp index aa0e1e4c..a25ed9ea 100644 --- a/src/client/mapview.cpp +++ b/src/client/mapview.cpp @@ -566,43 +566,22 @@ Position MapView::getPosition(const Point& point, const Size& mapSize) void MapView::move(int x, int y) { - if(m_moveOffset.x + x > 32) { - if(m_moveOffset.x + x > 64) - m_customCameraPosition.x += 2; - else - m_customCameraPosition.x += 1; - - m_moveOffset.x = x; - requestVisibleTilesCacheUpdate(); - } else if(m_moveOffset.x - x < -32) { - if(m_moveOffset.x - x < -64) - m_customCameraPosition.x -= 2; - else - m_customCameraPosition.x -= 1; + m_moveOffset.x += x; + m_moveOffset.y += y; - m_moveOffset.x = x; + int32_t tmp = m_moveOffset.x / 32; + if(tmp != 0) { + m_customCameraPosition.x += tmp; + m_moveOffset.x %= 32; requestVisibleTilesCacheUpdate(); - } else - m_moveOffset.x += x; - - if(m_moveOffset.y + y > 32) { - if(m_moveOffset.y + y > 64) - m_customCameraPosition.y += 2; - else - m_customCameraPosition.y += 1; - - m_moveOffset.y = y; - requestVisibleTilesCacheUpdate(); - } else if(m_moveOffset.y - y < -32) { - if(m_moveOffset.y - y < -64) - m_customCameraPosition.y -= 2; - else - m_customCameraPosition.y -= 1; + } - m_moveOffset.y = y; + tmp = m_moveOffset.y / 32; + if(tmp != 0) { + m_customCameraPosition.y += tmp; + m_moveOffset.y %= 32; requestVisibleTilesCacheUpdate(); - } else - m_moveOffset.y += y; + } } Rect MapView::calcFramebufferSource(const Size& destSize)