aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Pet/Pet.cpp8
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