mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 10:37:03 +00:00
[10052] Camera System
(based on SilverIce's repo commit 4f2f4ab + next 3 more) Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
f520c9b1e0
commit
e427ce80cc
27 changed files with 515 additions and 207 deletions
|
|
@ -10579,10 +10579,6 @@ bool Unit::isVisibleForOrDetect(Unit const* u, WorldObject const* viewPoint, boo
|
|||
return false;
|
||||
}
|
||||
|
||||
// always seen by far sight caster
|
||||
if (u->GetTypeId()==TYPEID_PLAYER && ((Player*)u)->GetFarSight()==GetGUID())
|
||||
return true;
|
||||
|
||||
// different visible distance checks
|
||||
if (u->isInFlight()) // what see player in flight
|
||||
{
|
||||
|
|
@ -10781,12 +10777,41 @@ void Unit::SetVisibility(UnitVisibility x)
|
|||
|
||||
if(IsInWorld())
|
||||
{
|
||||
// some auras requires visible target
|
||||
if(m_Visibility == VISIBILITY_GROUP_NO_DETECT || m_Visibility == VISIBILITY_OFF)
|
||||
{
|
||||
static const AuraType auratypes[] = {SPELL_AURA_BIND_SIGHT, SPELL_AURA_FAR_SIGHT, SPELL_AURA_NONE};
|
||||
for (AuraType const* type = &auratypes[0]; *type != SPELL_AURA_NONE; ++type)
|
||||
{
|
||||
AuraList& alist = m_modAuras[*type];
|
||||
if(alist.empty())
|
||||
continue;
|
||||
|
||||
for (AuraList::iterator it = alist.begin(); it != alist.end();)
|
||||
{
|
||||
Aura* aura = (*it);
|
||||
Unit* owner = aura->GetCaster();
|
||||
|
||||
if (!owner || !isVisibleForOrDetect(owner,this,false))
|
||||
{
|
||||
alist.erase(it);
|
||||
RemoveAura(aura);
|
||||
it = alist.begin();
|
||||
}
|
||||
else
|
||||
++it;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Map *m = GetMap();
|
||||
|
||||
if(GetTypeId()==TYPEID_PLAYER)
|
||||
m->PlayerRelocation((Player*)this,GetPositionX(),GetPositionY(),GetPositionZ(),GetOrientation());
|
||||
else
|
||||
m->CreatureRelocation((Creature*)this,GetPositionX(),GetPositionY(),GetPositionZ(),GetOrientation());
|
||||
|
||||
GetViewPoint().Event_ViewPointVisibilityChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -12039,6 +12064,7 @@ void Unit::RemoveFromWorld()
|
|||
RemoveAllGameObjects();
|
||||
RemoveAllDynObjects();
|
||||
CleanupDeletedAuras();
|
||||
GetViewPoint().Event_RemovedFromWorld();
|
||||
}
|
||||
|
||||
Object::RemoveFromWorld();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue