diff options
author | Shauren <shauren.trinity@gmail.com> | 2024-05-15 14:58:37 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2024-05-15 14:58:37 +0200 |
commit | 48bc24697f58f95a5ff07e0884ef03d27a303f73 (patch) | |
tree | 40bb3a5ad647856f8db4b8e039d3b42734612976 | |
parent | 41f7db12f6c9fc784d36755a750e23c5c6a69f18 (diff) |
Core/Spells: Implemented SPELL_ATTR13_DO_NOT_ALLOW_DISABLE_MOVEMENT_INTERRUPT
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 2 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp | 6 |
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; |