diff options
author | Björn Steinbrink <B.Steinbrink@gmx.de> | 2006-10-03 14:46:41 +0000 |
---|---|---|
committer | Björn Steinbrink <B.Steinbrink@gmx.de> | 2006-10-03 14:46:41 +0000 |
commit | 6a02a10434f16c016a162e08d2d8ea089981e172 (patch) | |
tree | 128f8567a1db59a42ce8a3787b4d54fd8681bd95 /src/resources/mapreader.cpp | |
parent | 1c6ad7a34b4a5d3bdc3e57b7b20d46c5db9830a2 (diff) | |
download | mana-6a02a10434f16c016a162e08d2d8ea089981e172.tar.gz mana-6a02a10434f16c016a162e08d2d8ea089981e172.tar.bz2 mana-6a02a10434f16c016a162e08d2d8ea089981e172.tar.xz mana-6a02a10434f16c016a162e08d2d8ea089981e172.zip |
Turned AmbientOverlay into a class. Cleaned up the associated code.
Diffstat (limited to 'src/resources/mapreader.cpp')
-rw-r--r-- | src/resources/mapreader.cpp | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp index c1ae911c..2377a8f4 100644 --- a/src/resources/mapreader.cpp +++ b/src/resources/mapreader.cpp @@ -24,6 +24,7 @@ #include "mapreader.h" #include <cassert> +#include <iostream> #include <zlib.h> #include "resourcemanager.h" @@ -215,29 +216,37 @@ MapReader::readMap(xmlNodePtr node, const std::string &path) } //set Overlays - int i = 0; ResourceManager *resman = ResourceManager::getInstance(); - - while (map->hasProperty("overlay" + toString(i) + "image")) + for (int i = 0; ; i++) { - Image *overlayImage = resman->getImage(map->getProperty("overlay" + toString(i) + "image")); + const std::string name = "overlay" + toString(i); + + if (!map->hasProperty(name + "image")) + break; // Finished + + Image *img = resman->getImage(map->getProperty(name + "image")); float scrollX = 0.0f; float scrollY = 0.0f; float parallax = 0.0f; - if (map->hasProperty("overlay" + toString(i) + "scrollX")) + std::stringstream ss; + + if (map->hasProperty(name + "scrollX")) { - scrollX = atof(map->getProperty("overlay" + toString(i) + "scrollX").c_str()); + ss.str(map->getProperty(name + "scrollX")); + ss >> scrollX; } - if (map->hasProperty("overlay" + toString(i) + "scrollY")) + if (map->hasProperty(name + "scrollY")) { - scrollY = atof(map->getProperty("overlay" + toString(i) + "scrollY").c_str()); + ss.str(map->getProperty(name + "scrollY")); + ss >> scrollY; } - if (map->hasProperty("overlay" + toString(i) + "parallax")) + if (map->hasProperty(name + "parallax")) { - parallax = atof(map->getProperty("overlay" + toString(i) + "parallax").c_str()); + ss.str(map->getProperty(name + "parallax")); + ss >> parallax; } - map->setOverlay (overlayImage, scrollX, scrollY, parallax); - i++; + map->setOverlay(img, scrollX, scrollY, parallax); + img->decRef(); } return map; @@ -351,6 +360,11 @@ MapReader::readLayer(xmlNodePtr node, Map *map, int layer) } } + if (y < h) + std::cerr << "TOO SMALL!\n"; + if (x) + std::cerr << "TOO SMALL!\n"; + // There can be only one data element break; } |