From 7dc29ee9c144317c95ed564ad7c81138ceafb910 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Wed, 5 Jan 2022 22:32:05 +0100 Subject: [PATCH] Core/Spells: skip unnecessary coefficient scaling lookups when no coefficient is provided --- src/server/game/Entities/Unit/Unit.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 0f42d57ddf..ea9fa65b04 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -6717,8 +6717,11 @@ uint32 Unit::SpellDamageBonusDone(Unit* victim, SpellInfo const* spellProto, uin return uint32(std::max(pdamage * DoneTotalMod, 0.0f)); } - spellPowerCoeff = spellProto->CalculateScaledCoefficient(this, spellPowerCoeff); - attackPowerCoeff = spellProto->CalculateScaledCoefficient(this, attackPowerCoeff); + if (spellPowerCoeff > 0.f) + spellPowerCoeff = spellProto->CalculateScaledCoefficient(this, spellPowerCoeff); + + if (attackPowerCoeff > 0.f) + attackPowerCoeff = spellProto->CalculateScaledCoefficient(this, attackPowerCoeff); if (attackPowerCoeff > 0.f) { @@ -7975,7 +7978,8 @@ uint32 Unit::MeleeDamageBonusDone(Unit* victim, uint32 pdamage, WeaponAttackType if (SpellBonusEntry const* bonus = sSpellMgr->GetSpellBonusData(spellProto->Id)) attackPowerCoeff = bonus->ap_bonus; - attackPowerCoeff = spellProto->CalculateScaledCoefficient(this, attackPowerCoeff); + if (attackPowerCoeff > 0.f) + attackPowerCoeff = spellProto->CalculateScaledCoefficient(this, attackPowerCoeff); if (attackPowerCoeff > 0.f) DoneFlatBenefit += attackPowerCoeff * GetTotalAttackPowerValue(attType);