diff options
Diffstat (limited to 'src/game/PetHandler.cpp')
-rw-r--r-- | src/game/PetHandler.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/game/PetHandler.cpp b/src/game/PetHandler.cpp index f6b6184a32a..a93d9961e85 100644 --- a/src/game/PetHandler.cpp +++ b/src/game/PetHandler.cpp @@ -63,9 +63,13 @@ void WorldSession::HandlePetAction( WorldPacket & recv_data ) if(pet->GetTypeId() == TYPEID_PLAYER && !(flag == ACT_COMMAND && spellid == COMMAND_ATTACK)) return; - for(ControlList::iterator itr = GetPlayer()->m_Controlled.begin(); itr != GetPlayer()->m_Controlled.end(); ++itr) - if((*itr)->GetEntry() == pet->GetEntry() && (*itr)->isAlive()) - HandlePetActionHelper(*itr, guid1, spellid, flag, guid2); + for(ControlList::iterator itr = GetPlayer()->m_Controlled.begin(); itr != GetPlayer()->m_Controlled.end();) + { + Unit *unit = *itr; + ++itr; + if(unit->GetEntry() == pet->GetEntry() && unit->isAlive()) + HandlePetActionHelper(unit, guid1, spellid, flag, guid2); + } } void WorldSession::HandlePetActionHelper(Unit *pet, uint64 guid1, uint16 spellid, uint16 flag, uint64 guid2) |