From 91ed82c45df05bc333bb63fbd92e330f9b9701c7 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 9 May 2016 18:29:27 +0300 Subject: 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. --- src/being/localplayer.cpp | 6 +++++- src/being/localplayer.h | 1 + src/defaults.cpp | 3 ++- src/gui/widgets/tabs/setup_other.cpp | 5 +++++ 4 files changed, 13 insertions(+), 2 deletions(-) (limited to 'src') 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; diff --git a/src/defaults.cpp b/src/defaults.cpp index f4c7763f1..0719f3ac3 100644 --- a/src/defaults.cpp +++ b/src/defaults.cpp @@ -102,7 +102,8 @@ DefaultsData* getConfigDefaults() AddDEF("targetingType", 0); AddDEF("followMode", 0); AddDEF("imitationMode", 0); - AddDEF("syncPlayerMove", false); + AddDEF("syncPlayerMove", true); + AddDEF("syncPlayerMoveDistance", 2); AddDEF("drawPath", false); AddDEF("moveToTargetType", 10); AddDEF("crazyMoveProgram", "mumrsonmdmlon"); diff --git a/src/gui/widgets/tabs/setup_other.cpp b/src/gui/widgets/tabs/setup_other.cpp index 6b9137dad..186e76fc2 100644 --- a/src/gui/widgets/tabs/setup_other.cpp +++ b/src/gui/widgets/tabs/setup_other.cpp @@ -208,6 +208,11 @@ Setup_Other::Setup_Other(const Widget2 *const widget) : new SetupItemCheckBox(_("Sync player move"), "", "syncPlayerMove", this, "syncPlayerMoveEvent"); + // TRANSLATORS: settings option + new SetupItemIntTextField(_("Sync player move distance"), "", + "syncPlayerMoveDistance", + this, "syncPlayerMoveDistanceEvent", 1, 30); + // TRANSLATORS: settings option new SetupItemTextField(_("Crazy move A program"), "", "crazyMoveProgram", this, "crazyMoveProgramEvent"); -- cgit v1.2.3-70-g09d2