aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Loot/LootMgr.cpp
diff options
context:
space:
mode:
authorShauren <none@none>2010-09-14 16:56:30 +0200
committerShauren <none@none>2010-09-14 16:56:30 +0200
commit74ca173923c53982b25a1e443fbd060990fda36c (patch)
tree05798403e00bbc88105cdacf72fae0b18ca64aa3 /src/server/game/Loot/LootMgr.cpp
parent61bbd284de251aa3b46872c431174720a118ed9c (diff)
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
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;