diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-09-14 22:03:47 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-09-14 22:03:47 +0200 |
commit | 9700b2a78680452d80025121a031da340af51348 (patch) | |
tree | 817ceff3ae7c220addfa0a3ccc6cbb4429d7c658 /src/server/game/Loot/Loot.cpp | |
parent | f19f32f2a49cf0eb235f1aa12106322bf9db2a15 (diff) |
Core/Loot: Store method used at loot generation inside Loot object
Diffstat (limited to 'src/server/game/Loot/Loot.cpp')
-rw-r--r-- | src/server/game/Loot/Loot.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/server/game/Loot/Loot.cpp b/src/server/game/Loot/Loot.cpp index f1355edda87..a03c4a5e860 100644 --- a/src/server/game/Loot/Loot.cpp +++ b/src/server/game/Loot/Loot.cpp @@ -127,9 +127,9 @@ void LootItem::AddAllowedLooter(const Player* player) // --------- Loot --------- // -Loot::Loot(Map* map, ObjectGuid owner, LootType type) : gold(0), unlootedCount(0), roundRobinPlayer(), loot_type(type), maxDuplicates(1), +Loot::Loot(Map* map, ObjectGuid owner, LootType type, LootMethod lootMethod) : gold(0), unlootedCount(0), loot_type(type), maxDuplicates(1), _guid(map ? ObjectGuid::Create<HighGuid::LootObject>(map->GetId(), 0, map->GenerateLowGuid<HighGuid::LootObject>()) : ObjectGuid::Empty), - _owner(owner), _itemContext(ItemContext::NONE) + _owner(owner), _itemContext(ItemContext::NONE), _lootMethod(lootMethod) { } @@ -742,7 +742,7 @@ NotNormalLootItemList* Loot::FillQuestLoot(Player const* player) { LootItem &item = quest_items[i]; - if (!item.is_looted && (item.AllowedForPlayer(player) || (item.follow_loot_rules && player->GetGroup() && ((player->GetGroup()->GetLootMethod() == MASTER_LOOT && player->GetGroup()->GetMasterLooterGuid() == player->GetGUID()) || player->GetGroup()->GetLootMethod() != MASTER_LOOT)))) + if (!item.is_looted && (item.AllowedForPlayer(player) || (item.follow_loot_rules && player->GetGroup() && ((GetLootMethod() == MASTER_LOOT && player->GetGroup()->GetMasterLooterGuid() == player->GetGUID()) || GetLootMethod() != MASTER_LOOT)))) { ql->push_back(NotNormalLootItem(i)); @@ -752,7 +752,7 @@ NotNormalLootItemList* Loot::FillQuestLoot(Player const* player) // increase once if one looter only, looter-times if free for all if (item.freeforall || !item.is_blocked) ++unlootedCount; - if (!player->GetGroup() || (player->GetGroup()->GetLootMethod() != GROUP_LOOT)) + if (!player->GetGroup() || (GetLootMethod() != GROUP_LOOT)) item.is_blocked = true; if (items.size() + ql->size() == MAX_NR_LOOT_ITEMS) |