summaryrefslogtreecommitdiff
path: root/src/being
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-09-16 16:44:21 +0300
committerAndrei Karas <akaras@inbox.ru>2014-09-16 16:44:21 +0300
commit4d54d36ed8e4bcc34e5b9f90e2126fadb490c34f (patch)
tree3bea875b8d320d8ba633eefa2482dfc6f3fa631b /src/being
parent8185a857a4d9152b3dda7f6b5649a27427010605 (diff)
downloadmv-4d54d36ed8e4bcc34e5b9f90e2126fadb490c34f.tar.gz
mv-4d54d36ed8e4bcc34e5b9f90e2126fadb490c34f.tar.bz2
mv-4d54d36ed8e4bcc34e5b9f90e2126fadb490c34f.tar.xz
mv-4d54d36ed8e4bcc34e5b9f90e2126fadb490c34f.zip
Add server feature haveBrokenPlayerAttackDistance.
Diffstat (limited to 'src/being')
-rw-r--r--src/being/localplayer.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp
index fd3acd4f9..d5e32316c 100644
--- a/src/being/localplayer.cpp
+++ b/src/being/localplayer.cpp
@@ -1117,18 +1117,20 @@ void LocalPlayer::moveToTarget(int dist)
dist = settings.moveToTargetType;
if (dist != 0)
{
+ const bool broken = Net::getServerFeatures()
+ ->haveBrokenPlayerAttackDistance();
switch (dist)
{
case 10:
dist = mAttackRange;
- if (dist == 1 && serverVersion < 1)
+ if (dist == 1 && broken)
dist = 2;
break;
case 11:
dist = mAttackRange - 1;
if (dist < 1)
dist = 1;
- if (dist == 1 && serverVersion < 1)
+ if (dist == 1 && broken)
dist = 2;
break;
default:
@@ -2746,10 +2748,12 @@ void LocalPlayer::attack2(Being *const target, const bool keep,
if (!dontChangeEquipment && target)
changeEquipmentBeforeAttack(target);
+ const bool broken = Net::getServerFeatures()
+ ->haveBrokenPlayerAttackDistance();
+
// probably need cache getPathLength(target)
if ((!target || settings.attackType == 0 || settings.attackType == 3)
- || (withinAttackRange(target, serverVersion < 1,
- serverVersion < 1 ? 1 : 0)
+ || (withinAttackRange(target, broken, broken ? 1 : 0)
&& getPathLength(target) <= getAttackRange2()))
{
attack(target, keep);