diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Loot/LootMgr.cpp | 12 | ||||
-rw-r--r-- | src/server/game/Loot/LootMgr.h | 2 |
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); |