diff options
Diffstat (limited to 'src/being/being.cpp')
-rw-r--r-- | src/being/being.cpp | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/being/being.cpp b/src/being/being.cpp index 62b35b386..ad86d56fe 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -117,6 +117,7 @@ bool Being::mEnableReorderSprites = true; bool Being::mHideErased = false; Move Being::mMoveNames = Move_false; bool Being::mUseDiagonal = true; +bool Being::mShowBadges = true; int Being::mAwayEffect = -1; std::list<BeingCacheEntry*> beingInfoCache; @@ -288,6 +289,7 @@ Being::~Being() delete2(mText); delete2(mEmotionSprite); delete2(mAnimationEffect); + delete2(mTeamBadge); #ifdef EATHENA_SUPPORT delete2(mChat); #endif @@ -1839,7 +1841,7 @@ void Being::drawEmotion(Graphics *const graphics, mEmotionSprite->draw(graphics, px, py); if (mAnimationEffect) mAnimationEffect->draw(graphics, px, py); - if (mTeamBadge) + if (mTeamBadge && mShowBadges) { if (mDispName && gui) { @@ -2365,6 +2367,7 @@ void Being::reReadConfig() mHideErased = config.getBoolValue("hideErased"); mMoveNames = fromBool(config.getBoolValue("moveNames"), Move); mUseDiagonal = config.getBoolValue("useDiagonalSpeed"); + mShowBadges = config.getBoolValue("showBadges"); mUpdateConfigTime = cur_time; } @@ -3690,20 +3693,24 @@ void Being::setTeamId(const uint16_t teamId) { if (mTeamId != teamId) { - delete2(mTeamBadge); - if (teamId) - { - mTeamBadge = AnimatedSprite::load( - strprintf("%steam%d.xml", - paths.getStringValue("badges").c_str(), - teamId)); - } - mTeamId = teamId; + showBadges(mTeamId != 0); updateColors(); } } +void Being::showBadges(const bool show) +{ + delete2(mTeamBadge); + if (show && mTeamId) + { + mTeamBadge = AnimatedSprite::load( + strprintf("%steam%d.xml", + paths.getStringValue("badges").c_str(), + mTeamId)); + } +} + #ifdef EATHENA_SUPPORT void Being::setChat(ChatObject *const obj) { |