diff options
Diffstat (limited to 'src/server/game/Handlers/PetHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/PetHandler.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index 56d12210529..de4f5f13078 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -596,9 +596,11 @@ void WorldSession::HandlePetRename(WorldPacket& recvData) recvData >> name; recvData >> isdeclined; + PetStable* petStable = _player->GetPetStable(); Pet* pet = ObjectAccessor::GetPet(*_player, petguid); if (!pet || !pet->IsPet() || ((Pet*)pet)->getPetType() != HUNTER_PET || !pet->HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, UNIT_CAN_BE_RENAMED) || - pet->GetOwnerGUID() != _player->GetGUID() || !pet->GetCharmInfo()) + pet->GetOwnerGUID() != _player->GetGUID() || !pet->GetCharmInfo() || + !petStable || !petStable->CurrentPet || petStable->CurrentPet->PetNumber != pet->GetCharmInfo()->GetPetNumber()) return; PetNameInvalidReason res = ObjectMgr::CheckPetName(name, GetSessionDbcLocale()); @@ -621,6 +623,9 @@ void WorldSession::HandlePetRename(WorldPacket& recvData) pet->RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, UNIT_CAN_BE_RENAMED); + petStable->CurrentPet->Name = name; + petStable->CurrentPet->WasRenamed = true; + if (isdeclined) { for (uint8 i = 0; i < MAX_DECLINED_NAME_CASES; ++i) |