summaryrefslogtreecommitdiff
path: root/src/being
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-05-09 18:29:27 +0300
committerAndrei Karas <akaras@inbox.ru>2016-05-09 20:27:19 +0300
commit91ed82c45df05bc333bb63fbd92e330f9b9701c7 (patch)
tree4bac4711522e83355dbd83b4ddf2855adff73192 /src/being
parent5d2846414b73ebc9a3288622b03493b59fa26be9 (diff)
downloadmanaplus-91ed82c45df05bc333bb63fbd92e330f9b9701c7.tar.gz
manaplus-91ed82c45df05bc333bb63fbd92e330f9b9701c7.tar.bz2
manaplus-91ed82c45df05bc333bb63fbd92e330f9b9701c7.tar.xz
manaplus-91ed82c45df05bc333bb63fbd92e330f9b9701c7.zip
Add settings for set distance for start syncyng player.
Default distance is 2 and it good for ping < 500. But for bigger ping probably need other values.
Diffstat (limited to 'src/being')
-rw-r--r--src/being/localplayer.cpp6
-rw-r--r--src/being/localplayer.h1
2 files changed, 6 insertions, 1 deletions
diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp
index a021184c0..cb4426319 100644
--- a/src/being/localplayer.cpp
+++ b/src/being/localplayer.cpp
@@ -157,6 +157,7 @@ LocalPlayer::LocalPlayer(const BeingId id,
mTestParticleName(),
mTestParticleTime(0),
mTestParticleHash(0L),
+ mSyncPlayerMoveDistance(config.getBoolValue("syncPlayerMoveDistance")),
mWalkingDir(0),
mUpdateName(true),
mBlockAdvert(false),
@@ -201,6 +202,7 @@ LocalPlayer::LocalPlayer(const BeingId id,
config.addListener("targetDeadPlayers", this);
serverConfig.addListener("enableBuggyServers", this);
config.addListener("syncPlayerMove", this);
+ config.addListener("syncPlayerMoveDistance", this);
config.addListener("drawPath", this);
config.addListener("serverAttack", this);
config.addListener("attackMoving", this);
@@ -1068,6 +1070,8 @@ void LocalPlayer::optionChanged(const std::string &value)
mIsServerBuggy = serverConfig.getBoolValue("enableBuggyServers");
else if (value == "syncPlayerMove")
mSyncPlayerMove = config.getBoolValue("syncPlayerMove");
+ else if (value == "syncPlayerMoveDistance")
+ mSyncPlayerMoveDistance = config.getIntValue("syncPlayerMoveDistance");
else if (value == "drawPath")
mDrawPath = config.getBoolValue("drawPath");
else if (value == "serverAttack")
@@ -2468,7 +2472,7 @@ void LocalPlayer::fixPos()
const int dy = abs(mY - mCrossY);
const int dist = dx > dy ? dx : dy;
const int time = cur_time;
- const int maxDist = mSyncPlayerMove ? 2 : 7;
+ const int maxDist = mSyncPlayerMove ? mSyncPlayerMoveDistance : 7;
if (dist > maxDist)
{
diff --git a/src/being/localplayer.h b/src/being/localplayer.h
index ccecb18fb..14d731b74 100644
--- a/src/being/localplayer.h
+++ b/src/being/localplayer.h
@@ -491,6 +491,7 @@ class LocalPlayer final : public Being,
std::string mTestParticleName;
int mTestParticleTime;
unsigned long mTestParticleHash;
+ int mSyncPlayerMoveDistance;
unsigned char mWalkingDir; // The direction the player is walking in.
/** Whether or not the name settings have changed */
bool mUpdateName;