diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-02-15 00:27:05 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-02-15 00:27:05 +0100 |
commit | 11aafe53b10dc858d7f66696bb189dcca2de53c9 (patch) | |
tree | 33e875a315e2e0d05a765563e6f44e382301f85d /src/server | |
parent | e0790d81078a491650279188d0c189526fed472c (diff) |
Core/Pets: Relax summoning pet assertion condition
Closes #27778
Diffstat (limited to 'src/server')
-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 |