From 0b734fa8db3cfcef12f4dc35bd4f8da1bb86944d Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 13 Sep 2012 16:34:10 +0300 Subject: Improve a bit map load speed. --- src/resources/mapreader.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/resources/mapreader.cpp') 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 &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) { -- cgit v1.2.3-60-g2f50