diff options
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 19 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/UnitDefines.h | 4 |
2 files changed, 21 insertions, 2 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 4aaf3a5971b..88870a1ba1c 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -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)]; } diff --git a/src/server/game/Entities/Unit/UnitDefines.h b/src/server/game/Entities/Unit/UnitDefines.h index c523b9bee11..c71b061b07e 100644 --- a/src/server/game/Entities/Unit/UnitDefines.h +++ b/src/server/game/Entities/Unit/UnitDefines.h @@ -209,10 +209,10 @@ enum UnitFlags2 : uint32 UNIT_FLAG2_MIRROR_IMAGE | UNIT_FLAG2_FORCE_MOVEMENT | UNIT_FLAG2_DISARM_OFFHAND | UNIT_FLAG2_DISABLE_PRED_STATS | UNIT_FLAG2_ALLOW_CHANGING_TALENTS | UNIT_FLAG2_DISARM_RANGED | /* UNIT_FLAG2_REGENERATE_POWER | */ UNIT_FLAG2_RESTRICT_PARTY_INTERACTION | - UNIT_FLAG2_PREVENT_SPELL_CLICK | UNIT_FLAG2_INTERACT_WHILE_HOSTILE | /* UNIT_FLAG2_CANNOT_TURN | */ + UNIT_FLAG2_PREVENT_SPELL_CLICK | UNIT_FLAG2_INTERACT_WHILE_HOSTILE | /* UNIT_FLAG2_UNK2 | */ /* UNIT_FLAG2_PLAY_DEATH_ANIM | */ UNIT_FLAG2_ALLOW_CHEAT_SPELLS | UNIT_FLAG2_SUPPRESS_HIGHLIGHT_WHEN_TARGETED_OR_MOUSED_OVER | UNIT_FLAG2_TREAT_AS_RAID_UNIT_FOR_HELPFUL_SPELLS | UNIT_FLAG2_LARGE_AOI | UNIT_FLAG2_GIGANTIC_AOI | UNIT_FLAG2_NO_ACTIONS | - UNIT_FLAG2_AI_WILL_ONLY_SWIM_IF_TARGET_SWIMS | UNIT_FLAG2_DONT_GENERATE_COMBAT_LOG_WHEN_ENGAGED_WITH_NPCS | /* UNIT_FLAG2_UNTARGETABLE_BY_CLIENT | */ UNIT_FLAG2_ATTACKER_IGNORES_MINIMUM_RANGES | + UNIT_FLAG2_AI_WILL_ONLY_SWIM_IF_TARGET_SWIMS | UNIT_FLAG2_DONT_GENERATE_COMBAT_LOG_WHEN_ENGAGED_WITH_NPCS | UNIT_FLAG2_ATTACKER_IGNORES_MINIMUM_RANGES | UNIT_FLAG2_UNINTERACTIBLE_IF_HOSTILE | UNIT_FLAG2_UNUSED_11 | UNIT_FLAG2_INFINITE_AOI | UNIT_FLAG2_UNUSED_13), // SKIP UNIT_FLAG2_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG2_DISALLOWED) // SKIP |