aboutsummaryrefslogtreecommitdiff
path: root/src/game/Unit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r--src/game/Unit.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 24d1f3a3121..a4a08bb40f1 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -9959,14 +9959,26 @@ void Unit::SetVisibility(UnitVisibility x)
m_Visibility = x;
if(IsInWorld())
+ SetToNotify();
+
+ if(x == VISIBILITY_GROUP_STEALTH)
{
+ std::list<Unit*> targets;
+ Trinity::AnyUnitInObjectRangeCheck check(this, World::GetMaxVisibleDistance());
+ Trinity::UnitListSearcher<Trinity::AnyUnitInObjectRangeCheck> searcher(targets, check);
+ VisitNearbyWorldObject(World::GetMaxVisibleDistance(), searcher);
+ for(std::list<Unit*>::iterator iter = targets.begin(); iter != targets.end(); ++iter)
+ if((*iter)->GetTypeId() == TYPEID_PLAYER)
+ ((Player*)(*iter))->m_clientGUIDs.erase(GetGUID());
+ }
+ /*{
Map *m = GetMap();
if(GetTypeId()==TYPEID_PLAYER)
m->PlayerRelocation((Player*)this,GetPositionX(),GetPositionY(),GetPositionZ(),GetOrientation());
else
m->CreatureRelocation((Creature*)this,GetPositionX(),GetPositionY(),GetPositionZ(),GetOrientation());
- }
+ }*/
}
void Unit::UpdateSpeed(UnitMoveType mtype, bool forced)