diff options
author | Treeston <treeston.mmoc@gmail.com> | 2019-08-04 12:22:57 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-12-18 15:28:45 +0100 |
commit | 51fbda4223442635a35d3225c0797d0151ea7051 (patch) | |
tree | 58c157637d44c568f7d720dddbce2c28c7ee9427 /src/server/game/Quests | |
parent | 6d5086da1747816e1a4e8518e16ab1923de22e1a (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/Quests')
-rw-r--r-- | src/server/game/Quests/QuestDef.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Quests/QuestDef.h | 3 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp index 8f2a01dae38..e85f559ec2a 100644 --- a/src/server/game/Quests/QuestDef.cpp +++ b/src/server/game/Quests/QuestDef.cpp @@ -24,6 +24,7 @@ #include "ObjectMgr.h" #include "Player.h" #include "QuestPackets.h" +#include "QuestPools.h" #include "SpellMgr.h" #include "World.h" #include "WorldSession.h" @@ -308,6 +309,14 @@ uint32 Quest::XPValue(Player const* player) const return 0; } +/*static*/ bool Quest::IsTakingQuestEnabled(uint32 questId) +{ + if (!sQuestPoolMgr->IsQuestActive(questId)) + return false; + + return true; +} + uint32 Quest::MoneyValue(Player const* player) const { if (QuestMoneyRewardEntry const* money = sQuestMoneyRewardStore.LookupEntry(player->GetQuestLevel(this))) diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h index 8bf1db4407e..87d562cdd67 100644 --- a/src/server/game/Quests/QuestDef.h +++ b/src/server/game/Quests/QuestDef.h @@ -508,6 +508,9 @@ class TC_GAME_API Quest // Possibly deprecated flag bool IsUnavailable() const { return HasFlag(QUEST_FLAGS_UNAVAILABLE); } + // whether the quest is globally enabled (spawned by pool, game event active etc.) + static bool IsTakingQuestEnabled(uint32 questId); + // table data accessors: uint32 GetQuestId() const { return _id; } uint32 GetQuestType() const { return _type; } |