Core/Units: Set UNIT_FLAG2_*_AOI dynamically according to the VisibilityDistanceType set on the creature (#28284)

This commit is contained in:
Meji
2022-10-01 00:11:52 +02:00
committed by GitHub
parent 9bc78bc069
commit 4b06b8ec1e
2 changed files with 21 additions and 2 deletions
@@ -878,6 +878,25 @@ void WorldObject::SetVisibilityDistanceOverride(VisibilityDistanceType type)
if (GetTypeId() == TYPEID_PLAYER)
return;
if (Creature* creature = ToCreature())
{
creature->RemoveUnitFlag2(UNIT_FLAG2_LARGE_AOI | UNIT_FLAG2_GIGANTIC_AOI | UNIT_FLAG2_INFINITE_AOI);
switch (type)
{
case VisibilityDistanceType::Large:
creature->SetUnitFlag2(UNIT_FLAG2_LARGE_AOI);
break;
case VisibilityDistanceType::Gigantic:
creature->SetUnitFlag2(UNIT_FLAG2_GIGANTIC_AOI);
break;
case VisibilityDistanceType::Infinite:
creature->SetUnitFlag2(UNIT_FLAG2_INFINITE_AOI);
break;
default:
break;
}
}
m_visibilityDistanceOverride = VisibilityDistances[AsUnderlyingType(type)];
}