summaryrefslogtreecommitdiff
path: root/src/resources/mapreader.cpp
diff options
context:
space:
mode:
authorBjörn Steinbrink <B.Steinbrink@gmx.de>2006-10-03 14:46:41 +0000
committerBjörn Steinbrink <B.Steinbrink@gmx.de>2006-10-03 14:46:41 +0000
commit6a02a10434f16c016a162e08d2d8ea089981e172 (patch)
tree128f8567a1db59a42ce8a3787b4d54fd8681bd95 /src/resources/mapreader.cpp
parent1c6ad7a34b4a5d3bdc3e57b7b20d46c5db9830a2 (diff)
downloadmana-client-6a02a10434f16c016a162e08d2d8ea089981e172.tar.gz
mana-client-6a02a10434f16c016a162e08d2d8ea089981e172.tar.bz2
mana-client-6a02a10434f16c016a162e08d2d8ea089981e172.tar.xz
mana-client-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.cpp38
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;
}