aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/ItemHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-04-08 13:36:59 +0200
committerShauren <shauren.trinity@gmail.com>2020-04-08 13:36:59 +0200
commit361946419e1a1d665f0d075231372cf4106058d9 (patch)
tree75d3625f1962850a4004908f368da6f81dad7de3 /src/server/game/Handlers/ItemHandler.cpp
parent3700e0ef5de95dc79290cd16b5abacdd0d490570 (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.cpp13
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);