fix(Core/Spells): Restore sending SMSG_CAST_FAILED for spells in SPEL… (#19102)

* fix(Core/Spells): Restore sending SMSG_CAST_FAILED for spells in SPELL_STATE_PREPARING state (cast bar in progress) unintentionally removed

https: //github.com/TrinityCore/TrinityCore/commit/844efbfca84580f7b2bd700f40209515f2aaa959
Co-Authored-By: Shauren <shauren.trinity@gmail.com>

* ocd

* correct animation and castbar staying

---------

Co-authored-by: Shauren <shauren.trinity@gmail.com>
This commit is contained in:
avarishd
2024-07-17 15:14:06 +03:00
committed by GitHub
parent cf7c015ea4
commit ade4c2527f

View File

@@ -3712,7 +3712,6 @@ void Spell::cancel(bool bySelf)
return;
uint32 oldState = m_spellState;
bool autoRepeat = m_autoRepeat;
m_spellState = SPELL_STATE_FINISHED;
m_autoRepeat = false;
@@ -3720,6 +3719,8 @@ void Spell::cancel(bool bySelf)
{
case SPELL_STATE_PREPARING:
CancelGlobalCooldown();
SendCastResult(SPELL_FAILED_INTERRUPTED);
if (m_caster->GetTypeId() == TYPEID_PLAYER)
{
if (m_caster->ToPlayer()->NeedSendSpectatorData())
@@ -3727,10 +3728,7 @@ void Spell::cancel(bool bySelf)
}
[[fallthrough]];
case SPELL_STATE_DELAYED:
SendInterrupted(0);
// xinef: fixes bugged gcd reset in some cases
if (!autoRepeat)
SendCastResult(SPELL_FAILED_INTERRUPTED);
SendInterrupted(SPELL_FAILED_INTERRUPTED);
break;
case SPELL_STATE_CASTING:
if (!bySelf)