From 74ca173923c53982b25a1e443fbd060990fda36c Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 14 Sep 2010 16:56:30 +0200 Subject: Core/Loot: Fixed currency items being automatically distributed to players outside the instance, now if player is outside he will still be able to claim his emblems but will have to loot it manually Closes issue #4005. --HG-- branch : trunk --- src/server/game/Loot/LootMgr.cpp | 12 ++++++++---- src/server/game/Loot/LootMgr.h | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'src') 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); -- cgit v1.2.3