Skip to content

Commit 5bace54

Browse files
committed
Core/Loot: Fix checking reference loot in HasQuestDrop/HasQuestDropForPlayer
1 parent 0d19616 commit 5bace54

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

src/server/game/Loot/LootMgr.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -202,14 +202,14 @@ bool LootStore::HaveQuestLootFor(uint32 loot_id) const
202202
return false;
203203

204204
// scan loot for quest items
205-
return itr->second->HasQuestDrop(m_LootTemplates);
205+
return itr->second->HasQuestDrop();
206206
}
207207

208208
bool LootStore::HaveQuestLootForPlayer(uint32 loot_id, Player const* player) const
209209
{
210210
LootTemplateMap::const_iterator tab = m_LootTemplates.find(loot_id);
211211
if (tab != m_LootTemplates.end())
212-
if (tab->second->HasQuestDropForPlayer(m_LootTemplates, player))
212+
if (tab->second->HasQuestDropForPlayer(player))
213213
return true;
214214

215215
return false;
@@ -604,7 +604,7 @@ void LootTemplate::Process(Loot& loot, bool rate, uint16 lootMode, uint8 groupId
604604
}
605605

606606
// True if template includes at least 1 quest drop entry
607-
bool LootTemplate::HasQuestDrop(LootTemplateMap const& store, uint8 groupId) const
607+
bool LootTemplate::HasQuestDrop(uint8 groupId) const
608608
{
609609
if (groupId) // Group reference
610610
{
@@ -620,12 +620,12 @@ bool LootTemplate::HasQuestDrop(LootTemplateMap const& store, uint8 groupId) con
620620
for (LootStoreItemList::const_iterator i = Entries.begin(); i != Entries.end(); ++i)
621621
{
622622
LootStoreItem* item = *i;
623-
if (item->reference > 0) // References
623+
if (item->reference > 0) // References
624624
{
625-
LootTemplateMap::const_iterator Referenced = store.find(item->reference);
626-
if (Referenced == store.end())
625+
LootTemplate const* Referenced = LootTemplates_Reference.GetLootFor(item->reference);
626+
if (!Referenced)
627627
continue; // Error message [should be] already printed at loading stage
628-
if (Referenced->second->HasQuestDrop(store, item->groupid))
628+
if (Referenced->HasQuestDrop(item->groupid))
629629
return true;
630630
}
631631
else if (item->needs_quest)
@@ -642,7 +642,7 @@ bool LootTemplate::HasQuestDrop(LootTemplateMap const& store, uint8 groupId) con
642642
}
643643

644644
// True if template includes at least 1 quest drop for an active quest of the player
645-
bool LootTemplate::HasQuestDropForPlayer(LootTemplateMap const& store, Player const* player, uint8 groupId) const
645+
bool LootTemplate::HasQuestDropForPlayer(Player const* player, uint8 groupId) const
646646
{
647647
if (groupId) // Group reference
648648
{
@@ -659,12 +659,12 @@ bool LootTemplate::HasQuestDropForPlayer(LootTemplateMap const& store, Player co
659659
for (LootStoreItemList::const_iterator i = Entries.begin(); i != Entries.end(); ++i)
660660
{
661661
LootStoreItem* item = *i;
662-
if (item->reference > 0) // References processing
662+
if (item->reference > 0) // References processing
663663
{
664-
LootTemplateMap::const_iterator Referenced = store.find(item->reference);
665-
if (Referenced == store.end())
664+
LootTemplate const* Referenced = LootTemplates_Reference.GetLootFor(item->reference);
665+
if (!Referenced)
666666
continue; // Error message already printed at loading stage
667-
if (Referenced->second->HasQuestDropForPlayer(store, player, item->groupid))
667+
if (Referenced->HasQuestDropForPlayer(player, item->groupid))
668668
return true;
669669
}
670670
else if (player->HasQuestForItem(item->itemid))

src/server/game/Loot/LootMgr.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,9 @@ class TC_GAME_API LootTemplate
113113
void CopyConditions(LootItem* li) const;
114114

115115
// True if template includes at least 1 quest drop entry
116-
bool HasQuestDrop(LootTemplateMap const& store, uint8 groupId = 0) const;
116+
bool HasQuestDrop(uint8 groupId = 0) const;
117117
// True if template includes at least 1 quest drop for an active quest of the player
118-
bool HasQuestDropForPlayer(LootTemplateMap const& store, Player const* player, uint8 groupId = 0) const;
118+
bool HasQuestDropForPlayer(Player const* player, uint8 groupId = 0) const;
119119

120120
// Checks integrity of the template
121121
void Verify(LootStore const& store, uint32 Id) const;

0 commit comments

Comments
 (0)