aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Player
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2017-04-28 18:11:23 -0300
committerfunjoker <funjoker109@gmail.com>2020-04-29 01:36:47 +0200
commit4f6d38fe9d5c07e6e8eb88e517af71b6cdc4f9f8 (patch)
tree230c83e6292f2d56d21d510cc2c2bca158f53e8a /src/server/game/Entities/Player
parent1929ca3aa14f6cd83ea3ac9d7e8c0e2ed0e87a26 (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.cpp14
-rw-r--r--src/server/game/Entities/Player/Player.h6
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;