summaryrefslogtreecommitdiff
path: root/src/gui/ministatus.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-01-23 21:27:04 +0200
committerAndrei Karas <akaras@inbox.ru>2011-01-23 21:27:04 +0200
commit088bb9486bb87580889941341a6dbd2f60076b27 (patch)
tree612a44267b3051258c3efdd9714ea0dd4f9d8541 /src/gui/ministatus.cpp
parentc349a278a96217e7c7b490f208ec40a39e893898 (diff)
downloadmanaplus-088bb9486bb87580889941341a6dbd2f60076b27.tar.gz
manaplus-088bb9486bb87580889941341a6dbd2f60076b27.tar.bz2
manaplus-088bb9486bb87580889941341a6dbd2f60076b27.tar.xz
manaplus-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.cpp43
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