diff options
| author | Shauren <shauren.trinity@gmail.com> | 2022-10-17 23:11:46 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-10-17 23:11:46 +0200 |
| commit | 133334a902b705dae6f7e92bb1009b84cf1c51d2 (patch) | |
| tree | 5a48c30a00441d36c285b78da396b5549eabbb87 /src/server/game/Loot/Loot.cpp | |
| parent | af76b41ace2917ece0aa3f97e4f46e095a7c815f (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.cpp | 21 |
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 |
