diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-03-13 18:50:18 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-03-13 18:50:18 +0300 |
commit | 8a8ef403f70b43458f90b6192ce8cedcf2c9a209 (patch) | |
tree | e20104d00dd25ba04d37bb8e3aef36891cb925a1 /src/being | |
parent | ac56a47abb8b6a2dc184e1a39c3c7989fd135550 (diff) | |
download | manaplus-8a8ef403f70b43458f90b6192ce8cedcf2c9a209.tar.gz manaplus-8a8ef403f70b43458f90b6192ce8cedcf2c9a209.tar.bz2 manaplus-8a8ef403f70b43458f90b6192ce8cedcf2c9a209.tar.xz manaplus-8a8ef403f70b43458f90b6192ce8cedcf2c9a209.zip |
Separate Being::draw function into drawPlayer and drawOther.
Diffstat (limited to 'src/being')
-rw-r--r-- | src/being/being.cpp | 50 | ||||
-rw-r--r-- | src/being/being.h | 10 |
2 files changed, 57 insertions, 3 deletions
diff --git a/src/being/being.cpp b/src/being/being.cpp index 7be22145b..b37db6c62 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -2839,9 +2839,9 @@ void Being::talkTo() const restrict2 npcHandler->talk(mId); } -void Being::draw(Graphics *restrict const graphics, - const int offsetX, - const int offsetY) const restrict2 +void Being::drawPlayer(Graphics *restrict const graphics, + const int offsetX, + const int offsetY) const restrict2 { if (!mErased) { @@ -2881,6 +2881,50 @@ void Being::draw(Graphics *restrict const graphics, } } +void Being::drawOther(Graphics *restrict const graphics, + const int offsetX, + const int offsetY) const restrict2 +{ + // getActorX() + offsetX; + const int px = mPixelX - mapTileSize / 2 + offsetX; + // getActorY() + offsetY; + const int py = mPixelY - mapTileSize + offsetY; + ActorSprite::draw1(graphics, px, py); + drawSpriteAt(graphics, px, py); +} + +void Being::draw(Graphics *restrict const graphics, + const int offsetX, + const int offsetY) const restrict2 +{ + switch (mType) + { + case ActorType::Player: + drawPlayer(graphics, + offsetX, + offsetY); + break; + case ActorType::Npc: + case ActorType::Monster: + case ActorType::FloorItem: + case ActorType::Portal: + case ActorType::LocalPet: + case ActorType::Avatar: +#ifdef EATHENA_SUPPORT + case ActorType::Pet: + case ActorType::Mercenary: + case ActorType::Homunculus: + case ActorType::SkillUnit: + case ActorType::Unknown: +#endif + default: + drawOther(graphics, + offsetX, + offsetY); + break; + } +} + void Being::drawSprites(Graphics *restrict const graphics, const int posX, const int posY) const restrict2 diff --git a/src/being/being.h b/src/being/being.h index 8d95205fd..7c3860220 100644 --- a/src/being/being.h +++ b/src/being/being.h @@ -631,6 +631,16 @@ class Being notfinal : public ActorSprite, const int offsetY) const restrict2 override final A_NONNULL(2); + void drawPlayer(Graphics *restrict const graphics, + const int offsetX, + const int offsetY) const + restrict2 A_NONNULL(2); + + void drawOther(Graphics *restrict const graphics, + const int offsetX, + const int offsetY) const + restrict2 A_NONNULL(2); + void drawBasic(Graphics *restrict const graphics, const int x, const int y) const restrict2 A_NONNULL(2); |