Core/Pooling: Quest pooling rewrite: (PR#23627)

- Split quest pooling from PoolMgr (into QuestPoolMgr)
- Proper saving/restoring on server restart
- No more hacking into sObjectMgr to insert/remove available quests

(cherry picked from commit a5e73e41c0)
This commit is contained in:
Treeston
2019-08-04 12:22:57 +02:00
committed by Shauren
parent 6d5086da17
commit 51fbda4223
27 changed files with 727 additions and 667 deletions

View File

@@ -258,15 +258,13 @@ void WorldSession::HandleQueryQuestCompletionNPCs(WorldPackets::Query::QueryQues
questCompletionNPC.QuestID = questID;
auto creatures = sObjectMgr->GetCreatureQuestInvolvedRelationReverseBounds(questID);
for (auto it = creatures.first; it != creatures.second; ++it)
questCompletionNPC.NPCs.push_back(it->second);
for (auto const& creatures : sObjectMgr->GetCreatureQuestInvolvedRelationReverseBounds(questID))
questCompletionNPC.NPCs.push_back(creatures.second);
auto gos = sObjectMgr->GetGOQuestInvolvedRelationReverseBounds(questID);
for (auto it = gos.first; it != gos.second; ++it)
questCompletionNPC.NPCs.push_back(it->second | 0x80000000); // GO mask
for (auto const& gos : sObjectMgr->GetGOQuestInvolvedRelationReverseBounds(questID))
questCompletionNPC.NPCs.push_back(gos.second | 0x80000000); // GO mask
response.QuestCompletionNPCs.push_back(questCompletionNPC);
response.QuestCompletionNPCs.push_back(std::move(questCompletionNPC));
}
SendPacket(response.Write());