diff --git a/src/otclient/core/mapview.cpp b/src/otclient/core/mapview.cpp index 733a338a..0349300c 100644 --- a/src/otclient/core/mapview.cpp +++ b/src/otclient/core/mapview.cpp @@ -216,8 +216,9 @@ void MapView::updateVisibleTilesCache(int start) for(int iz = m_cachedLastVisibleFloor; iz >= m_cachedFirstVisibleFloor && !stop; --iz) { if(m_viewRange <= FAR_VIEW) { const int numDiagonals = m_drawDimension.width() + m_drawDimension.height() - 1; + // loop through / diagonals beginning at top left and going to top right for(int diagonal = 0; diagonal < numDiagonals && !stop; ++diagonal) { - // loop through / diagonals beginning at top left and going to top right + // loop current diagonal tiles for(int iy = std::min(diagonal, m_drawDimension.width() - 1), ix = std::max(diagonal - m_drawDimension.width() + 1, 0); iy >= 0 && ix < m_drawDimension.width() && !stop; --iy, ++ix) { // only start really looking tiles in the desired start if(count < start) { diff --git a/src/otclient/core/tile.cpp b/src/otclient/core/tile.cpp index 99a7c1bb..d901aef8 100644 --- a/src/otclient/core/tile.cpp +++ b/src/otclient/core/tile.cpp @@ -109,21 +109,21 @@ void Tile::draw(const Point& dest, float scaleFactor, int drawFlags) for(auto it = m_things.rbegin(); it != m_things.rend(); ++it) { CreaturePtr creature = (*it)->asCreature(); if(creature && (!creature->isWalking() || !animate)) - creature->draw(dest - m_drawElevation, scaleFactor, animate); + creature->draw(dest - m_drawElevation*scaleFactor, scaleFactor, animate); } } // effects if(drawFlags & Otc::DrawEffects) { for(const EffectPtr& effect : m_effects) - effect->draw(dest, scaleFactor, animate); + effect->draw(dest - m_drawElevation*scaleFactor, scaleFactor, animate); } // top items if(drawFlags & Otc::DrawOnTop) { for(const ThingPtr& thing : m_things) { if(thing->isOnTop()) - thing->draw(dest - m_drawElevation, scaleFactor, animate); + thing->draw(dest, scaleFactor, animate); } } }