aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Handlers/LootHandler.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp
index 3f32460f93b..0e975838e32 100644
--- a/src/server/game/Handlers/LootHandler.cpp
+++ b/src/server/game/Handlers/LootHandler.cpp
@@ -142,6 +142,7 @@ void WorldSession::HandleAutostoreLootItemOpcode(WorldPackets::Loot::LootItem& p
void WorldSession::HandleLootMoneyOpcode(WorldPackets::Loot::LootMoney& /*packet*/)
{
Player* player = GetPlayer();
+ std::vector<Loot*> forceLootRelease;
for (std::pair<ObjectGuid const, Loot*> const& lootView : player->GetAELootView())
{
Loot* loot = lootView.second;
@@ -205,8 +206,11 @@ void WorldSession::HandleLootMoneyOpcode(WorldPackets::Loot::LootMoney& /*packet
// Delete container if empty
if (loot->isLooted() && guid.IsItem())
- player->GetSession()->DoLootRelease(loot);
+ forceLootRelease.push_back(loot);
}
+
+ for (Loot* loot : forceLootRelease)
+ player->GetSession()->DoLootRelease(loot);
}
void WorldSession::HandleLootOpcode(WorldPackets::Loot::LootUnit& packet)