diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-03-30 12:20:30 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-03-30 12:20:30 +0300 |
commit | a0021f305d242ebc98a3507fd15011b1b51232d0 (patch) | |
tree | 5c634e7ff6b5504f383478f1a98c50c3438c3e9e | |
parent | 02b61ee41a7dca0a29a32ceb136284b071d08f60 (diff) | |
download | manaverse-a0021f305d242ebc98a3507fd15011b1b51232d0.tar.gz manaverse-a0021f305d242ebc98a3507fd15011b1b51232d0.tar.bz2 manaverse-a0021f305d242ebc98a3507fd15011b1b51232d0.tar.xz manaverse-a0021f305d242ebc98a3507fd15011b1b51232d0.zip |
Improve null pointer check in avatarlistbox.
-rw-r--r-- | src/gui/widgets/avatarlistbox.cpp | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/src/gui/widgets/avatarlistbox.cpp b/src/gui/widgets/avatarlistbox.cpp index 9411c2249..ecb92f876 100644 --- a/src/gui/widgets/avatarlistbox.cpp +++ b/src/gui/widgets/avatarlistbox.cpp @@ -99,13 +99,16 @@ void AvatarListBox::draw(Graphics *graphics) return; } + const Widget *const parent = mParent; + if (!parent) + return; + AvatarListModel *const model = static_cast<AvatarListModel *const>( mListModel); updateAlpha(); Font *const font = getFont(); const int fontHeight = getFont()->getHeight(); - const Widget *const parent = mParent; const std::string name = player_node->getName(); // Draw the list elements @@ -155,7 +158,7 @@ void AvatarListBox::draw(Graphics *graphics) a->getHp(), a->getMaxHp()); } const bool isPoison = a->getPoison(); - if (a->getMaxHp() && (isPoison || parent)) + if (a->getMaxHp()) { const int themeColor = (isPoison ? Theme::PROG_HP_POISON : Theme::PROG_HP); @@ -182,28 +185,25 @@ void AvatarListBox::draw(Graphics *graphics) a->getDamageHp()); } - if (parent) - { - const int themeColor = (a->getPoison() - ? Theme::PROG_HP_POISON : Theme::PROG_HP); - Color color = Theme::getProgressColor(themeColor, 1); - color.a = 80; - graphics->setColor(color); - graphics->fillRectangle(Rect(mPadding, y + mPadding, - parent->getWidth() * a->getDamageHp() / 1024 - - 2 * mPadding, fontHeight)); + const int themeColor = (a->getPoison() + ? Theme::PROG_HP_POISON : Theme::PROG_HP); + Color color = Theme::getProgressColor(themeColor, 1); + color.a = 80; + graphics->setColor(color); + graphics->fillRectangle(Rect(mPadding, y + mPadding, + parent->getWidth() * a->getDamageHp() / 1024 + - 2 * mPadding, fontHeight)); - if (a->getLevel() > 1) - { - graphics->setColor(mForegroundColor); - int minHp = 40 + ((a->getLevel() - 1) * 5); - if (minHp < 0) - minHp = 40; - - graphics->drawLine(parent->getWidth()*minHp / 1024 - + mPadding, y + mPadding, - parent->getWidth() * minHp / 1024, y + fontHeight); - } + if (a->getLevel() > 1) + { + graphics->setColor(mForegroundColor); + int minHp = 40 + ((a->getLevel() - 1) * 5); + if (minHp < 0) + minHp = 40; + + graphics->drawLine(parent->getWidth()*minHp / 1024 + + mPadding, y + mPadding, + parent->getWidth() * minHp / 1024, y + fontHeight); } } else @@ -307,8 +307,7 @@ void AvatarListBox::draw(Graphics *graphics) if (useCaching) graphics->drawTileCollection(&vertexes); - if (parent) - setWidth(parent->getWidth() - 10); + setWidth(parent->getWidth() - 10); BLOCK_END("AvatarListBox::draw") } |