diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-08-19 18:05:21 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-08-19 18:05:21 +0200 |
commit | f58a5fe67430eac922a309b244eff7a396aa0adc (patch) | |
tree | 8d092c35156d805fa0a60af8e8582ed9777fea4a /src | |
parent | c215363e86a260e9455469ffffab9e84263fb276 (diff) |
Core/BattlePets: Fix using moved-from variable when adding new pet
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/BattlePets/BattlePetMgr.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/server/game/BattlePets/BattlePetMgr.cpp b/src/server/game/BattlePets/BattlePetMgr.cpp index b1a0acad7e0..40abc763abb 100644 --- a/src/server/game/BattlePets/BattlePetMgr.cpp +++ b/src/server/game/BattlePets/BattlePetMgr.cpp @@ -453,17 +453,16 @@ void BattlePetMgr::AddPet(uint32 species, uint32 display, uint16 breed, BattlePe if (!battlePetSpecies->GetFlags().HasFlag(BattlePetSpeciesFlags::WellKnown)) // Not learnable return; - BattlePet pet; - pet.PacketInfo.Guid = ObjectGuid::Create<HighGuid::BattlePet>(sObjectMgr->GetGenerator<HighGuid::BattlePet>().Generate()); + ObjectGuid guid = ObjectGuid::Create<HighGuid::BattlePet>(sObjectMgr->GetGenerator<HighGuid::BattlePet>().Generate()); + + BattlePet& pet = _pets[guid.GetCounter()]; + pet.PacketInfo.Guid = guid; pet.PacketInfo.Species = species; pet.PacketInfo.CreatureID = battlePetSpecies->CreatureID; pet.PacketInfo.DisplayID = display; pet.PacketInfo.Level = level; - pet.PacketInfo.Exp = 0; - pet.PacketInfo.Flags = 0; pet.PacketInfo.Breed = breed; pet.PacketInfo.Quality = AsUnderlyingType(quality); - pet.PacketInfo.Name = ""; pet.CalculateStats(); pet.PacketInfo.Health = pet.PacketInfo.MaxHealth; @@ -477,8 +476,6 @@ void BattlePetMgr::AddPet(uint32 species, uint32 display, uint16 breed, BattlePe pet.SaveInfo = BATTLE_PET_NEW; - _pets[pet.PacketInfo.Guid.GetCounter()] = std::move(pet); - std::array<std::reference_wrapper<BattlePet const>, 1> updates = { pet }; SendUpdates(updates, true); |