aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorelecyb <svn@electrocyber.com.ar>2012-01-02 16:33:14 -0300
committerelecyb <svn@electrocyber.com.ar>2012-01-02 16:33:14 -0300
commit993c4e748f6013f7a54b4d4b51c07d40af98a31c (patch)
tree1f0aa49978cf15f59d63880c75457a65d27ca620 /src/server
parentced346076b335a02a5fc8de8e1bd1dc43ae4e838 (diff)
Core/Spells: Update nearby visible objects for new viewpoints, fix spells with Far Sight and Bind Sight effects.
Diffstat (limited to 'src/server')
-rwxr-xr-xsrc/server/game/Entities/Object/Object.cpp6
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp2
2 files changed, 6 insertions, 2 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 2fabc5130a8..2bee996eab0 100755
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -1668,7 +1668,11 @@ bool WorldObject::canSeeOrDetect(WorldObject const* obj, bool ignoreStealth, boo
}
}
- if (!corpseCheck && !IsWithinDist(obj, GetSightRange(obj), false))
+ WorldObject const* viewpoint = this;
+ if (Player const* player = this->ToPlayer())
+ viewpoint = player->GetViewpoint();
+
+ if (!corpseCheck && !viewpoint->IsWithinDist(obj, GetSightRange(obj), false))
return false;
}
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 10ec8500923..3c1764e1266 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -22974,7 +22974,7 @@ WorldObject* Player::GetViewpoint() const
{
if (uint64 guid = GetUInt64Value(PLAYER_FARSIGHT))
return (WorldObject*)ObjectAccessor::GetObjectByTypeMask(*this, guid, TYPEMASK_SEER);
- return NULL;
+ return (WorldObject*) this;
}
bool Player::CanUseBattlegroundObject()