@@ -202,14 +202,14 @@ bool LootStore::HaveQuestLootFor(uint32 loot_id) const
202
202
return false ;
203
203
204
204
// scan loot for quest items
205
- return itr->second ->HasQuestDrop (m_LootTemplates );
205
+ return itr->second ->HasQuestDrop ();
206
206
}
207
207
208
208
bool LootStore::HaveQuestLootForPlayer (uint32 loot_id, Player const * player) const
209
209
{
210
210
LootTemplateMap::const_iterator tab = m_LootTemplates.find (loot_id);
211
211
if (tab != m_LootTemplates.end ())
212
- if (tab->second ->HasQuestDropForPlayer (m_LootTemplates, player))
212
+ if (tab->second ->HasQuestDropForPlayer (player))
213
213
return true ;
214
214
215
215
return false ;
@@ -604,7 +604,7 @@ void LootTemplate::Process(Loot& loot, bool rate, uint16 lootMode, uint8 groupId
604
604
}
605
605
606
606
// 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
608
608
{
609
609
if (groupId) // Group reference
610
610
{
@@ -620,12 +620,12 @@ bool LootTemplate::HasQuestDrop(LootTemplateMap const& store, uint8 groupId) con
620
620
for (LootStoreItemList::const_iterator i = Entries.begin (); i != Entries.end (); ++i)
621
621
{
622
622
LootStoreItem* item = *i;
623
- if (item->reference > 0 ) // References
623
+ if (item->reference > 0 ) // References
624
624
{
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)
627
627
continue ; // Error message [should be] already printed at loading stage
628
- if (Referenced->second -> HasQuestDrop (store, item->groupid ))
628
+ if (Referenced->HasQuestDrop (item->groupid ))
629
629
return true ;
630
630
}
631
631
else if (item->needs_quest )
@@ -642,7 +642,7 @@ bool LootTemplate::HasQuestDrop(LootTemplateMap const& store, uint8 groupId) con
642
642
}
643
643
644
644
// 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
646
646
{
647
647
if (groupId) // Group reference
648
648
{
@@ -659,12 +659,12 @@ bool LootTemplate::HasQuestDropForPlayer(LootTemplateMap const& store, Player co
659
659
for (LootStoreItemList::const_iterator i = Entries.begin (); i != Entries.end (); ++i)
660
660
{
661
661
LootStoreItem* item = *i;
662
- if (item->reference > 0 ) // References processing
662
+ if (item->reference > 0 ) // References processing
663
663
{
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)
666
666
continue ; // Error message already printed at loading stage
667
- if (Referenced->second -> HasQuestDropForPlayer (store, player, item->groupid ))
667
+ if (Referenced->HasQuestDropForPlayer (player, item->groupid ))
668
668
return true ;
669
669
}
670
670
else if (player->HasQuestForItem (item->itemid ))
0 commit comments