aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/PetHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/PetHandler.cpp')
-rw-r--r--src/server/game/Handlers/PetHandler.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp
index cd680f4a973..48ad47cdb48 100644
--- a/src/server/game/Handlers/PetHandler.cpp
+++ b/src/server/game/Handlers/PetHandler.cpp
@@ -615,6 +615,19 @@ void WorldSession::HandlePetAbandon(WorldPackets::Pet::PetAbandon& packet)
}
}
+void WorldSession::HandlePetAbandonByNumber(WorldPackets::Pet::PetAbandonByNumber const& petAbandonByNumber)
+{
+ if (Pet* pet = _player->GetPet())
+ {
+ if (pet->IsHunterPet() && pet->m_unitData->PetNumber == petAbandonByNumber.PetNumber)
+ _player->RemovePet(pet, PET_SAVE_AS_DELETED);
+ }
+ else
+ {
+ _player->DeletePetFromDB(petAbandonByNumber.PetNumber);
+ }
+}
+
void WorldSession::HandlePetSpellAutocastOpcode(WorldPackets::Pet::PetSpellAutocast& packet)
{
Creature* pet = ObjectAccessor::GetCreatureOrPetOrVehicle(*_player, packet.PetGUID);