diff options
| author | ariel- <ariel-@users.noreply.github.com> | 2017-04-28 18:11:23 -0300 |
|---|---|---|
| committer | funjoker <funjoker109@gmail.com> | 2020-04-29 01:36:47 +0200 |
| commit | 4f6d38fe9d5c07e6e8eb88e517af71b6cdc4f9f8 (patch) | |
| tree | 230c83e6292f2d56d21d510cc2c2bca158f53e8a /src/server/game/Entities/Player | |
| parent | 1929ca3aa14f6cd83ea3ac9d7e8c0e2ed0e87a26 (diff) | |
Core/Entities: moved PetAura handling to Player where it belongs
(cherry picked from commit 231ec8331b2ba3cded9f0d67c77c949cd45f5a60)
Diffstat (limited to 'src/server/game/Entities/Player')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 14 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.h | 6 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 87f03539599..3dd310f4b52 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -21834,6 +21834,20 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent) } } +void Player::AddPetAura(PetAura const* petSpell) +{ + m_petAuras.insert(petSpell); + if (Pet* pet = GetPet()) + pet->CastPetAura(petSpell); +} + +void Player::RemovePetAura(PetAura const* petSpell) +{ + m_petAuras.erase(petSpell); + if (Pet* pet = GetPet()) + pet->RemoveAurasDueToSpell(petSpell->GetAura(pet->GetEntry())); +} + void Player::StopCastingCharm() { Unit* charm = GetCharm(); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 297c90fc5d9..dafedb22e77 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -78,6 +78,7 @@ class Item; class LootStore; class OutdoorPvP; class Pet; +class PetAura; class PlayerAI; class PlayerAchievementMgr; class PlayerMenu; @@ -1097,6 +1098,11 @@ class TC_GAME_API Player : public Unit, public GridObject<Player> Pet* SummonPet(uint32 entry, float x, float y, float z, float ang, PetType petType, uint32 despwtime); void RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent = false); + // pet auras + std::unordered_set<PetAura const*> m_petAuras; + void AddPetAura(PetAura const* petSpell); + void RemovePetAura(PetAura const* petSpell); + /// Handles said message in regular chat based on declared language and in config pre-defined Range. void Say(std::string const& text, Language language, WorldObject const* = nullptr) override; void Say(uint32 textId, WorldObject const* target = nullptr) override; |
