aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Loot/LootMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Loot/LootMgr.cpp')
-rw-r--r--src/server/game/Loot/LootMgr.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/server/game/Loot/LootMgr.cpp b/src/server/game/Loot/LootMgr.cpp
index 85f0cd869ee..a0fc3156c07 100644
--- a/src/server/game/Loot/LootMgr.cpp
+++ b/src/server/game/Loot/LootMgr.cpp
@@ -437,8 +437,8 @@ bool Loot::FillLoot(uint32 lootId, LootStore const& store, Player* lootOwner, bo
roundRobinPlayer = lootOwner->GetGUID();
for (GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next())
- if (Player* pl = itr->getSource())
- FillNotNormalLootFor(pl);
+ if (Player* pl = itr->getSource()) // should actually be looted object instead of lootOwner but looter has to be really close so doesnt really matter
+ FillNotNormalLootFor(pl, pl->IsAtGroupRewardDistance(lootOwner));
for (uint8 i = 0; i < items.size(); ++i)
{
@@ -449,12 +449,12 @@ bool Loot::FillLoot(uint32 lootId, LootStore const& store, Player* lootOwner, bo
}
// ... for personal loot
else
- FillNotNormalLootFor(lootOwner);
+ FillNotNormalLootFor(lootOwner, true);
return true;
}
-void Loot::FillNotNormalLootFor(Player* pl)
+void Loot::FillNotNormalLootFor(Player* pl, bool withCurrency)
{
uint32 plguid = pl->GetGUIDLow();
@@ -470,6 +470,10 @@ void Loot::FillNotNormalLootFor(Player* pl)
if (qmapitr == PlayerNonQuestNonFFAConditionalItems.end())
FillNonQuestNonFFAConditionalLoot(pl);
+ // if not auto-processed player will have to come and pick it up manually
+ if (!withCurrency)
+ return;
+
// Process currency items
uint32 max_slot = GetMaxSlotInLootFor(pl);
uint32 itemId = 0;