Core/Spells: Fix infinite loop

Fix an infinite loop caused by a mix of item 25498 and liquid damage
This commit is contained in:
jackpoz
2019-07-28 17:13:48 +02:00
parent f7eeb4525f
commit 9b292f4369
2 changed files with 8 additions and 2 deletions
+4 -1
View File
@@ -3136,9 +3136,12 @@ void Unit::ProcessTerrainStatusUpdate(ZLiquidStatus status, Optional<LiquidData>
if (_lastLiquid && _lastLiquid->SpellId)
RemoveAurasDueToSpell(_lastLiquid->SpellId);
Player* player = GetCharmerOrOwnerPlayerOrPlayerItself();
// Set _lastLiquid before casting liquid spell to avoid infinite loops
_lastLiquid = curLiquid;
if (curLiquid && curLiquid->SpellId && (!player || !player->IsGameMaster()))
CastSpell(this, curLiquid->SpellId, true);
_lastLiquid = curLiquid;
}
}