aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/BattlePetHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2018-01-02 14:04:09 +0100
committerShauren <shauren.trinity@gmail.com>2018-01-02 14:04:09 +0100
commitea6de0b565944520570f0723dae35d350b7b96ac (patch)
tree5350be540a71413f09566c9c5bdd4cba24f748bc /src/server/game/Handlers/BattlePetHandler.cpp
parent9f94941a3e146897617d4b097018dc871eaba374 (diff)
Core/BattlePets: Misc fixes
* Fixed caged pet item chat message * BattlePetMgr optimizations: removed copying data all over the place * Fixed gaining two pets when learned from item for the first time * Fixed dismiss button
Diffstat (limited to 'src/server/game/Handlers/BattlePetHandler.cpp')
-rw-r--r--src/server/game/Handlers/BattlePetHandler.cpp15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/server/game/Handlers/BattlePetHandler.cpp b/src/server/game/Handlers/BattlePetHandler.cpp
index f3886aa51c4..295b0c52a4d 100644
--- a/src/server/game/Handlers/BattlePetHandler.cpp
+++ b/src/server/game/Handlers/BattlePetHandler.cpp
@@ -22,15 +22,7 @@
void WorldSession::HandleBattlePetRequestJournal(WorldPackets::BattlePet::BattlePetRequestJournal& /*battlePetRequestJournal*/)
{
- // TODO: Move this to BattlePetMgr::SendJournal() just to have all packets in one file
- WorldPackets::BattlePet::BattlePetJournal battlePetJournal;
- battlePetJournal.Trap = GetBattlePetMgr()->GetTrapLevel();
-
- for (auto itr : GetBattlePetMgr()->GetLearnedPets())
- battlePetJournal.Pets.push_back(itr.PacketInfo);
-
- battlePetJournal.Slots = GetBattlePetMgr()->GetSlots();
- SendPacket(battlePetJournal.Write());
+ GetBattlePetMgr()->SendJournal();
}
void WorldSession::HandleBattlePetSetBattleSlot(WorldPackets::BattlePet::BattlePetSetBattleSlot& battlePetSetBattleSlot)
@@ -76,5 +68,8 @@ void WorldSession::HandleCageBattlePet(WorldPackets::BattlePet::CageBattlePet& c
void WorldSession::HandleBattlePetSummon(WorldPackets::BattlePet::BattlePetSummon& battlePetSummon)
{
- GetBattlePetMgr()->SummonPet(battlePetSummon.PetGuid);
+ if (_player->GetGuidValue(PLAYER_FIELD_SUMMONED_BATTLE_PET_ID) != battlePetSummon.PetGuid)
+ GetBattlePetMgr()->SummonPet(battlePetSummon.PetGuid);
+ else
+ GetBattlePetMgr()->DismissPet();
}