diff options
-rw-r--r-- | src/being.cpp | 14 | ||||
-rw-r--r-- | src/being.h | 8 | ||||
-rw-r--r-- | src/gui/widgets/playerbox.cpp | 2 |
3 files changed, 23 insertions, 1 deletions
diff --git a/src/being.cpp b/src/being.cpp index 613e692a..45a621e4 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -664,6 +664,20 @@ void Being::draw(Graphics *graphics, int offsetX, int offsetY) const } } +void Being::drawSpriteAt(Graphics *graphics, int x, int y) const +{ + const int px = x - 16; + const int py = y - 32; + + for (SpriteConstIterator it = mSprites.begin(); it != mSprites.end(); it++) + if (*it) + { + if ((*it)->getAlpha() != mAlpha) + (*it)->setAlpha(mAlpha); + (*it)->draw(graphics, px, py); + } +} + void Being::drawEmotion(Graphics *graphics, int offsetX, int offsetY) { if (!mEmotion) diff --git a/src/being.h b/src/being.h index 02abf898..f670722c 100644 --- a/src/being.h +++ b/src/being.h @@ -321,9 +321,17 @@ class Being : public Sprite, public ConfigListener * Draws this being to the given graphics context. * * @see Sprite::draw(Graphics, int, int) + * + * TODO: The following two functions should be combined. + * at some point draw(), was changed to use mPx and mPy, with arugements + * only for the offset, drawSpriteAt() takes x, and y and draws the sprite + * exactly at those coords (though it does do some computing to work how the + * old draw() worked). */ virtual void draw(Graphics *graphics, int offsetX, int offsetY) const; + virtual void drawSpriteAt(Graphics *graphics, int x, int y) const; + /** * Set the alpha opacity used to draw the being. */ diff --git a/src/gui/widgets/playerbox.cpp b/src/gui/widgets/playerbox.cpp index 4c499c36..9419616e 100644 --- a/src/gui/widgets/playerbox.cpp +++ b/src/gui/widgets/playerbox.cpp @@ -86,7 +86,7 @@ void PlayerBox::draw(gcn::Graphics *graphics) const int bs = getFrameSize(); const int x = getWidth() / 2 + bs; const int y = getHeight() - bs; - mPlayer->draw(static_cast<Graphics*>(graphics), x, y); + mPlayer->drawSpriteAt(static_cast<Graphics*>(graphics), x, y); } if (config.getValue("guialpha", 0.8) != mAlpha) |