From 143026ed19455f5a908ef508d1bf5ce43c092a21 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Wed, 5 Aug 2015 19:58:19 +0200 Subject: 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. --- src/server/game/Entities/Unit/Unit.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/server') 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); -- cgit v1.2.3