From c8d6fc99c0e1c80fb467e24825df97887d3205eb Mon Sep 17 00:00:00 2001 From: Roc13x Date: Mon, 3 Aug 2020 23:58:54 +0100 Subject: [PATCH] Core/Player: Fix equipment sets not saving correctly New sets were always saved to _equipmentSets[0], overwriting eachother --- src/server/game/Entities/Player/Player.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index af16f0ba9cb..a2f36bbee46 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -26520,14 +26520,14 @@ void Player::SetEquipmentSet(EquipmentSetInfo::EquipmentSetData const& eqSet) } } - EquipmentSetInfo& eqSlot = _equipmentSets[eqSet.Guid]; + uint64 setGuid = (eqSet.Guid != 0) ? eqSet.Guid : sObjectMgr->GenerateEquipmentSetGuid(); - EquipmentSetUpdateState oldState = eqSlot.State; + EquipmentSetInfo& eqSlot = _equipmentSets[setGuid]; eqSlot.Data = eqSet; if (eqSet.Guid == 0) { - eqSlot.Data.Guid = sObjectMgr->GenerateEquipmentSetGuid(); + eqSlot.Data.Guid = setGuid; WorldPacket data(SMSG_EQUIPMENT_SET_SAVED, 4 + 1); data << uint32(eqSlot.Data.SetID); @@ -26535,7 +26535,7 @@ void Player::SetEquipmentSet(EquipmentSetInfo::EquipmentSetData const& eqSet) SendDirectMessage(&data); } - eqSlot.State = (oldState == EQUIPMENT_SET_NEW ? EQUIPMENT_SET_NEW : EQUIPMENT_SET_CHANGED); + eqSlot.State = (eqSlot.State == EQUIPMENT_SET_NEW ? EQUIPMENT_SET_NEW : EQUIPMENT_SET_CHANGED); } void Player::_SaveEquipmentSets(CharacterDatabaseTransaction& trans)