diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-07-21 14:15:43 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-07-21 14:15:43 +0300 |
commit | e2a97fe7991d05a721be8070f70cbfbd7c169698 (patch) | |
tree | 763ddca35111acc2caccb3578645e91374df8631 | |
parent | b5a9c89e9d4d8b21bceda9cf2507dc7f6b726c91 (diff) | |
download | manaplus-e2a97fe7991d05a721be8070f70cbfbd7c169698.tar.gz manaplus-e2a97fe7991d05a721be8070f70cbfbd7c169698.tar.bz2 manaplus-e2a97fe7991d05a721be8070f70cbfbd7c169698.tar.xz manaplus-e2a97fe7991d05a721be8070f70cbfbd7c169698.zip |
Add settings for monster hp bar offset.
New attributes: hpBarOffsetX, hpBarOffsetY
Example: <monster id="0" name="Piou" targetCursor="small" walkType="fly" hpBarOffsetX="30">
-rw-r--r-- | src/being.cpp | 10 | ||||
-rw-r--r-- | src/resources/beingcommon.cpp | 3 | ||||
-rw-r--r-- | src/resources/beinginfo.cpp | 2 | ||||
-rw-r--r-- | src/resources/beinginfo.h | 14 |
4 files changed, 26 insertions, 3 deletions
diff --git a/src/being.cpp b/src/being.cpp index fc0f9a9c3..1ed1700f4 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -2167,14 +2167,18 @@ bool Being::drawSpriteAt(Graphics *const graphics, drawHpBar(graphics, maxHP, mHP, mDamageTaken, UserPalette::MONSTER_HP, UserPalette::MONSTER_HP2, - x - 50 + 16, y + 32 - 6, 2 * 50, 4); + x - 50 + 16 + mInfo->getHpBarOffsetX(), + y + 32 - 6 + mInfo->getHpBarOffsetY(), + 2 * 50, 4); } - if (mShowOwnHP && player_node == this && mAction != DEAD) + if (mShowOwnHP && mInfo && player_node == this && mAction != DEAD) { drawHpBar(graphics, PlayerInfo::getAttribute(PlayerInfo::MAX_HP), PlayerInfo::getAttribute(PlayerInfo::HP), 0, UserPalette::PLAYER_HP, UserPalette::PLAYER_HP2, - x - 50 + 16, y + 32 - 6, 2 * 50, 4); + x - 50 + 16 + mInfo->getHpBarOffsetX(), + y + 32 - 6 + mInfo->getHpBarOffsetY(), + 2 * 50, 4); } return res; } diff --git a/src/resources/beingcommon.cpp b/src/resources/beingcommon.cpp index fc58dbbc7..66c5586ee 100644 --- a/src/resources/beingcommon.cpp +++ b/src/resources/beingcommon.cpp @@ -41,4 +41,7 @@ void BeingCommon::readBasicAttributes(BeingInfo *const info, XmlNodePtr node, info->setNameOffsetX(XML::getProperty(node, "nameOffsetX", 0)); info->setNameOffsetY(XML::getProperty(node, "nameOffsetY", 0)); info->setSortOffsetY(XML::getProperty(node, "sortOffsetY", 0)); + + info->setHpBarOffsetX(XML::getProperty(node, "hpBarOffsetX", 0)); + info->setHpBarOffsetY(XML::getProperty(node, "hpBarOffsetY", 0)); } diff --git a/src/resources/beinginfo.cpp b/src/resources/beinginfo.cpp index bd45ec9ed..1d316df5e 100644 --- a/src/resources/beinginfo.cpp +++ b/src/resources/beinginfo.cpp @@ -51,6 +51,8 @@ BeingInfo::BeingInfo() : mTargetOffsetY(0), mNameOffsetX(0), mNameOffsetY(0), + mHpBarOffsetX(0), + mHpBarOffsetY(0), mMaxHP(0), mSortOffsetY(0), mDeadSortOffsetY(31), diff --git a/src/resources/beinginfo.h b/src/resources/beinginfo.h index c90e3296e..5b2b7b87c 100644 --- a/src/resources/beinginfo.h +++ b/src/resources/beinginfo.h @@ -172,6 +172,18 @@ class BeingInfo final int getNameOffsetY() const A_WARN_UNUSED { return mNameOffsetY; } + void setHpBarOffsetX(const int n) + { mHpBarOffsetX = n; } + + int getHpBarOffsetX() const A_WARN_UNUSED + { return mHpBarOffsetX; } + + void setHpBarOffsetY(const int n) + { mHpBarOffsetY = n; } + + int getHpBarOffsetY() const A_WARN_UNUSED + { return mHpBarOffsetY; } + void setMaxHP(const int n) { mMaxHP = n; } @@ -242,6 +254,8 @@ class BeingInfo final int mTargetOffsetY; int mNameOffsetX; int mNameOffsetY; + int mHpBarOffsetX; + int mHpBarOffsetY; int mMaxHP; int mSortOffsetY; int mDeadSortOffsetY; |