diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2019-08-04 12:22:57 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-08-04 12:22:57 +0200 |
| commit | a5e73e41c0e813e674bb0a644e0052052435494e (patch) | |
| tree | cabbeadc1e07635f1a8fc53599895613cbe61723 /src/server/game/Quests | |
| parent | 15e85f882fdb7b5d1d48302907e76c993ee4e923 (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.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 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; } |
