summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map.h2
-rw-r--r--src/resources/mapreader.cpp9
2 files changed, 5 insertions, 6 deletions
diff --git a/src/map.h b/src/map.h
index d03570d8..ae0b07a8 100644
--- a/src/map.h
+++ b/src/map.h
@@ -93,6 +93,8 @@ class MapLayer
~MapLayer();
+ int getWidth() const { return mWidth; }
+
/**
* Set tile image, with x and y in layer coordinates.
*/
diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp
index aba9f85d..8479cc6c 100644
--- a/src/resources/mapreader.cpp
+++ b/src/resources/mapreader.cpp
@@ -239,6 +239,9 @@ static void setTile(Map *map, MapLayer *layer, int x, int y, unsigned gid)
// Set regular tile on a layer
Image * const img = set ? set->get(gid - set->getFirstGid()) : nullptr;
layer->setTile(x, y, img);
+
+ if (TileAnimation *ani = map->getAnimationForGid(gid))
+ ani->addAffectedTile(layer, x + y * layer->getWidth());
}
else
{
@@ -371,12 +374,6 @@ void MapReader::readLayer(xmlNodePtr node, Map *map)
setTile(map, layer, x, y, gid);
- TileAnimation* ani = map->getAnimationForGid(gid);
- if (ani)
- {
- ani->addAffectedTile(layer, x + y * w);
- }
-
x++;
if (x == w)
{