summaryrefslogtreecommitdiff
path: root/src/resources/mapreader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/resources/mapreader.cpp')
-rw-r--r--src/resources/mapreader.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp
index f133e273d..48d63144a 100644
--- a/src/resources/mapreader.cpp
+++ b/src/resources/mapreader.cpp
@@ -568,6 +568,10 @@ void MapReader::readLayer(const XmlNodePtr node, Map *const map)
}
}
+ std::map<int, TileAnimation*> &tileAnimations
+ = map->getTileAnimations();
+
+ const bool hasAnimations = !tileAnimations.empty();
for (int i = 0; i < binLen - 3; i += 4)
{
const int gid = binData[i] |
@@ -577,10 +581,16 @@ void MapReader::readLayer(const XmlNodePtr node, Map *const map)
setTile(map, layer, x, y, gid);
- TileAnimation *const ani = map->getAnimationForGid(gid);
- if (ani)
- ani->addAffectedTile(layer, x + y * w);
-
+ if (hasAnimations)
+ {
+ TileAnimationMapCIter i = tileAnimations.find(gid);
+ if (i != tileAnimations.end())
+ {
+ TileAnimation *const ani = i->second;
+ if (ani)
+ ani->addAffectedTile(layer, x + y * w);
+ }
+ }
x++;
if (x == w)
{