aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/LootHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-03-28 14:18:34 +0200
committerShauren <shauren.trinity@gmail.com>2021-03-28 14:18:34 +0200
commit0461826689dad8f318e86395ce1060c8f29f7920 (patch)
treec81676ae211a33334c9fdacf4d2cd049fc2fe6ee /src/server/game/Handlers/LootHandler.cpp
parent1c852af7f2c820e429eaf8389822e8c910f961a1 (diff)
Core/Loot: Properly clear tracked looted objects with item loot
Closes #22538
Diffstat (limited to 'src/server/game/Handlers/LootHandler.cpp')
-rw-r--r--src/server/game/Handlers/LootHandler.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp
index 111cfd892a8..c9404dc1be2 100644
--- a/src/server/game/Handlers/LootHandler.cpp
+++ b/src/server/game/Handlers/LootHandler.cpp
@@ -314,7 +314,9 @@ void WorldSession::DoLootRelease(ObjectGuid lguid)
if (player->GetLootGUID() == lguid)
player->SetLootGUID(ObjectGuid::Empty);
+
player->SendLootRelease(lguid);
+ player->RemoveAELootedWorldObject(lguid);
player->RemoveUnitFlag(UNIT_FLAG_LOOTING);
@@ -384,7 +386,7 @@ void WorldSession::DoLootRelease(ObjectGuid lguid)
ItemTemplate const* proto = pItem->GetTemplate();
// destroy only 5 items from stack in case prospecting and milling
- if (proto->GetFlags() & (ITEM_FLAG_IS_PROSPECTABLE | ITEM_FLAG_IS_MILLABLE))
+ if (pItem->loot.loot_type == LOOT_PROSPECTING || pItem->loot.loot_type == LOOT_MILLING)
{
pItem->m_lootGenerated = false;
pItem->loot.clear();
@@ -441,7 +443,6 @@ void WorldSession::DoLootRelease(ObjectGuid lguid)
//Player is not looking at loot list, he doesn't need to see updates on the loot list
loot->RemoveLooter(player->GetGUID());
- player->RemoveAELootedObject(loot->GetGUID());
}
void WorldSession::DoLootReleaseAll()