summaryrefslogtreecommitdiff
path: root/src/map.cpp
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn@lindeijer.nl>2012-02-12 16:25:24 +0100
committerThorbjørn Lindeijer <thorbjorn@lindeijer.nl>2012-02-12 22:12:24 +0100
commit6bb16f951b460c6378dbf1b5d39acfd64eb81354 (patch)
tree79af508017e7665cb9e1c624e27b44f5e82230e9 /src/map.cpp
parent9d2f44ee9c2a026d353c00836441f1c47b3dfa33 (diff)
downloadmana-client-6bb16f951b460c6378dbf1b5d39acfd64eb81354.tar.gz
mana-client-6bb16f951b460c6378dbf1b5d39acfd64eb81354.tar.bz2
mana-client-6bb16f951b460c6378dbf1b5d39acfd64eb81354.tar.xz
mana-client-6bb16f951b460c6378dbf1b5d39acfd64eb81354.zip
Fixes to actor drawing order
On the fringe layer, actors are drawn 'sorted' together with the tiles. When the sorting order was separated from the actual Y position of the actor, the tile drawing loop was not adapted to take this drawOrder into account rather than the plain Y position. Also, ActorSprite::draw was applying a half-tile offset to position the sprite at the bottom while the logical position of the actor is at the center of the tile. However, it failed to override getDrawOrder to account for this offset, causing actors to get drawn earlier than they should (and thus being overlapped by fringe layer tiles when they actually shouldn't). This fixes drawing glitches with the paths around Hurnscald and reduces the glitches when walking up/down through grass. Reviewed-by: Erik Schilling
Diffstat (limited to 'src/map.cpp')
-rw-r--r--src/map.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/map.cpp b/src/map.cpp
index 89bcf061..8c748bbc 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -150,7 +150,7 @@ void MapLayer::draw(Graphics *graphics,
// tiles have been drawn
if (mIsFringeLayer)
{
- while (ai != actors.end() && (*ai)->getPixelY()
+ while (ai != actors.end() && (*ai)->getDrawOrder()
<= y * mMap->getTileHeight())
{
(*ai)->draw(graphics, -scrollX, -scrollY);