diff options
| author | Shauren <shauren.trinity@gmail.com> | 2020-04-08 13:36:59 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2020-04-08 13:36:59 +0200 |
| commit | 361946419e1a1d665f0d075231372cf4106058d9 (patch) | |
| tree | 75d3625f1962850a4004908f368da6f81dad7de3 /src/server/game/Handlers/ItemHandler.cpp | |
| parent | 3700e0ef5de95dc79290cd16b5abacdd0d490570 (diff) | |
Core/Items: Fixed learning 2nd and 3rd copies of battle pets from items (not caged pets)
Diffstat (limited to 'src/server/game/Handlers/ItemHandler.cpp')
| -rw-r--r-- | src/server/game/Handlers/ItemHandler.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp index 561a3f355af..514f315aae0 100644 --- a/src/server/game/Handlers/ItemHandler.cpp +++ b/src/server/game/Handlers/ItemHandler.cpp @@ -28,6 +28,7 @@ #include "ObjectMgr.h" #include "Opcodes.h" #include "Player.h" +#include "SpellMgr.h" #include "WorldSession.h" void WorldSession::HandleSplitItemOpcode(WorldPackets::Item::SplitItem& splitItem) @@ -1193,14 +1194,12 @@ void WorldSession::HandleUseCritterItem(WorldPackets::Item::UseCritterItem& useC return; int32 spellToLearn = item->GetTemplate()->Effects[1]->SpellID; - for (BattlePetSpeciesEntry const* entry : sBattlePetSpeciesStore) + + + if (BattlePetSpeciesEntry const* entry = sSpellMgr->GetBattlePetSpecies(uint32(spellToLearn))) { - if (entry->SummonSpellID == spellToLearn) - { - GetBattlePetMgr()->AddPet(entry->ID, entry->CreatureID, BattlePetMgr::RollPetBreed(entry->ID), BattlePetMgr::GetDefaultPetQuality(entry->ID)); - _player->UpdateCriteria(CRITERIA_TYPE_OWN_BATTLE_PET_COUNT); - break; - } + GetBattlePetMgr()->AddPet(entry->ID, entry->CreatureID, BattlePetMgr::RollPetBreed(entry->ID), BattlePetMgr::GetDefaultPetQuality(entry->ID)); + _player->UpdateCriteria(CRITERIA_TYPE_OWN_BATTLE_PET_COUNT); } _player->DestroyItem(item->GetBagSlot(), item->GetSlot(), true); |
