Core/Quests: ported breadcrumb quest handlings and cleaned up quest template loading handlings

This commit is contained in:
Ovahlord
2020-02-20 05:08:09 +01:00
parent 0fcc0ebca2
commit 59120fbd38
9 changed files with 168 additions and 77 deletions

View File

@@ -2169,16 +2169,15 @@ void WorldSession::HandleCharFactionOrRaceChangeCallback(std::shared_ptr<Charact
// Disable all old-faction specific quests
{
ObjectMgr::QuestMap const& questTemplates = sObjectMgr->GetQuestTemplates();
for (ObjectMgr::QuestMap::const_iterator iter = questTemplates.begin(); iter != questTemplates.end(); ++iter)
ObjectMgr::QuestContainer const& questTemplates = sObjectMgr->GetQuestTemplates();
for (auto const& questTemplatePair : questTemplates)
{
Quest const* quest = iter->second;
uint32 newRaceMask = (newTeam == ALLIANCE) ? RACEMASK_ALLIANCE : RACEMASK_HORDE;
if (!(quest->GetAllowableRaces() & newRaceMask))
if (!(questTemplatePair.second.GetAllowableRaces() & newRaceMask))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_QUESTSTATUS_REWARDED_ACTIVE_BY_QUEST);
stmt->setUInt32(0, lowGuid);
stmt->setUInt32(1, quest->GetQuestId());
stmt->setUInt32(1, questTemplatePair.first);
trans->Append(stmt);
}
}