aboutsummaryrefslogtreecommitdiff
path: root/src/game/Unit.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-04-30 16:13:57 -0500
committermegamage <none@none>2009-04-30 16:13:57 -0500
commiteb9328e4dbd5e136728f90ae794da1066688953f (patch)
tree824363814e84c5aa1b90ff51deb183e4e435de8b /src/game/Unit.cpp
parent83758cb2e07be8c8dab9dffed0cbba760260f952 (diff)
*Fix the calculation of isInLine.
--HG-- branch : trunk
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r--src/game/Unit.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 1bda587f89e..756a1ac7d43 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -3525,10 +3525,9 @@ bool Unit::isInBack(Unit const* target, float distance, float arc) const
bool Unit::isInLine(Unit const* target, float distance) const
{
if(!HasInArc(M_PI, target) || !IsWithinDistInMap(target, distance)) return false;
- float width = (GetObjectSize() / 2 + target->GetObjectSize()) / 2;
- float angle = GetAngle(target);
- angle -= GetOrientation();
- return abs(sin(angle)) * distance < width;
+ float width = GetObjectSize() + target->GetObjectSize() * 0.5f;
+ float angle = GetAngle(target) - GetOrientation();
+ return abs(sin(angle)) * GetExactDistance2d(target->GetPositionX(), target->GetPositionY()) < width;
}
bool Unit::isInAccessiblePlaceFor(Creature const* c) const