From b9afcd12466d8c6a8d7b2030a3e5c8ab66760d18 Mon Sep 17 00:00:00 2001 From: Itslovelol Date: Tue, 16 Sep 2014 13:39:35 +0200 Subject: [PATCH] Rename IsInDisallowedMountForm to IsInLimitedActionForm() and use it to prevent weapon enchant procs in shapeshift forms. --- src/game/Player.cpp | 8 ++++++-- src/game/Spell.cpp | 2 +- src/game/Unit.h | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/game/Player.cpp b/src/game/Player.cpp index ae3f5ae..1f4686d 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -7111,6 +7111,10 @@ void Player::CastItemCombatSpell(Unit* Target, WeaponAttackType attType) if (!Target || Target == this) return; + // Patch 3.0.2 (2008-10-14): Enchant will now proc for druids in bear, dire bear, cat and tree forms. + if (IsInLimitedActionForm()) + return; + for (int i = 0; i < MAX_ITEM_PROTO_SPELLS; ++i) { _Spell const& spellData = proto->Spells[i]; @@ -17257,7 +17261,7 @@ bool Player::ActivateTaxiPathTo(std::vector const& nodes, Creature* npc return false; } - if (IsInDisallowedMountForm()) + if (IsInLimitedActionForm()) { GetSession()->SendActivateTaxiReply(ERR_TAXIPLAYERSHAPESHIFTED); return false; @@ -17275,7 +17279,7 @@ bool Player::ActivateTaxiPathTo(std::vector const& nodes, Creature* npc { RemoveSpellsCausingAura(SPELL_AURA_MOUNTED); - if (IsInDisallowedMountForm()) + if (IsInLimitedActionForm()) RemoveSpellsCausingAura(SPELL_AURA_MOD_SHAPESHIFT); if (Spell* spell = GetCurrentSpell(CURRENT_GENERIC_SPELL)) diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index a00971b..42ecd1e 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -5111,7 +5111,7 @@ SpellCastResult Spell::CheckCast(bool strict) if (m_caster->GetAreaId() == 35) return SPELL_FAILED_NO_MOUNTS_ALLOWED; - if (m_caster->IsInDisallowedMountForm()) + if (m_caster->IsInLimitedActionForm()) return SPELL_FAILED_NOT_SHAPESHIFT; break; diff --git a/src/game/Unit.h b/src/game/Unit.h index bb9bb15..0fe483c 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -1693,7 +1693,7 @@ class MANGOS_DLL_SPEC Unit : public WorldObject return form == FORM_CAT || form == FORM_BEAR || form == FORM_DIREBEAR; } - bool IsInDisallowedMountForm() const + bool IsInLimitedActionForm() const { ShapeshiftForm form = GetShapeshiftForm(); return form != FORM_NONE && form != FORM_BATTLESTANCE && form != FORM_BERSERKERSTANCE && form != FORM_DEFENSIVESTANCE && -- 1.8.1.msysgit.1