Fixed setting and unsetting of m_spellModTakingSpell
Port From (https://github.com/TrinityCore/TrinityCore/commit/fb5c07ffe8d72d32a2c47cfa41dfb3a952160b72)
This commit is contained in:
@@ -2969,10 +2969,10 @@ namespace Game.Entities
|
||||
|
||||
public void SetSpellModTakingSpell(Spell spell, bool apply)
|
||||
{
|
||||
if (spell == null || (m_spellModTakingSpell != null && m_spellModTakingSpell != spell))
|
||||
if (apply && m_spellModTakingSpell != null)
|
||||
return;
|
||||
|
||||
if (apply && spell.getState() == SpellState.Finished)
|
||||
if (!apply && (m_spellModTakingSpell == null || m_spellModTakingSpell != spell))
|
||||
return;
|
||||
|
||||
m_spellModTakingSpell = apply ? spell : null;
|
||||
|
||||
@@ -446,13 +446,6 @@ namespace Game.Entities
|
||||
// It will be recalculate at mailbox open (for unReadMails important non-0 until mailbox open, it also will be recalculated)
|
||||
m_nextMailDelivereTime = 0;
|
||||
}
|
||||
// If this is set during update SetSpellModTakingSpell call is missing somewhere in the code
|
||||
// Having this would prevent more aura charges to be dropped, so let's crash
|
||||
if (m_spellModTakingSpell != null)
|
||||
{
|
||||
Log.outFatal(LogFilter.Spells, "Player has m_spellModTakingSpell {0} during update!", m_spellModTakingSpell.m_spellInfo.Id);
|
||||
m_spellModTakingSpell = null;
|
||||
}
|
||||
|
||||
// Update cinematic location, if 500ms have passed and we're doing a cinematic now.
|
||||
_cinematicMgr.m_cinematicDiff += diff;
|
||||
|
||||
Reference in New Issue
Block a user