[11183] Use map type dependent visibility distance for gameobject, dynamicobject and corpse visibility checks

Also drop no more needed Visibility.Distance.Object config option
This commit is contained in:
SilverIce 2011-02-18 02:09:47 +02:00
parent 0c45eee083
commit d597ffe10e
8 changed files with 5 additions and 33 deletions

View file

@ -7901,11 +7901,6 @@ bool Unit::isVisibleForOrDetect(Unit const* u, WorldObject const* viewPoint, boo
if (!IsWithinDistInMap(viewPoint,World::GetMaxVisibleDistanceInFlight()+(inVisibleList ? World::GetVisibleObjectGreyDistance() : 0.0f), is3dDistance))
return false;
}
else if(!isAlive()) // distance for show body
{
if (!IsWithinDistInMap(viewPoint,World::GetMaxVisibleDistanceForObject()+(inVisibleList ? World::GetVisibleObjectGreyDistance() : 0.0f), is3dDistance))
return false;
}
else if(!at_same_transport) // distance for show player/pet/creature (no transport case)
{
// Any units far than max visible distance for viewer or not in our map are not visible too
@ -7925,7 +7920,7 @@ bool Unit::isVisibleForOrDetect(Unit const* u, WorldObject const* viewPoint, boo
return false;
// Visible units, always are visible for all units, except for units under invisibility and phases
if (m_Visibility == VISIBILITY_ON && u->m_invisibilityMask==0 && InSamePhase(u))
if (m_Visibility == VISIBILITY_ON && u->m_invisibilityMask==0)
return true;
// GMs see any players, not higher GMs and all units in any phase
@ -7941,10 +7936,6 @@ bool Unit::isVisibleForOrDetect(Unit const* u, WorldObject const* viewPoint, boo
if (m_Visibility == VISIBILITY_OFF)
return false;
// phased visibility (both must phased in same way)
if(!InSamePhase(u))
return false;
// raw invisibility
bool invisible = (m_invisibilityMask != 0 || u->m_invisibilityMask !=0);