aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/ItemHandler.cpp
diff options
context:
space:
mode:
authorxinef1 <w.szyszko2@gmail.com>2016-12-30 20:38:54 +0100
committerariel- <ariel-@users.noreply.github.com>2016-12-30 16:38:54 -0300
commit90a330c910804f9cb770681ff646a2362c8c0efa (patch)
tree4fb342bc89c057c93445bdd8e57efdeafb943873 /src/server/game/Handlers/ItemHandler.cpp
parent3f7d771da50eea2a0633c3e2b5eeb3d354410b72 (diff)
Core/Items: Fixed problem where item dependent auras are not properly updated (#18592)
- Introduced in 7e83d7e22a82104e53f872758fc7fe835472782c Closes #18506
Diffstat (limited to 'src/server/game/Handlers/ItemHandler.cpp')
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index 8f9a3ba6ffc..285edf4f143 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -253,6 +253,11 @@ void WorldSession::HandleAutoEquipItemOpcode(WorldPacket& recvData)
_player->EquipItem(eSrc, pDstItem, true);
_player->AutoUnequipOffhandIfNeed();
+
+ // if inventory item was moved, check if we can remove dependent auras, because they were not removed in Player::RemoveItem (update was set to false)
+ // do this after swaps are done, we pass nullptr because both weapons could be swapped and none of them should be ignored
+ if ((srcbag == INVENTORY_SLOT_BAG_0 && srcslot < INVENTORY_SLOT_BAG_END) || (dstbag == INVENTORY_SLOT_BAG_0 && dstslot < INVENTORY_SLOT_BAG_END))
+ _player->ApplyItemDependentAuras((Item*)nullptr, false);
}
}