diff options
-rw-r--r-- | src/server/game/Entities/Pet/Pet.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index de93bf415ff..09b05b0134d 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -359,10 +359,14 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c { return pet && pet->PetNumber == petInfo->PetNumber; }); - ASSERT(!petStable->CurrentPetIndex); ASSERT(activePetItr != petStable->ActivePets.end()); - petStable->SetCurrentActivePetIndex(std::distance(petStable->ActivePets.begin(), activePetItr)); + uint32 newPetIndex = std::distance(petStable->ActivePets.begin(), activePetItr); + + // Check that we either have no pet (unsummoned by player) or it matches temporarily unsummoned pet by server (for example on flying mount) + ASSERT(!petStable->CurrentPetIndex || petStable->CurrentPetIndex == newPetIndex); + + petStable->SetCurrentActivePetIndex(newPetIndex); } // Send fake summon spell cast - this is needed for correct cooldown application for spells |