diff options
author | Andrei Karas <akaras@inbox.ru> | 2011-01-23 21:27:04 +0200 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2011-01-23 21:27:04 +0200 |
commit | 088bb9486bb87580889941341a6dbd2f60076b27 (patch) | |
tree | 612a44267b3051258c3efdd9714ea0dd4f9d8541 /src/gui/ministatus.cpp | |
parent | c349a278a96217e7c7b490f208ec40a39e893898 (diff) | |
download | plus-088bb9486bb87580889941341a6dbd2f60076b27.tar.gz plus-088bb9486bb87580889941341a6dbd2f60076b27.tar.bz2 plus-088bb9486bb87580889941341a6dbd2f60076b27.tar.xz plus-088bb9486bb87580889941341a6dbd2f60076b27.zip |
Add some protection in predicting job level.
Also dont show need word if current experience more than needed.
Diffstat (limited to 'src/gui/ministatus.cpp')
-rw-r--r-- | src/gui/ministatus.cpp | 43 |
1 files changed, 31 insertions, 12 deletions
diff --git a/src/gui/ministatus.cpp b/src/gui/ministatus.cpp index f892cdc8b..5aa49543a 100644 --- a/src/gui/ministatus.cpp +++ b/src/gui/ministatus.cpp @@ -219,12 +219,22 @@ void MiniStatusWindow::mouseMoved(gcn::MouseEvent &event) } else if (event.getSource() == mXpBar) { - mTextPopup->show(x + getX(), y + getY(), - strprintf("%u/%u", PlayerInfo::getAttribute(EXP), - PlayerInfo::getAttribute(EXP_NEEDED)), - strprintf("%s: %u", _("Need"), - PlayerInfo::getAttribute(EXP_NEEDED) - - PlayerInfo::getAttribute(EXP))); + if (PlayerInfo::getAttribute(EXP) + > PlayerInfo::getAttribute(EXP_NEEDED)) + { + mTextPopup->show(x + getX(), y + getY(), + strprintf("%u/%u", PlayerInfo::getAttribute(EXP), + PlayerInfo::getAttribute(EXP_NEEDED))); + } + else + { + mTextPopup->show(x + getX(), y + getY(), + strprintf("%u/%u", PlayerInfo::getAttribute(EXP), + PlayerInfo::getAttribute(EXP_NEEDED)), + strprintf("%s: %u", _("Need"), + PlayerInfo::getAttribute(EXP_NEEDED) + - PlayerInfo::getAttribute(EXP))); + } mStatusPopup->hide(); } else if (event.getSource() == mHpBar) @@ -246,12 +256,21 @@ void MiniStatusWindow::mouseMoved(gcn::MouseEvent &event) std::pair<int, int> exp = PlayerInfo::getStatExperience( Net::getPlayerHandler()->getJobLocation()); - mTextPopup->show(x + getX(), y + getY(), - strprintf("%u/%u", exp.first, - exp.second), - strprintf("%s: %u", _("Need"), - exp.second - - exp.first)); + if (exp.first > exp.second) + { + mTextPopup->show(x + getX(), y + getY(), + strprintf("%u/%u", exp.first, + exp.second)); + } + else + { + mTextPopup->show(x + getX(), y + getY(), + strprintf("%u/%u", exp.first, + exp.second), + strprintf("%s: %u", _("Need"), + exp.second + - exp.first)); + } mStatusPopup->hide(); } else |