diff options
Diffstat (limited to 'src/being/being.cpp')
-rw-r--r-- | src/being/being.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/being/being.cpp b/src/being/being.cpp index da67becda..bb921f92f 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -173,6 +173,7 @@ Being::Being(const BeingId id, mRaceName(), mPartyName(), mGuildName(), + mClanName(), mSpeech(), mDispName(nullptr), mNameColor(nullptr), @@ -1201,6 +1202,33 @@ void Being::setGuildName(const std::string &restrict name) restrict2 } } +void Being::showClanBadge(const bool show) restrict2 +{ + delete2(mBadges[BadgeIndex::Clan]); + if (show && + !mClanName.empty() && + mShowBadges != BadgeDrawType::Hide) + { + const std::string badge = BadgesDB::getClanBadge(mClanName); + if (!badge.empty()) + { + mBadges[BadgeIndex::Clan] = AnimatedSprite::load( + paths.getStringValue("badges") + badge, + 0); + } + } +} + +void Being::setClanName(const std::string &restrict name) restrict2 +{ + if (mClanName != name) + { + mClanName = name; + showClanBadge(!mClanName.empty()); + updateBadgesCount(); + } +} + void Being::setGuildPos(const std::string &restrict pos A_UNUSED) restrict2 { } |