From 279b6de88c8d1c274753e7c1addd008a3915b0d1 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Thu, 5 Aug 2021 20:06:10 +0200 Subject: [PATCH] fix(Core/Spells): Fixed displaying "That Glyph is already inscribed in your spellbook" when activating the same glyph in different spec. (#7162) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed #6342 Co-authored-by: Stefano Borzì --- src/server/game/Entities/Player/Player.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 22a801636..a846037cb 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -14137,11 +14137,22 @@ void Player::ActivateSpec(uint8 spec) } // xinef: apply glyphs from second spec - if(GetActiveSpec() != oldSpec) + if (GetActiveSpec() != oldSpec) + { for (uint8 slot = 0; slot < MAX_GLYPH_SLOT_INDEX; ++slot) - if (uint32 glyphId = m_Glyphs[GetActiveSpec()][slot]) + { + uint32 glyphId = m_Glyphs[GetActiveSpec()][slot]; + if (glyphId) + { if (GlyphPropertiesEntry const* glyphEntry = sGlyphPropertiesStore.LookupEntry(glyphId)) + { CastSpell(this, glyphEntry->SpellId, TriggerCastFlags(TRIGGERED_FULL_MASK & ~(TRIGGERED_IGNORE_SHAPESHIFT | TRIGGERED_IGNORE_CASTER_AURASTATE))); + } + } + + SetGlyph(slot, glyphId, true); + } + } m_usedTalentCount = spentTalents; InitTalentForLevel();