From d0501ab3a12895ad35f009e1a8758aca090f95b5 Mon Sep 17 00:00:00 2001 From: megamage Date: Sat, 21 Mar 2009 12:16:14 -0600 Subject: *A temp fix for the bug that dismiss pets cause crash. --HG-- branch : trunk --- src/game/PetHandler.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/game/PetHandler.cpp') 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) -- cgit v1.2.3