aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Loot/LootMgr.cpp12
-rw-r--r--src/server/game/Loot/LootMgr.h2
2 files changed, 9 insertions, 5 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;
diff --git a/src/server/game/Loot/LootMgr.h b/src/server/game/Loot/LootMgr.h
index f057c19ce41..b8b415438e7 100644
--- a/src/server/game/Loot/LootMgr.h
+++ b/src/server/game/Loot/LootMgr.h
@@ -333,7 +333,7 @@ struct Loot
bool hasOverThresholdItem() const;
private:
- void FillNotNormalLootFor(Player* player);
+ void FillNotNormalLootFor(Player* player, bool withCurrency);
QuestItemList* FillFFALoot(Player* player);
QuestItemList* FillQuestLoot(Player* player);
QuestItemList* FillNonQuestNonFFAConditionalLoot(Player* player);