aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Quests
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2019-08-04 12:22:57 +0200
committerGitHub <noreply@github.com>2019-08-04 12:22:57 +0200
commita5e73e41c0e813e674bb0a644e0052052435494e (patch)
treecabbeadc1e07635f1a8fc53599895613cbe61723 /src/server/game/Quests
parent15e85f882fdb7b5d1d48302907e76c993ee4e923 (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
Diffstat (limited to 'src/server/game/Quests')
-rw-r--r--src/server/game/Quests/QuestDef.cpp9
-rw-r--r--src/server/game/Quests/QuestDef.h3
2 files changed, 12 insertions, 0 deletions
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp
index 1157ba7d24f..096ea72e9e4 100644
--- a/src/server/game/Quests/QuestDef.cpp
+++ b/src/server/game/Quests/QuestDef.cpp
@@ -24,6 +24,7 @@
#include "Opcodes.h"
#include "Player.h"
#include "QuestPackets.h"
+#include "QuestPools.h"
#include "World.h"
Quest::Quest(Field* questRecord)
@@ -227,6 +228,14 @@ uint32 Quest::GetXPReward(Player const* player) const
return 0;
}
+/*static*/ bool Quest::IsTakingQuestEnabled(uint32 questId)
+{
+ if (!sQuestPoolMgr->IsQuestActive(questId))
+ return false;
+
+ return true;
+}
+
int32 Quest::GetRewOrReqMoney(Player const* player) const
{
// RequiredMoney: the amount is the negative copper sum.
diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h
index e855b0c60e2..cb8d730aa1a 100644
--- a/src/server/game/Quests/QuestDef.h
+++ b/src/server/game/Quests/QuestDef.h
@@ -215,6 +215,9 @@ class TC_GAME_API Quest
bool HasSpecialFlag(uint32 flag) const { return (_specialFlags & flag) != 0; }
void SetSpecialFlag(uint32 flag) { _specialFlags |= flag; }
+ // 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 GetQuestMethod() const { return _method; }