aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-05-15 14:58:37 +0200
committerShauren <shauren.trinity@gmail.com>2024-05-15 14:58:37 +0200
commit48bc24697f58f95a5ff07e0884ef03d27a303f73 (patch)
tree40bb3a5ad647856f8db4b8e039d3b42734612976
parent41f7db12f6c9fc784d36755a750e23c5c6a69f18 (diff)
Core/Spells: Implemented SPELL_ATTR13_DO_NOT_ALLOW_DISABLE_MOVEMENT_INTERRUPT
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp3
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h2
-rw-r--r--src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp6
3 files changed, 7 insertions, 4 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 55a697f32db..95d78ba4dbb 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -3159,6 +3159,9 @@ bool Unit::IsMovementPreventedByCasting() const
bool Unit::CanCastSpellWhileMoving(SpellInfo const* spellInfo) const
{
+ if (spellInfo->HasAttribute(SPELL_ATTR13_DO_NOT_ALLOW_DISABLE_MOVEMENT_INTERRUPT))
+ return false;
+
if (HasAuraTypeWithAffectMask(SPELL_AURA_CAST_WHILE_WALKING, spellInfo))
return true;
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 65d8c318a6c..3161eb5b737 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -934,7 +934,7 @@ enum SpellAttr13 : uint32
SPELL_ATTR13_UNK24 = 0x01000000, // TITLE Unknown attribute 24@Attr13
SPELL_ATTR13_UNK25 = 0x02000000, // TITLE Unknown attribute 25@Attr13
SPELL_ATTR13_UNK26 = 0x04000000, // TITLE Unknown attribute 26@Attr13
- SPELL_ATTR13_UNK27 = 0x08000000, // TITLE Unknown attribute 27@Attr13
+ SPELL_ATTR13_DO_NOT_ALLOW_DISABLE_MOVEMENT_INTERRUPT = 0x08000000, // TITLE Do Not Allow "Disable Movement Interrupt"
SPELL_ATTR13_UNK28 = 0x10000000, // TITLE Unknown attribute 28@Attr13
SPELL_ATTR13_UNK29 = 0x20000000, // TITLE Unknown attribute 29@Attr13
SPELL_ATTR13_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr13
diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
index b6a27b664f4..b33f90e35b8 100644
--- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
+++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
@@ -1978,7 +1978,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr13>::ToString(SpellAttr13 value)
case SPELL_ATTR13_UNK24: return { "SPELL_ATTR13_UNK24", "Unknown attribute 24@Attr13", "" };
case SPELL_ATTR13_UNK25: return { "SPELL_ATTR13_UNK25", "Unknown attribute 25@Attr13", "" };
case SPELL_ATTR13_UNK26: return { "SPELL_ATTR13_UNK26", "Unknown attribute 26@Attr13", "" };
- case SPELL_ATTR13_UNK27: return { "SPELL_ATTR13_UNK27", "Unknown attribute 27@Attr13", "" };
+ case SPELL_ATTR13_DO_NOT_ALLOW_DISABLE_MOVEMENT_INTERRUPT: return { "SPELL_ATTR13_DO_NOT_ALLOW_DISABLE_MOVEMENT_INTERRUPT", "Do Not Allow \042Disable Movement Interrupt\042", "" };
case SPELL_ATTR13_UNK28: return { "SPELL_ATTR13_UNK28", "Unknown attribute 28@Attr13", "" };
case SPELL_ATTR13_UNK29: return { "SPELL_ATTR13_UNK29", "Unknown attribute 29@Attr13", "" };
case SPELL_ATTR13_UNK30: return { "SPELL_ATTR13_UNK30", "Unknown attribute 30@Attr13", "" };
@@ -2022,7 +2022,7 @@ TC_API_EXPORT SpellAttr13 EnumUtils<SpellAttr13>::FromIndex(size_t index)
case 24: return SPELL_ATTR13_UNK24;
case 25: return SPELL_ATTR13_UNK25;
case 26: return SPELL_ATTR13_UNK26;
- case 27: return SPELL_ATTR13_UNK27;
+ case 27: return SPELL_ATTR13_DO_NOT_ALLOW_DISABLE_MOVEMENT_INTERRUPT;
case 28: return SPELL_ATTR13_UNK28;
case 29: return SPELL_ATTR13_UNK29;
case 30: return SPELL_ATTR13_UNK30;
@@ -2063,7 +2063,7 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr13>::ToIndex(SpellAttr13 value)
case SPELL_ATTR13_UNK24: return 24;
case SPELL_ATTR13_UNK25: return 25;
case SPELL_ATTR13_UNK26: return 26;
- case SPELL_ATTR13_UNK27: return 27;
+ case SPELL_ATTR13_DO_NOT_ALLOW_DISABLE_MOVEMENT_INTERRUPT: return 27;
case SPELL_ATTR13_UNK28: return 28;
case SPELL_ATTR13_UNK29: return 29;
case SPELL_ATTR13_UNK30: return 30;