From f477948595919e1a3d4b0eb842a623c4d171fecc Mon Sep 17 00:00:00 2001 From: Trystanosaurus <25745474+Trystanosaurus@users.noreply.github.com> Date: Sun, 4 Mar 2018 19:00:03 +0100 Subject: [PATCH] Implement RATE_CREATURE_AGGRO Make aggroRate a local variable and return aggro range of 0 if aggroRate is 0 to save unnecessary calculations. --- src/server/game/Entities/Creature/Creature.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 8a2a0f3a1..c829c54bd 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2699,6 +2699,10 @@ float Creature::GetAggroRange(Unit const* target) const // Determines the aggro range for creatures // Based on data from wowwiki due to lack of 3.3.5a data + float aggroRate = sWorld->getRate(RATE_CREATURE_AGGRO); + if (aggroRate == 0) + return 0.0f; + uint32 targetLevel = target->getLevelForTarget(this); uint32 myLevel = getLevelForTarget(target); int32 levelDiff = int32(targetLevel) - int32(myLevel); @@ -2729,7 +2733,7 @@ float Creature::GetAggroRange(Unit const* target) const if (aggroRadius < minRange) aggroRadius = minRange; - return aggroRadius; + return (aggroRadius * aggroRate); } void Creature::SetObjectScale(float scale)