aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2019-08-04 12:22:57 +0200
committerShauren <shauren.trinity@gmail.com>2021-12-18 15:28:45 +0100
commit51fbda4223442635a35d3225c0797d0151ea7051 (patch)
tree58c157637d44c568f7d720dddbce2c28c7ee9427 /src/server/game/Handlers
parent6d5086da1747816e1a4e8518e16ab1923de22e1a (diff)
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 a5e73e41c0e813e674bb0a644e0052052435494e)
Diffstat (limited to 'src/server/game/Handlers')
-rw-r--r--src/server/game/Handlers/QueryHandler.cpp12
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp3
2 files changed, 7 insertions, 8 deletions
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp
index c146cefcb91..eca0a1e7556 100644
--- a/src/server/game/Handlers/QueryHandler.cpp
+++ b/src/server/game/Handlers/QueryHandler.cpp
@@ -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());
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index 467b6b0d421..19e9d914a83 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -33,6 +33,7 @@
#include "PoolMgr.h"
#include "QuestDef.h"
#include "QuestPackets.h"
+#include "QuestPools.h"
#include "ReputationMgr.h"
#include "ScriptMgr.h"
#include "World.h"
@@ -641,7 +642,7 @@ void WorldSession::HandlePushQuestToParty(WorldPackets::Quest::PushQuestToParty&
}
// in pool and not currently available (wintergrasp weekly, dalaran weekly) - can't share
- if (sPoolMgr->IsPartOfAPool<Quest>(packet.QuestID) && !sPoolMgr->IsSpawnedObject<Quest>(packet.QuestID))
+ if (!sQuestPoolMgr->IsQuestActive(packet.QuestID))
{
sender->SendPushToPartyResponse(sender, QuestPushReason::NotDaily);
return;