summaryrefslogtreecommitdiff
path: root/src/beingmanager.cpp
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn@lindeijer.nl>2010-05-21 21:56:41 +0200
committerThorbjørn Lindeijer <thorbjorn@lindeijer.nl>2010-05-21 21:56:41 +0200
commit63b4c9869b6256ed7644113cd23305b07cf9df03 (patch)
treeaff0d99f5b58cbaf4195ac755ecfb79f97bf7b65 /src/beingmanager.cpp
parent8c4c5a58c256cce7beb21b68c8a7d6b6ff5c4a3a (diff)
parent2953a3f92c5097bd99ff21f4536fe167a32d90c5 (diff)
downloadmana-63b4c9869b6256ed7644113cd23305b07cf9df03.tar.gz
mana-63b4c9869b6256ed7644113cd23305b07cf9df03.tar.bz2
mana-63b4c9869b6256ed7644113cd23305b07cf9df03.tar.xz
mana-63b4c9869b6256ed7644113cd23305b07cf9df03.zip
Merge branch '1.0'
Conflicts: src/beingmanager.cpp src/beingmanager.h src/client.cpp src/localplayer.cpp
Diffstat (limited to 'src/beingmanager.cpp')
-rw-r--r--src/beingmanager.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/beingmanager.cpp b/src/beingmanager.cpp
index 631aadab..a92e3faf 100644
--- a/src/beingmanager.cpp
+++ b/src/beingmanager.cpp
@@ -193,7 +193,8 @@ void BeingManager::clear()
Being *BeingManager::findNearestLivingBeing(int x, int y,
int maxTileDist,
- ActorSprite::Type type) const
+ ActorSprite::Type type,
+ Being *excluded) const
{
Being *closestBeing = 0;
int dist = 0;
@@ -210,8 +211,9 @@ Being *BeingManager::findNearestLivingBeing(int x, int y,
int d = abs(((int) pos.x) - x) + abs(((int) pos.y) - y);
if ((being->getType() == type || type == ActorSprite::UNKNOWN)
- && (d < dist || !closestBeing) // it is closer
- && being->isAlive()) // no dead beings
+ && (d < dist || !closestBeing) // it is closer
+ && being->isAlive() // no dead beings
+ && being != excluded)
{
dist = d;
closestBeing = being;
@@ -225,7 +227,8 @@ Being *BeingManager::findNearestLivingBeing(Being *aroundBeing, int maxDist,
ActorSprite::Type type) const
{
const Vector &pos = aroundBeing->getPosition();
- return findNearestLivingBeing((int)pos.x, (int)pos.y, maxDist, type);
+ return findNearestLivingBeing((int)pos.x, (int)pos.y, maxDist, type,
+ aroundBeing);
}
bool BeingManager::hasBeing(Being *being) const