diff options
author | Shauren <shauren.trinity@gmail.com> | 2021-12-10 18:47:09 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-12-10 18:47:09 +0100 |
commit | 747da1f804a05462fb0d542a9570f27a549688dc (patch) | |
tree | 4d1011fca42e448ed1f238628d789dce5de2081a | |
parent | c28ac3ce67392768c3ec782152b123e773c5679b (diff) |
Core/Spells: Implemented SPELL_ATTR1_CAST_WHEN_LEARNED
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 2 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp | 4 |
3 files changed, 5 insertions, 3 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index f592a2c98e0..d0a48fdee6e 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -3027,6 +3027,8 @@ bool Player::AddSpell(uint32 spellId, bool active, bool learning, bool dependent CastSpell(this, spellId, true); return false; } + else if (spellInfo->HasAttribute(SPELL_ATTR1_CAST_WHEN_LEARNED)) + CastSpell(this, spellId, true); // update free primary prof.points (if any, can be none in case GM .learn prof. learning) if (uint32 freeProfs = GetFreePrimaryProfessionPoints()) diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index a4a73b8fe61..3a620b62440 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -465,7 +465,7 @@ enum SpellAttr1 : uint32 SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR = 0x10000000, // TITLE Hide in aura bar (client only) SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME = 0x20000000, // TITLE Show spell name during channel (client only) SPELL_ATTR1_ENABLE_AT_DODGE = 0x40000000, // TITLE Enable at dodge - SPELL_ATTR1_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr1 + SPELL_ATTR1_CAST_WHEN_LEARNED = 0x80000000 // TITLE Cast When Learned }; // EnumUtils: DESCRIBE THIS diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp index df44e6cce30..097459d399c 100644 --- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp +++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp @@ -254,7 +254,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr1>::ToString(SpellAttr1 value) case SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR: return { "SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR", "Hide in aura bar (client only)", "" }; case SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME: return { "SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME", "Show spell name during channel (client only)", "" }; case SPELL_ATTR1_ENABLE_AT_DODGE: return { "SPELL_ATTR1_ENABLE_AT_DODGE", "Enable at dodge", "" }; - case SPELL_ATTR1_UNK31: return { "SPELL_ATTR1_UNK31", "Unknown attribute 31@Attr1", "" }; + case SPELL_ATTR1_CAST_WHEN_LEARNED: return { "SPELL_ATTR1_CAST_WHEN_LEARNED", "Cast When Learned", "" }; default: throw std::out_of_range("value"); } } @@ -298,7 +298,7 @@ TC_API_EXPORT SpellAttr1 EnumUtils<SpellAttr1>::FromIndex(size_t index) case 28: return SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR; case 29: return SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME; case 30: return SPELL_ATTR1_ENABLE_AT_DODGE; - case 31: return SPELL_ATTR1_UNK31; + case 31: return SPELL_ATTR1_CAST_WHEN_LEARNED; default: throw std::out_of_range("index"); } } |