aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorQAston <qaston@gmail.com>2011-08-21 00:58:55 -0700
committerQAston <qaston@gmail.com>2011-08-21 00:58:55 -0700
commit8e8fa083b2536341c792e169ef4cbdb23eef9c67 (patch)
tree40b6385dd64b4b57c82d28637e6fa3fec0a24e9a /src
parenta10eb53598e405356d7ed38e9ab8b90d1b5de756 (diff)
parent171049bf4a0f881fcbb46ec2edcc76f9e4637990 (diff)
Merge pull request #2636 from LihO/master
Core/Auras: Check amount of total ticks to avoid division by zero (and crash) in Unit::GetRemainingPeriodicAmount.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 21f5d9f6d51..8ed36224a34 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -17385,7 +17385,7 @@ uint32 Unit::GetRemainingPeriodicAmount(uint64 caster, uint32 spellId, AuraType
AuraEffectList const& periodicAuras = GetAuraEffectsByType(auraType);
for (AuraEffectList::const_iterator i = periodicAuras.begin(); i != periodicAuras.end(); ++i)
{
- if ((*i)->GetCasterGUID() != caster || (*i)->GetId() != spellId || (*i)->GetEffIndex() != effectIndex)
+ if ((*i)->GetCasterGUID() != caster || (*i)->GetId() != spellId || (*i)->GetEffIndex() != effectIndex || (*i)->GetTotalTicks() == 0)
continue;
amount += uint32(((*i)->GetAmount() * std::max<int32>((*i)->GetTotalTicks() - int32((*i)->GetTickNumber()), 0)) / (*i)->GetTotalTicks());
break;