summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-03-13 20:03:22 +0300
committerAndrei Karas <akaras@inbox.ru>2016-03-13 20:20:27 +0300
commitd2c64cb6995486136be2cd511ff7ad835d57c319 (patch)
tree4ad19c7dfb1fdb53ebd543b07cf9f61c2d01f8ed
parent9cff7e13f21edf3c794085bd9d0fbbdb22ff6896 (diff)
downloadmanaverse-d2c64cb6995486136be2cd511ff7ad835d57c319.tar.gz
manaverse-d2c64cb6995486136be2cd511ff7ad835d57c319.tar.bz2
manaverse-d2c64cb6995486136be2cd511ff7ad835d57c319.tar.xz
manaverse-d2c64cb6995486136be2cd511ff7ad835d57c319.zip
Add separate functions for draw monsters.
-rw-r--r--src/being/being.cpp28
-rw-r--r--src/being/being.h9
2 files changed, 35 insertions, 2 deletions
diff --git a/src/being/being.cpp b/src/being/being.cpp
index bbd7f63b2..c3e63d41c 100644
--- a/src/being/being.cpp
+++ b/src/being/being.cpp
@@ -2915,6 +2915,18 @@ void Being::drawOther(Graphics *restrict const graphics,
drawOtherSpriteAt(graphics, px, py);
}
+void Being::drawMonster(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;
+ drawBeingCursor(graphics, px, py);
+ drawMonsterSpriteAt(graphics, px, py);
+}
+
void Being::drawPortal(Graphics *restrict const graphics,
const int offsetX,
const int offsetY) const restrict2
@@ -2942,8 +2954,12 @@ void Being::draw(Graphics *restrict const graphics,
offsetX,
offsetY);
break;
- case ActorType::Npc:
case ActorType::Monster:
+ drawMonster(graphics,
+ offsetX,
+ offsetY);
+ break;
+ case ActorType::Npc:
case ActorType::FloorItem:
case ActorType::LocalPet:
case ActorType::Avatar:
@@ -3034,9 +3050,16 @@ void Being::drawOtherSpriteAt(Graphics *restrict const graphics,
const int x,
const int y) const restrict2
{
+ CompoundSprite::draw(graphics, x, y);
+}
+
+void Being::drawMonsterSpriteAt(Graphics *restrict const graphics,
+ const int x,
+ const int y) const restrict2
+{
if (mHighlightMonsterAttackRange &&
mType == ActorType::Monster &&
- isAlive())
+ mAction != BeingAction::DEAD)
{
if (!userPalette)
{
@@ -3082,6 +3105,7 @@ void Being::drawOtherSpriteAt(Graphics *restrict const graphics,
2 * 50,
4);
}
+
}
void Being::drawPortalSpriteAt(Graphics *restrict const graphics,
diff --git a/src/being/being.h b/src/being/being.h
index 0c61733cf..ba392d385 100644
--- a/src/being/being.h
+++ b/src/being/being.h
@@ -641,6 +641,11 @@ class Being notfinal : public ActorSprite,
const int offsetY) const
restrict2 A_NONNULL(2);
+ void drawMonster(Graphics *restrict const graphics,
+ const int offsetX,
+ const int offsetY) const
+ restrict2 A_NONNULL(2);
+
void drawPortal(Graphics *restrict const graphics,
const int offsetX,
const int offsetY) const
@@ -1010,6 +1015,10 @@ class Being notfinal : public ActorSprite,
const int x,
const int y) const restrict2 A_NONNULL(2);
+ void drawMonsterSpriteAt(Graphics *restrict const graphics,
+ const int x,
+ const int y) const restrict2 A_NONNULL(2);
+
/**
* Updates name's location.
*/