summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2013-04-09 20:19:51 +0300
committerAndrei Karas <akaras@inbox.ru>2013-04-09 20:19:51 +0300
commitf1db2118bec94c32ebda6a281dc956ba1a480163 (patch)
tree21e81d9701cc758d0d1bf171c657ba4f722b69df
parent4aeceabb5d4f00e2555234951a2f5db24b008265 (diff)
downloadmv-f1db2118bec94c32ebda6a281dc956ba1a480163.tar.gz
mv-f1db2118bec94c32ebda6a281dc956ba1a480163.tar.bz2
mv-f1db2118bec94c32ebda6a281dc956ba1a480163.tar.xz
mv-f1db2118bec94c32ebda6a281dc956ba1a480163.zip
Improve slow login update speed.
-rw-r--r--src/game.cpp34
-rw-r--r--src/game.h1
-rw-r--r--src/gui/killstats.cpp9
-rw-r--r--src/gui/killstats.h1
4 files changed, 22 insertions, 23 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 0fc4c36b1..465911767 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -385,7 +385,8 @@ Game::Game():
mAdjustPerfomance(config.getBoolValue("adjustPerfomance")),
mLowerCounter(0),
mPing(0),
- mLogInput(config.getBoolValue("logInput"))
+ mLogInput(config.getBoolValue("logInput")),
+ mTime(cur_time + 1)
{
touchManager.setInGame(true);
spellManager = new SpellManager;
@@ -571,20 +572,25 @@ void Game::slowLogic()
BLOCK_START("Game::slowLogic")
if (player_node)
player_node->slowLogic();
- if (botCheckerWindow)
- botCheckerWindow->slowLogic();
- if (debugWindow)
- debugWindow->slowLogic();
- if (killStats)
- killStats->update();
- if (socialWindow)
- socialWindow->slowLogic();
- if (whoIsOnline)
- whoIsOnline->slowLogic();
+ const int time = cur_time;
+ if (mTime <= time)
+ {
+ mTime = time + 1;
+ if (botCheckerWindow)
+ botCheckerWindow->slowLogic();
+ if (debugWindow)
+ debugWindow->slowLogic();
+ if (killStats)
+ killStats->update();
+ if (socialWindow)
+ socialWindow->slowLogic();
+ if (whoIsOnline)
+ whoIsOnline->slowLogic();
+ Being::reReadConfig();
+ if (killStats)
+ killStats->recalcStats();
+ }
- Being::reReadConfig();
- if (killStats)
- killStats->recalcStats();
if (shopWindow)
shopWindow->updateTimes();
if (mainGraphics->getOpenGL())
diff --git a/src/game.h b/src/game.h
index a78c740a4..c40c202d3 100644
--- a/src/game.h
+++ b/src/game.h
@@ -140,6 +140,7 @@ class Game final
int mLowerCounter;
int mPing;
bool mLogInput;
+ int mTime;
static Game *mInstance;
};
diff --git a/src/gui/killstats.cpp b/src/gui/killstats.cpp
index c1a858a79..f77c9a8f4 100644
--- a/src/gui/killstats.cpp
+++ b/src/gui/killstats.cpp
@@ -88,8 +88,7 @@ KillStats::KillStats():
mJackoId(0),
mIsJackoAlive(false),
mIsJackoMustSpawn(true),
- mIsJackoSpawnTimeUnknown(true),
- mUpdateTime(cur_time + 1)
+ mIsJackoSpawnTimeUnknown(true)
{
setWindowName("Kill stats");
setCloseButton(true);
@@ -304,12 +303,6 @@ void KillStats::update()
{
BLOCK_START("KillStats::update")
- const int time = cur_time;
- if (mUpdateTime > time)
- return;
-
- mUpdateTime = time + 1;
-
mExpSpeed1Label->setCaption(strprintf(ngettext("Exp speed per %d min: %s",
"Exp speed per %d min: %s", 1), 1, toString(m1minSpeed).c_str()));
diff --git a/src/gui/killstats.h b/src/gui/killstats.h
index 69342721e..90191138b 100644
--- a/src/gui/killstats.h
+++ b/src/gui/killstats.h
@@ -131,7 +131,6 @@ class KillStats final : public Window,
bool mIsJackoAlive;
bool mIsJackoMustSpawn;
bool mIsJackoSpawnTimeUnknown;
- int mUpdateTime;
};
extern KillStats *killStats;