From f58a5fe67430eac922a309b244eff7a396aa0adc Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 19 Aug 2025 18:05:21 +0200 Subject: Core/BattlePets: Fix using moved-from variable when adding new pet --- src/server/game/BattlePets/BattlePetMgr.cpp | 11 ++++------- 1 file 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(sObjectMgr->GetGenerator().Generate()); + ObjectGuid guid = ObjectGuid::Create(sObjectMgr->GetGenerator().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, 1> updates = { pet }; SendUpdates(updates, true); -- cgit v1.2.3