aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-02-15 00:27:05 +0100
committerShauren <shauren.trinity@gmail.com>2022-02-15 00:27:05 +0100
commit11aafe53b10dc858d7f66696bb189dcca2de53c9 (patch)
tree33e875a315e2e0d05a765563e6f44e382301f85d /src/server
parente0790d81078a491650279188d0c189526fed472c (diff)
Core/Pets: Relax summoning pet assertion condition
Closes #27778
Diffstat (limited to 'src/server')
-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