aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Loot/Loot.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-10-17 23:11:46 +0200
committerShauren <shauren.trinity@gmail.com>2022-10-17 23:11:46 +0200
commit133334a902b705dae6f7e92bb1009b84cf1c51d2 (patch)
tree5a48c30a00441d36c285b78da396b5549eabbb87 /src/server/game/Loot/Loot.cpp
parentaf76b41ace2917ece0aa3f97e4f46e095a7c815f (diff)
Core/Loot: Implemented personal loot and tag sharing for non-boss loot
Diffstat (limited to 'src/server/game/Loot/Loot.cpp')
-rw-r--r--src/server/game/Loot/Loot.cpp21
1 files changed, 3 insertions, 18 deletions
diff --git a/src/server/game/Loot/Loot.cpp b/src/server/game/Loot/Loot.cpp
index d67f9ea55d9..6c5dd9286d0 100644
--- a/src/server/game/Loot/Loot.cpp
+++ b/src/server/game/Loot/Loot.cpp
@@ -613,7 +613,7 @@ void LootRoll::Finish(RollVoteMap::const_iterator winnerItr)
// --------- Loot ---------
//
-Loot::Loot(Map* map, ObjectGuid owner, LootType type, Group const* group) : gold(0), unlootedCount(0), loot_type(type), maxDuplicates(1),
+Loot::Loot(Map* map, ObjectGuid owner, LootType type, Group const* group) : gold(0), unlootedCount(0), loot_type(type),
_guid(map ? ObjectGuid::Create<HighGuid::LootObject>(map->GetId(), 0, map->GenerateLowGuid<HighGuid::LootObject>()) : ObjectGuid::Empty),
_owner(owner), _itemContext(ItemContext::NONE), _lootMethod(group ? group->GetLootMethod() : FREE_FOR_ALL),
_lootMaster(group ? group->GetMasterLooterGuid() : ObjectGuid::Empty), _wasOpened(false), _dungeonEncounterId(0)
@@ -622,25 +622,10 @@ Loot::Loot(Map* map, ObjectGuid owner, LootType type, Group const* group) : gold
Loot::~Loot()
{
- clear();
-}
-
-void Loot::clear()
-{
- PlayerFFAItems.clear();
-
- for (ObjectGuid playerGuid : PlayersLooting)
+ GuidSet activeLooters = std::move(PlayersLooting);
+ for (ObjectGuid playerGuid : activeLooters)
if (Player* player = ObjectAccessor::FindConnectedPlayer(playerGuid))
player->GetSession()->DoLootRelease(this);
- PlayersLooting.clear();
-
- items.clear();
- gold = 0;
- unlootedCount = 0;
- roundRobinPlayer.Clear();
- loot_type = LOOT_NONE;
- _itemContext = ItemContext::NONE;
- _rolls.clear();
}
void Loot::NotifyLootList(Map const* map) const