summaryrefslogtreecommitdiff
path: root/src/being/compoundsprite.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-03-13 22:06:58 +0300
committerAndrei Karas <akaras@inbox.ru>2016-03-13 22:06:58 +0300
commit9e77738e7c8a01e343c060a12f0d9d44a96874ed (patch)
treea233f74e925958cd991019d1c35671433b1adf9a /src/being/compoundsprite.cpp
parentd2c64cb6995486136be2cd511ff7ad835d57c319 (diff)
downloadplus-9e77738e7c8a01e343c060a12f0d9d44a96874ed.tar.gz
plus-9e77738e7c8a01e343c060a12f0d9d44a96874ed.tar.bz2
plus-9e77738e7c8a01e343c060a12f0d9d44a96874ed.tar.xz
plus-9e77738e7c8a01e343c060a12f0d9d44a96874ed.zip
Split CompoundSprite::draw into draw and drawSimple.
Diffstat (limited to 'src/being/compoundsprite.cpp')
-rw-r--r--src/being/compoundsprite.cpp30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/being/compoundsprite.cpp b/src/being/compoundsprite.cpp
index f19b479a6..2af54f247 100644
--- a/src/being/compoundsprite.cpp
+++ b/src/being/compoundsprite.cpp
@@ -137,7 +137,8 @@ bool CompoundSprite::update(const int time)
}
void CompoundSprite::draw(Graphics *const graphics,
- const int posX, const int posY) const
+ const int posX,
+ const int posY) const
{
FUNC_BLOCK("CompoundSprite::draw", 1)
if (mNeedsRedraw)
@@ -162,6 +163,33 @@ void CompoundSprite::draw(Graphics *const graphics,
}
}
+void CompoundSprite::drawSimple(Graphics *const graphics,
+ const int posX,
+ const int posY) const
+{
+ FUNC_BLOCK("CompoundSprite::draw", 1)
+ if (mNeedsRedraw)
+ updateImages();
+
+ if (mSprites.empty()) // Nothing to draw
+ return;
+
+ if (mAlpha == 1.0F && mImage)
+ {
+ graphics->drawImage(mImage, posX + mOffsetX, posY + mOffsetY);
+ }
+ else if (mAlpha && mAlphaImage)
+ {
+ mAlphaImage->setAlpha(mAlpha);
+ graphics->drawImage(mAlphaImage,
+ posX + mOffsetX, posY + mOffsetY);
+ }
+ else
+ {
+ CompoundSprite::drawSprites(graphics, posX, posY);
+ }
+}
+
void CompoundSprite::drawSprites(Graphics *const graphics,
const int posX,
const int posY) const