aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/AI/PlayerAI/PlayerAI.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/server/game/AI/PlayerAI/PlayerAI.cpp b/src/server/game/AI/PlayerAI/PlayerAI.cpp
index b34251b8970..68cb268ac6c 100644
--- a/src/server/game/AI/PlayerAI/PlayerAI.cpp
+++ b/src/server/game/AI/PlayerAI/PlayerAI.cpp
@@ -575,13 +575,22 @@ PlayerAI::TargetedSpell PlayerAI::VerifySpellCast(uint32 spellId, Unit* target)
// Find highest spell rank that we know
uint32 knownRank, nextRank;
if (me->HasSpell(spellId))
+ {
// this will save us some lookups if the player has the highest rank (expected case)
- nextRank = sSpellMgr->GetNextSpellInChain(knownRank = spellId);
+ knownRank = spellId;
+ nextRank = sSpellMgr->GetNextSpellInChain(spellId);
+ }
else
- knownRank = 0, nextRank = sSpellMgr->GetFirstSpellInChain(spellId);
+ {
+ knownRank = 0;
+ nextRank = sSpellMgr->GetFirstSpellInChain(spellId);
+ }
while (nextRank && me->HasSpell(nextRank))
- nextRank = sSpellMgr->GetNextSpellInChain(knownRank = nextRank);
+ {
+ knownRank = nextRank;
+ nextRank = sSpellMgr->GetNextSpellInChain(knownRank);
+ }
if (!knownRank)
return {};