diff options
author | Shauren <shauren.trinity@gmail.com> | 2018-01-02 14:04:09 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2018-01-02 14:04:09 +0100 |
commit | ea6de0b565944520570f0723dae35d350b7b96ac (patch) | |
tree | 5350be540a71413f09566c9c5bdd4cba24f748bc /src/server/game/Handlers/BattlePetHandler.cpp | |
parent | 9f94941a3e146897617d4b097018dc871eaba374 (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.cpp | 15 |
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(); } |