aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Quests
diff options
context:
space:
mode:
authorPolarCookie <sei009@post.uit.no>2019-04-10 12:58:40 +0200
committerShauren <shauren.trinity@gmail.com>2021-11-27 00:21:08 +0100
commit0bde06c4027d2e60edc30b55fa7b42da8d253d29 (patch)
tree97712d17c00b8a0055bcce47b07af16c1390f2fc /src/server/game/Quests
parent7f57f6f6061f44a98a021d3de35d524e0fc8eec8 (diff)
Core support for breadcrumb quests (#23157)
* Breadcrumb quests support in core * To Winterspring! & Starfall * translating ZenoX92's list, part 1 * Carendin Summons is Blood Elf only * Breadcrumb to an exclusive group * translating ZenoX92's list, part 2 * class quests * breadcrumb trails * better prevquest check * less harsh error warnings * minor optimization * Rename 9999_99_99_99_world.sql to 2019_04_10_00_world.sql (cherry picked from commit 5ed77113b637c49e99a610b00f385c51da67c3bf)
Diffstat (limited to 'src/server/game/Quests')
-rw-r--r--src/server/game/Quests/QuestDef.cpp23
-rw-r--r--src/server/game/Quests/QuestDef.h3
2 files changed, 15 insertions, 11 deletions
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp
index 5cdf17c01ca..ad918fe67d6 100644
--- a/src/server/game/Quests/QuestDef.cpp
+++ b/src/server/game/Quests/QuestDef.cpp
@@ -217,17 +217,18 @@ void Quest::LoadQuestTemplateAddon(Field* fields)
_prevQuestID = fields[4].GetInt32();
_nextQuestID = fields[5].GetUInt32();
_exclusiveGroup = fields[6].GetInt32();
- _rewardMailTemplateId = fields[7].GetUInt32();
- _rewardMailDelay = fields[8].GetUInt32();
- _requiredSkillId = fields[9].GetUInt16();
- _requiredSkillPoints = fields[10].GetUInt16();
- _requiredMinRepFaction = fields[11].GetUInt16();
- _requiredMaxRepFaction = fields[12].GetUInt16();
- _requiredMinRepValue = fields[13].GetInt32();
- _requiredMaxRepValue = fields[14].GetInt32();
- _sourceItemIdCount = fields[15].GetUInt8();
- _specialFlags = fields[16].GetUInt8();
- _scriptId = sObjectMgr->GetScriptId(fields[17].GetString());
+ _breadcrumbForQuestId = fields[7].GetInt32();
+ _rewardMailTemplateId = fields[8].GetUInt32();
+ _rewardMailDelay = fields[9].GetUInt32();
+ _requiredSkillId = fields[10].GetUInt16();
+ _requiredSkillPoints = fields[11].GetUInt16();
+ _requiredMinRepFaction = fields[12].GetUInt16();
+ _requiredMaxRepFaction = fields[13].GetUInt16();
+ _requiredMinRepValue = fields[14].GetInt32();
+ _requiredMaxRepValue = fields[15].GetInt32();
+ _sourceItemIdCount = fields[16].GetUInt8();
+ _specialFlags = fields[17].GetUInt8();
+ _scriptId = sObjectMgr->GetScriptId(fields[18].GetString());
if (_specialFlags & QUEST_SPECIAL_FLAGS_AUTO_ACCEPT)
_flags |= QUEST_FLAGS_AUTO_ACCEPT;
diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h
index 3b0c541b3a8..7468cd26926 100644
--- a/src/server/game/Quests/QuestDef.h
+++ b/src/server/game/Quests/QuestDef.h
@@ -529,6 +529,7 @@ class TC_GAME_API Quest
int32 GetPrevQuestId() const { return _prevQuestID; }
uint32 GetNextQuestId() const { return _nextQuestID; }
int32 GetExclusiveGroup() const { return _exclusiveGroup; }
+ int32 GetBreadcrumbForQuestId() const { return _breadcrumbForQuestId; }
uint32 GetNextQuestInChain() const { return _nextQuestInChain; }
int32 GetRewArenaPoints() const {return _rewardArenaPoints; }
uint32 GetXPDifficulty() const { return _rewardXPDifficulty; }
@@ -638,6 +639,7 @@ class TC_GAME_API Quest
void BuildQuestRewards(WorldPackets::Quest::QuestRewards& rewards, Player* player) const;
std::vector<uint32> DependentPreviousQuests;
+ std::vector<uint32> DependentBreadcrumbQuests;
std::array<WorldPacket, TOTAL_LOCALES> QueryData;
private:
@@ -720,6 +722,7 @@ class TC_GAME_API Quest
int32 _prevQuestID = 0;
uint32 _nextQuestID = 0;
int32 _exclusiveGroup = 0;
+ int32 _breadcrumbForQuestId = 0;
uint32 _rewardMailTemplateId = 0;
uint32 _rewardMailDelay = 0;
uint32 _requiredSkillId = 0;