summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-01-23 05:21:34 +0200
committerAndrei Karas <akaras@inbox.ru>2011-01-23 05:21:34 +0200
commit675463a45fcbfb05482a4f9398a6cfd9c052043b (patch)
treedfd91e43142a2f4eda9e9094203754ef70558177
parent63112267be277e38224b510ec5745421dd7d4917 (diff)
downloadmanaplus-675463a45fcbfb05482a4f9398a6cfd9c052043b.tar.gz
manaplus-675463a45fcbfb05482a4f9398a6cfd9c052043b.tar.bz2
manaplus-675463a45fcbfb05482a4f9398a6cfd9c052043b.tar.xz
manaplus-675463a45fcbfb05482a4f9398a6cfd9c052043b.zip
Recover job level from job experience.
-rw-r--r--src/gui/statuswindow.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/gui/statuswindow.cpp b/src/gui/statuswindow.cpp
index 853ea1789..ed29be119 100644
--- a/src/gui/statuswindow.cpp
+++ b/src/gui/statuswindow.cpp
@@ -324,8 +324,18 @@ void StatusWindow::event(Channels channel _UNUSED_,
{
if (mJobLvlLabel)
{
- mJobLvlLabel->setCaption(strprintf(_("Job: %d"),
- PlayerInfo::getStatBase(id)));
+ int lvl = PlayerInfo::getStatBase(id);
+ if (!lvl)
+ {
+ // possible server corrupted and dont send job level,
+ // then we fixing it :)
+ std::pair<int, int> exp
+ = PlayerInfo::getStatExperience(id);
+ lvl = (exp.second - 20000) / 150;
+ PlayerInfo::setStatBase(id, lvl);
+ }
+
+ mJobLvlLabel->setCaption(strprintf(_("Job: %d"), lvl));
mJobLvlLabel->adjustSize();
updateProgressBar(mJobBar, id, false);