aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-01-20 00:32:04 +0100
committerOvahlord <dreadkiller@gmx.de>2025-01-20 20:46:23 +0100
commit562e2a616c8036c0b9d453a88f37c0f0789bcb68 (patch)
tree5728c9f895aef01e6c5ad83c2a70d83229035a88 /src
parent54d64860348be2307266a17d7af44bef5b128bbf (diff)
Core/Spells: Exclude TriggerCastFlags that can be set for non-triggered spells from being checked by Spell::IsTriggered
(cherry picked from commit 56fb627c7dd151190412468370db083ef3b044ad)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Spell.cpp2
-rw-r--r--src/server/game/Spells/Spell.h2
-rw-r--r--src/server/game/Spells/SpellDefines.h4
3 files changed, 6 insertions, 2 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index f8cc12a278e..1383391ff8d 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -8111,7 +8111,7 @@ bool Spell::CheckEffectTarget(Item const* /*target*/, SpellEffectInfo const& /*s
bool Spell::IsTriggered() const
{
- return (!m_fromClient && (_triggeredCastFlags & TRIGGERED_FULL_MASK) != 0)
+ return (!m_fromClient && (_triggeredCastFlags & TRIGGERED_IS_TRIGGERED_MASK) != 0)
|| !m_originalCastId.IsEmpty();
}
diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h
index 0a59b5f8526..4debc6c7656 100644
--- a/src/server/game/Spells/Spell.h
+++ b/src/server/game/Spells/Spell.h
@@ -95,7 +95,7 @@ enum SpellCastFlags : uint32
CAST_FLAG_UNKNOWN_8 = 0x00000080,
CAST_FLAG_UNKNOWN_9 = 0x00000100,
CAST_FLAG_UNKNOWN_10 = 0x00000200,
- CAST_FLAG_UNKNOWN_11 = 0x00000400,
+ CAST_FLAG_UNKNOWN_11 = 0x00000400, // sorts missed targets before hit targets for chain visual
CAST_FLAG_POWER_LEFT_SELF = 0x00000800,
CAST_FLAG_UNKNOWN_13 = 0x00001000,
CAST_FLAG_UNKNOWN_14 = 0x00002000,
diff --git a/src/server/game/Spells/SpellDefines.h b/src/server/game/Spells/SpellDefines.h
index 228bfc23ef8..1aa105b07a6 100644
--- a/src/server/game/Spells/SpellDefines.h
+++ b/src/server/game/Spells/SpellDefines.h
@@ -269,6 +269,10 @@ enum TriggerCastFlags : uint32
TRIGGERED_DONT_RESET_PERIODIC_TIMER = 0x00020000, //!< Will allow periodic aura timers to keep ticking (instead of resetting)
TRIGGERED_DONT_REPORT_CAST_ERROR = 0x00040000, //!< Will return SPELL_FAILED_DONT_REPORT in CheckCast functions
TRIGGERED_FULL_MASK = 0x0007FFFF, //!< Used when doing CastSpell with triggered == true
+ TRIGGERED_IS_TRIGGERED_MASK = TRIGGERED_FULL_MASK
+ & ~(TRIGGERED_IGNORE_POWER_COST | TRIGGERED_IGNORE_CAST_IN_PROGRESS
+ | TRIGGERED_IGNORE_CAST_TIME | TRIGGERED_IGNORE_SHAPESHIFT
+ | TRIGGERED_DONT_REPORT_CAST_ERROR), //!< Will be recognized by Spell::IsTriggered as triggered
// debug flags (used with .cast triggered commands)
TRIGGERED_IGNORE_EQUIPPED_ITEM_REQUIREMENT = 0x00080000, //!< Will ignore equipped item requirements