diff options
Diffstat (limited to 'src/being/being.cpp')
-rw-r--r-- | src/being/being.cpp | 58 |
1 files changed, 15 insertions, 43 deletions
diff --git a/src/being/being.cpp b/src/being/being.cpp index 611263dff..d1a1d8906 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -70,6 +70,7 @@ #include "gui/widgets/tabs/langtab.h" +#include "utils/delete2.h" #include "utils/gettext.h" #include "utils/timer.h" @@ -232,17 +233,11 @@ Being::~Being() delete [] mSpriteDraw; mSpriteDraw = nullptr; - delete mSpeechBubble; - mSpeechBubble = nullptr; - delete mDispName; - mDispName = nullptr; - delete mText; - mText = nullptr; - - delete mEmotionSprite; - mEmotionSprite = nullptr; - delete mAnimationEffect; - mAnimationEffect = nullptr; + delete2(mSpeechBubble); + delete2(mDispName); + delete2(mText); + delete2(mEmotionSprite); + delete2(mAnimationEffect); if (mOwner) mOwner->unassignPet(this); @@ -469,7 +464,6 @@ void Being::setSpeech(const std::string &text, const std::string &channel, if (speech == TEXT_OVERHEAD && userPalette) { delete mText; - mText = new Text(mSpeech, getPixelX(), getPixelY() - getHeight(), Graphics::CENTER, @@ -821,14 +815,9 @@ void Being::setShowName(const bool doShowName) mShowName = doShowName; if (doShowName) - { showName(); - } else - { - delete mDispName; - mDispName = nullptr; - } + delete2(mDispName) } void Being::setGuildName(const std::string &name) @@ -1365,10 +1354,7 @@ void Being::logic() // Remove text and speechbubbles if speech boxes aren't being used if (mSpeechTime == 0 && mText) - { - delete mText; - mText = nullptr; - } + delete2(mText) const int time = tick_time * MILLISECONDS_IN_A_TICK; if (mEmotionSprite) @@ -1378,10 +1364,7 @@ void Being::logic() { mAnimationEffect->update(time); if (mAnimationEffect->isTerminated()) - { - delete mAnimationEffect; - mAnimationEffect = nullptr; - } + delete2(mAnimationEffect) } int frameCount = static_cast<int>(getFrameCount()); @@ -1453,10 +1436,7 @@ void Being::logic() { mEmotionTime--; if (mEmotionTime == 0) - { - delete mEmotionSprite; - mEmotionSprite = nullptr; - } + delete2(mEmotionSprite) } ActorSprite::logic(); @@ -1695,8 +1675,7 @@ void Being::drawSpeech(const int offsetX, const int offsetY) else if (mSpeechTime > 0 && (speech == NAME_IN_BUBBLE || speech == NO_NAME_IN_BUBBLE)) { - delete mText; - mText = nullptr; + delete2(mText) mSpeechBubble->setPosition(px - (mSpeechBubble->getWidth() / 2), py - getHeight() - (mSpeechBubble->getHeight())); @@ -1717,9 +1696,7 @@ void Being::drawSpeech(const int offsetX, const int offsetY) else if (speech == NO_SPEECH) { mSpeechBubble->setVisible(false); - - delete mText; - mText = nullptr; + delete2(mText) } } @@ -1831,8 +1808,7 @@ void Being::showName() if (mName.empty()) return; - delete mDispName; - mDispName = nullptr; + delete2(mDispName); if (mHideErased && player_relations.getRelation(mName) == PlayerRelation::ERASED) @@ -2967,8 +2943,7 @@ void Being::setEmote(const uint8_t emotion, const int emote_time) const int emotionIndex = emotion - 1; if (emotionIndex >= 0 && emotionIndex <= EmoteDB::getLast()) { - delete mEmotionSprite; - mEmotionSprite = nullptr; + delete2(mEmotionSprite) const EmoteInfo *const info = EmoteDB::get2(emotionIndex, true); if (info) { @@ -3076,8 +3051,7 @@ void Being::removeSpecialEffect() mChildParticleEffects.removeLocally(mSpecialParticle); mSpecialParticle = nullptr; } - delete mAnimationEffect; - mAnimationEffect = nullptr; + delete2(mAnimationEffect); } void Being::updateAwayEffect() @@ -3322,9 +3296,7 @@ void Being::setMap(Map *const map) void Being::removeAllItemsParticles() { FOR_EACH (SpriteParticleInfoIter, it, mSpriteParticles) - { delete (*it).second; - } mSpriteParticles.clear(); } |