diff options
author | Andrei Karas <akaras@inbox.ru> | 2011-04-03 20:44:04 +0300 |
---|---|---|
committer | Erik Schilling <ablu.erikschilling@googlemail.com> | 2012-01-30 20:42:05 +0100 |
commit | 7de429cbcd838326dd455e7d182cb5ef19a611c9 (patch) | |
tree | 9695d146f660a9751691dacbb0e8c4becb273f4b | |
parent | d8a119d8b2c65ac362b40f6ad33122ba8be76edc (diff) | |
download | mana-7de429cbcd838326dd455e7d182cb5ef19a611c9.tar.gz mana-7de429cbcd838326dd455e7d182cb5ef19a611c9.tar.bz2 mana-7de429cbcd838326dd455e7d182cb5ef19a611c9.tar.xz mana-7de429cbcd838326dd455e7d182cb5ef19a611c9.zip |
Add default offsets in imageset tag for all animations.
Reviewed-by: Bjorn.
-rw-r--r-- | src/resources/imageset.cpp | 5 | ||||
-rw-r--r-- | src/resources/imageset.h | 14 | ||||
-rw-r--r-- | src/resources/spritedef.cpp | 8 |
3 files changed, 24 insertions, 3 deletions
diff --git a/src/resources/imageset.cpp b/src/resources/imageset.cpp index c3994b3b..9fe75395 100644 --- a/src/resources/imageset.cpp +++ b/src/resources/imageset.cpp @@ -27,7 +27,10 @@ #include "utils/dtor.h" -ImageSet::ImageSet(Image *img, int width, int height, int margin, int spacing) +ImageSet::ImageSet(Image *img, int width, int height, + int margin, int spacing) : + mOffsetX(0), + mOffsetY(0) { for (int y = margin; y + height <= img->getHeight() - margin; y += height + spacing) { diff --git a/src/resources/imageset.h b/src/resources/imageset.h index 55031732..5d9bdc2e 100644 --- a/src/resources/imageset.h +++ b/src/resources/imageset.h @@ -56,11 +56,25 @@ class ImageSet : public Resource size_type size() const { return mImages.size(); } + int getOffsetX() const + { return mOffsetX; } + + void setOffsetX(int n) + { mOffsetX = n; } + + int getOffsetY() const + { return mOffsetY; } + + void setOffsetY(int n) + { mOffsetY = n; } + private: std::vector<Image*> mImages; int mHeight; /**< Height of the images in the image set. */ int mWidth; /**< Width of the images in the image set. */ + int mOffsetX; + int mOffsetY; }; #endif diff --git a/src/resources/spritedef.cpp b/src/resources/spritedef.cpp index 405d147c..c1f74ec8 100644 --- a/src/resources/spritedef.cpp +++ b/src/resources/spritedef.cpp @@ -164,6 +164,8 @@ void SpriteDef::loadImageSet(xmlNodePtr node, const std::string &palettes) logger->error("Couldn't load imageset!"); } + imageSet->setOffsetX(XML::getProperty(node, "offsetX", 0)); + imageSet->setOffsetY(XML::getProperty(node, "offsetY", 0)); mImageSets[name] = imageSet; } @@ -229,8 +231,10 @@ void SpriteDef::loadAnimation(xmlNodePtr animationNode, { const int delay = XML::getProperty(frameNode, "delay", DEFAULT_FRAME_DELAY); - int offsetX = XML::getProperty(frameNode, "offsetX", 0); - int offsetY = XML::getProperty(frameNode, "offsetY", 0); + int offsetX = XML::getProperty(frameNode, "offsetX", 0) + + imageSet->getOffsetX(); + int offsetY = XML::getProperty(frameNode, "offsetY", 0) + + imageSet->getOffsetY(); if (xmlStrEqual(frameNode->name, BAD_CAST "frame")) { |