diff --git a/doc/RequiredPorts.mangosproof b/doc/RequiredPorts.mangosproof index 81b4b407..d4deedf3 100644 --- a/doc/RequiredPorts.mangosproof +++ b/doc/RequiredPorts.mangosproof @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/src/game/Object/Pet.cpp b/src/game/Object/Pet.cpp index e5d0e212..6ea6c0df 100644 --- a/src/game/Object/Pet.cpp +++ b/src/game/Object/Pet.cpp @@ -313,6 +313,7 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petentry, uint32 petnumber, bool c { LearnPetPassives(); CastPetAuras(current); + CastOwnerTalentAuras(); } Powers powerType = GetPowerType(); @@ -538,6 +539,7 @@ void Pet::SetDeathState(DeathState s) // overwrite virtual RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); CastPetAuras(true); } + CastOwnerTalentAuras(); } void Pet::Update(uint32 update_diff, uint32 diff) @@ -1991,6 +1993,16 @@ void Pet::CastPetAuras(bool current) } } +void Pet::CastOwnerTalentAuras() +{ + if (!GetOwner() || GetOwner()->GetTypeId() != TYPEID_PLAYER) + { return; } + + Player* pOwner = static_cast(GetOwner()); + + // Add below code handling spells cast by pet when owner/player has aura from talent +} + void Pet::CastPetAura(PetAura const* aura) { uint32 auraId = aura->GetAura(GetEntry()); diff --git a/src/game/Object/Pet.h b/src/game/Object/Pet.h index a6a8bed8..21bf2657 100644 --- a/src/game/Object/Pet.h +++ b/src/game/Object/Pet.h @@ -242,6 +242,7 @@ class Pet : public Creature void LearnPetPassives(); void CastPetAuras(bool current); + void CastOwnerTalentAuras(); void CastPetAura(PetAura const* aura); void _LoadSpellCooldowns(); diff --git a/src/game/WorldHandlers/SkillHandler.cpp b/src/game/WorldHandlers/SkillHandler.cpp index 76aeaa44..4b59b5f2 100644 --- a/src/game/WorldHandlers/SkillHandler.cpp +++ b/src/game/WorldHandlers/SkillHandler.cpp @@ -37,6 +37,10 @@ void WorldSession::HandleLearnTalentOpcode(WorldPacket& recv_data) recv_data >> talent_id >> requested_rank; _player->LearnTalent(talent_id, requested_rank); + + // if player has a pet, update owner talent auras + if (_player->GetPet()) + { _player->GetPet()->CastOwnerTalentAuras(); } } void WorldSession::HandleTalentWipeConfirmOpcode(WorldPacket& recv_data) @@ -66,6 +70,9 @@ void WorldSession::HandleTalentWipeConfirmOpcode(WorldPacket& recv_data) } unit->CastSpell(_player, 14867, true); // spell: "Untalent Visual Effect" + + if (_player->GetPet()) + { _player->GetPet()->CastOwnerTalentAuras(); } } void WorldSession::HandleUnlearnSkillOpcode(WorldPacket& recv_data)