diff options
author | jackpoz <giacomopoz@gmail.com> | 2015-08-05 19:58:19 +0200 |
---|---|---|
committer | jackpoz <giacomopoz@gmail.com> | 2015-08-05 19:58:19 +0200 |
commit | 143026ed19455f5a908ef508d1bf5ce43c092a21 (patch) | |
tree | e450508f5ea4f04c46c83cb2b9bdd148425b5057 /src | |
parent | 578bb8452fa8296b1bfdb00a995862b7fc0f19c0 (diff) |
Core/Spells: Fix damage done by SPELL_EFFECT_NORMALIZED_WEAPON_DMG
Fix a rare case that would cause SPELL_EFFECT_NORMALIZED_WEAPON_DMG to do 4 billions damage or to trigger an assertion in Unit::CalculateDamage() depending by Unit base damage.
To reproduce the issue cast spell 25816 on a level 1-14 warrior, then make the warrior cast spell 694 on a Creature.
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 71c19674790..aaa9328ea89 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -2206,6 +2206,9 @@ uint32 Unit::CalculateDamage(WeaponAttackType attType, bool normalized, bool add } } + minDamage = std::max(0.f, minDamage); + maxDamage = std::max(0.f, maxDamage); + if (minDamage > maxDamage) std::swap(minDamage, maxDamage); |