diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-07-18 12:35:51 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-07-18 12:35:51 +0300 |
commit | 30a2658b93cebebeddf9aa9e7d9d37cc4fc80d3c (patch) | |
tree | 7d3b15f4e42b22e329c632d61e11a16ff0932b58 /src/being.cpp | |
parent | 923bd5817bad530de2652529eaf7f5366188034c (diff) | |
download | manaplus-30a2658b93cebebeddf9aa9e7d9d37cc4fc80d3c.tar.gz manaplus-30a2658b93cebebeddf9aa9e7d9d37cc4fc80d3c.tar.bz2 manaplus-30a2658b93cebebeddf9aa9e7d9d37cc4fc80d3c.tar.xz manaplus-30a2658b93cebebeddf9aa9e7d9d37cc4fc80d3c.zip |
add name offsets for npc and monster names.
New attributes: nameOffsetX, nameOffsetY
Example for monsters.xml:
<monster id="0" name="Piou" targetCursor="small" walkType="fly" nameOffsetX="10">
Example for npcs.xml:
<npc id="304" nameOffsetX="-10" nameOffsetY="-5">
Diffstat (limited to 'src/being.cpp')
-rw-r--r-- | src/being.cpp | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/src/being.cpp b/src/being.cpp index e92dccaa3..fc0f9a9c3 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -1551,16 +1551,18 @@ void Being::updateCoords() if (!mDispName) return; - // Monster names show above the sprite instead of below it - if (mType == MONSTER) + int offsetX = getPixelX(); + int offsetY = getPixelY(); + if (mInfo) { - mDispName->adviseXY(getPixelX(), - getPixelY() - getHeight() - mDispName->getHeight(), mMoveNames); - } - else - { - mDispName->adviseXY(getPixelX(), getPixelY(), mMoveNames); + offsetX += mInfo->getNameOffsetX(); + offsetY += mInfo->getNameOffsetY(); } + // Monster names show above the sprite instead of below it + if (mType == MONSTER) + offsetY += - getHeight() - mDispName->getHeight(); + + mDispName->adviseXY(offsetX, offsetY, mMoveNames); } void Being::optionChanged(const std::string &value) @@ -1654,8 +1656,18 @@ void Being::showName() font = gui->getSecureFont(); } - mDispName = new FlashText(displayName, getPixelX(), getPixelY(), - gcn::Graphics::CENTER, mNameColor, font); + if (mInfo) + { + mDispName = new FlashText(displayName, + getPixelX() + mInfo->getNameOffsetX(), + getPixelY() + mInfo->getNameOffsetY(), + gcn::Graphics::CENTER, mNameColor, font); + } + else + { + mDispName = new FlashText(displayName, getPixelX(), getPixelY(), + gcn::Graphics::CENTER, mNameColor, font); + } updateCoords(); } |