TrinityCore
Loading...
Searching...
No Matches
QuestDef.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef TRINITYCORE_QUEST_H
19#define TRINITYCORE_QUEST_H
20
21#include "Common.h"
22#include "DatabaseEnvFwd.h"
23#include "EnumFlag.h"
24#include "Hash.h"
25#include "LootItemType.h"
26#include "Optional.h"
27#include "RaceMask.h"
28#include "SharedDefines.h"
29#include "UniqueTrackablePtr.h"
30#include <bitset>
31#include <unordered_set>
32#include <vector>
33
34class Player;
35class WorldPacket;
36enum Difficulty : int16;
37
38namespace WorldPackets
39{
40 namespace Quest
41 {
42 struct QuestRewards;
43 }
44}
45
46#define MAX_QUEST_LOG_SIZE 35
47
48#define QUEST_ITEM_DROP_COUNT 4
49#define QUEST_REWARD_CHOICES_COUNT 6
50#define QUEST_REWARD_ITEM_COUNT 4
51#define QUEST_DEPLINK_COUNT 10
52#define QUEST_REWARD_REPUTATIONS_COUNT 5
53#define QUEST_EMOTE_COUNT 4
54#define QUEST_REWARD_CURRENCY_COUNT 4
55#define QUEST_REWARD_DISPLAY_SPELL_COUNT 3
56
57// EnumUtils: DESCRIBE THIS
59{
61 QUEST_ERR_FAILED_LOW_LEVEL = 1, // DESCRIPTION "You are not high enough level for that quest.""
62 QUEST_ERR_FAILED_WRONG_RACE = 6, // DESCRIPTION "That quest is not available to your race."
63 QUEST_ERR_ALREADY_DONE = 7, // DESCRIPTION "You have completed that daily quest today."
64 QUEST_ERR_ONLY_ONE_TIMED = 12, // DESCRIPTION "You can only be on one timed quest at a time"
65 QUEST_ERR_ALREADY_ON1 = 13, // DESCRIPTION "You are already on that quest"
66 QUEST_ERR_FAILED_EXPANSION = 16, // DESCRIPTION "This quest requires an expansion enabled account."
67 QUEST_ERR_ALREADY_ON2 = 18, // DESCRIPTION "You are already on that quest"
68 QUEST_ERR_FAILED_MISSING_ITEMS = 21, // DESCRIPTION "You don't have the required items with you. Check storage."
69 QUEST_ERR_FAILED_NOT_ENOUGH_MONEY = 23, // DESCRIPTION "You don't have enough money for that quest"
70 QUEST_ERR_FAILED_CAIS = 24, // DESCRIPTION "You cannot complete quests once you have reached tired time"
71 QUEST_ERR_ALREADY_DONE_DAILY = 26, // DESCRIPTION "You have completed that daily quest today."
72 QUEST_ERR_FAILED_SPELL = 28, // DESCRIPTION "You haven't learned the required spell."
73 QUEST_ERR_HAS_IN_PROGRESS = 30 // DESCRIPTION "Progress Bar objective not completed"
74};
75
76// EnumUtils: DESCRIBE THIS
78{
79 Success = 0, // "Sharing quest with %s..."
80 Invalid = 1, // "%s is not eligible for that quest"
81 InvalidToRecipient = 2, // "%s's attempt to share quest "%s" failed. You are not eligible for that quest."
82 Accepted = 3, // "%s has accepted your quest"
83 Declined = 4, // "%s has declined your quest"
84 Busy = 5, // "%s is busy"
85 Dead = 6, // "%s is dead."
86 DeadToRecipient = 7, // "%s's attempt to share quest "%s" failed. You are dead."
87 LogFull = 8, // "%s's quest log is full"
88 LogFullToRecipient = 9, // "%s's attempt to share quest "%s" failed. Your quest log is full."
89 OnQuest = 10, // "%s is already on that quest"
90 OnQuestToRecipient = 11, // "%s's attempt to share quest "%s" failed. You are already on that quest."
91 AlreadyDone = 12, // "%s has completed that quest"
92 AlreadyDoneToRecipient = 13, // "%s's attempt to share quest "%s" failed. You have completed that quest."
93 NotDaily = 14, // "That quest cannot be shared today"
94 TimerExpired = 15, // "Quest sharing timer has expired"
95 NotInParty = 16, // "You are not in a party"
96 DifferentServerDaily = 17, // "%s is not eligible for that quest today"
97 DifferentServerDailyToRecipient = 18, // "%s's attempt to share quest "%s" failed. You are not eligible for that quest today."
98 NotAllowed = 19, // "That quest cannot be shared"
99 Prerequisite = 20, // "%s hasn't completed all of the prerequisite quests required for that quest."
100 PrerequisiteToRecipient = 21, // "%s's attempt to share quest "%s" failed. You must complete all of the prerequisite quests first."
101 LowLevel = 22, // "%s is too low level for that quest."
102 LowLevelToRecipient = 23, // "%s's attempt to share quest "%s" failed. You are too low level for that quest."
103 HighLevel = 24, // "%s is too high level for that quest."
104 HighLevelToRecipient = 25, // "%s's attempt to share quest "%s" failed. You are too high level for that quest."
105 Class = 26, // "%s is the wrong class for that quest."
106 ClassToRecipient = 27, // "%s's attempt to share quest "%s" failed. You are the wrong class for that quest."
107 Race = 28, // "%s is the wrong race for that quest."
108 RaceToRecipient = 29, // "%s's attempt to share quest "%s" failed. You are the wrong race for that quest."
109 LowFaction = 30, // "%s's reputation is too low for that quest."
110 LowFactionToRecipient = 31, // "%s's attempt to share quest "%s" failed. Your reputation is too low for that quest."
111 HighFaction = 32, // "%s's reputation is too high for that quest."
112 HighFactionToRecipient = 33, // "%s's attempt to share quest "%s" failed. Your reputation is too high for that quest."
113 Expansion = 34, // "%s doesn't own the required expansion for that quest."
114 ExpansionToRecipient = 35, // "%s's attempt to share quest "%s" failed. You do not own the required expansion for that quest."
115 NotGarrisonOwner = 36, // "%s must own a garrison to accept that quest."
116 NotGarrisonOwnerToRecipient = 37, // "%s's attempt to share quest "%s" failed. You must own a garrison to accept that quest."
117 WrongCovenant = 38, // "%s is in the wrong covenant for that quest."
118 WrongCovenantToRecipient = 39, // "%s's attempt to share quest "%s" failed. You are in the wrong covenant for that quest."
119 NewPlayerExperience = 40, // "%s must complete Exile's Reach to accept that quest."
120 NewPlayerExperienceToRecipient = 41, // "%s's attempt to share quest "%s" failed. You must complete Exile's Reach to accept that quest."
121 WrongFaction = 42, // "%s is the wrong faction for that quest."
122 WrongFactionToRecipient = 43, // "%s's attempt to share quest "%s" failed. You are the wrong faction for that quest."
123 CrossFactionRestricted = 44, // "Quests can't be shared in cross-faction groups."
124};
125
144
146{
149 //QUEST_STATUS_UNAVAILABLE = 2,
151 //QUEST_STATUS_AVAILABLE = 4,
153 QUEST_STATUS_REWARDED = 6, // Not used in DB
156
158{
159 None = 0x000000000000,
160 Future = 0x000000000002,
161 FutureJourneyQuest = 0x000000000004,
162 FutureLegendaryQuest = 0x000000000008,
163 FutureImportantQuest = 0x000000000010,
164 TrivialRepeatableTurnin = 0x000000000020,
165 Trivial = 0x000000000040,
166 TrivialDailyQuest = 0x000000000080,
167 TrivialRepeatableQuest = 0x000000000100,
168 TrivialMetaQuest = 0x000000000200,
169 TrivialJourneyQuest = 0x000000000400,
170 TrivialLegendaryQuest = 0x000000000800,
171 TrivialImportantQuest = 0x000000001000,
172 Reward = 0x000000002000,
173 RepeatableReward = 0x000000004000,
174 MetaReward = 0x000000008000,
175 JourneyReward = 0x000000010000,
176 CovenantCallingReward = 0x000000020000,
177 LegendaryReward = 0x000000040000,
178 ImportantReward = 0x000000080000,
179 RepeatableTurnin = 0x000000100000,
180 QuestAccountCompleted = 0x000000200000,
181 Quest = 0x000000400000,
182 DailyQuest = 0x000000800000,
183 RepeatableQuest = 0x000001000000,
184 MetaQuest = 0x000002000000,
185 CovenantCallingQuest = 0x000004000000,
186 JourneyQuestAccountCompleted = 0x000008000000,
187 JourneyQuest = 0x000010000000,
188 LegendaryQuestAccountCompleted = 0x000020000000,
189 LegendaryQuest = 0x000040000000,
190 ImportantQuestAccountCompleted = 0x000080000000,
191 ImportantQuest = 0x000100000000,
192 RewardCompleteNoPOI = 0x000200000000,
193 RewardCompletePOI = 0x000400000000,
194 RepeatableRewardCompleteNoPOI = 0x000800000000,
195 RepeatableRewardCompletePOI = 0x001000000000,
196 MetaQuestRewardCompleteNoPOI = 0x002000000000,
197 MetaQuestRewardCompletePOI = 0x004000000000,
198 CovenantCallingRewardCompleteNoPOI = 0x008000000000,
199 CovenantCallingRewardCompletePOI = 0x010000000000,
200 JourneyRewardCompleteNoPOI = 0x020000000000,
201 JourneyRewardCompletePOI = 0x040000000000,
202 LegendaryRewardCompleteNoPOI = 0x080000000000,
203 LegendaryRewardCompletePOI = 0x100000000000,
204 ImportantQuestRewardCompleteNoPOI = 0x200000000000,
205 ImportantQuestRewardCompletePOI = 0x400000000000,
206};
207
209
214
216{
217 QUEST_FLAGS_NONE = 0x00000000,
221 QUEST_FLAGS_SHARABLE = 0x00000008, // Can be shared: Player::CanShareQuest()
222 QUEST_FLAGS_HAS_CONDITION = 0x00000010, // Not used currently
223 QUEST_FLAGS_HIDE_REWARD_POI = 0x00000020, // Hides questgiver turn-in minimap icon
224 QUEST_FLAGS_RAID_GROUP_OK = 0x00000040, // Can be completed while in raid
225 QUEST_FLAGS_WAR_MODE_REWARDS_OPT_IN = 0x00000080, // Not used currently
226 QUEST_FLAGS_NO_MONEY_FOR_XP = 0x00000100, // Experience is not converted to gold at max level
227 QUEST_FLAGS_HIDE_REWARD = 0x00000200, // Items and money rewarded only sent in SMSG_QUESTGIVER_OFFER_REWARD (not in SMSG_QUEST_GIVER_QUEST_DETAILS or in client quest log(SMSG_QUEST_QUERY_RESPONSE))
228 QUEST_FLAGS_TRACKING_EVENT = 0x00000400, // These quests are automatically rewarded on quest complete and they will never appear in quest log client side.
229 QUEST_FLAGS_DEPRECATE_REPUTATION = 0x00000800, // Not used currently
230 QUEST_FLAGS_DAILY = 0x00001000, // Used to know quest is Daily one
231 QUEST_FLAGS_FLAGS_PVP = 0x00002000, // Having this quest in log forces PvP flag
232 QUEST_FLAGS_DEPRECATED = 0x00004000, // Used on quests that are not generally available
233 QUEST_FLAGS_WEEKLY = 0x00008000,
234 QUEST_FLAGS_AUTO_COMPLETE = 0x00010000, // Quests with this flag player submit automatically by special button in player gui
235 QUEST_FLAGS_DISPLAY_ITEM_IN_TRACKER = 0x00020000, // Displays usable item in quest tracker
236 QUEST_FLAGS_DISABLE_COMPLETION_TEXT = 0x00040000, // use Objective text as Complete text
237 QUEST_FLAGS_AUTO_ACCEPT = 0x00080000, // The client recognizes this flag as auto-accept.
238 QUEST_FLAGS_PLAYER_CAST_ACCEPT = 0x00100000, // Accept Spell Player Cast
239 QUEST_FLAGS_PLAYER_CAST_COMPLETE = 0x00200000, // Complete Spell Player Cast
240 QUEST_FLAGS_UPDATE_PHASESHIFT = 0x00400000, // Update Phase Shift
241 QUEST_FLAGS_SOR_WHITELIST = 0x00800000, // Scroll of Resurrection Whitelist
242 QUEST_FLAGS_LAUNCH_GOSSIP_COMPLETE = 0x01000000, // Gossip on Quest Completion - Force Gossip
243 QUEST_FLAGS_REMOVE_SURPLUS_ITEMS = 0x02000000, // Remove all items from inventory that have the same id as the objective, not just the amount required by quest
244 QUEST_FLAGS_WELL_KNOWN = 0x04000000, // Well-Known
245 QUEST_FLAGS_PORTRAIT_IN_QUEST_LOG = 0x08000000, // Portrait from Log
246 QUEST_FLAGS_SHOW_ITEM_WHEN_COMPLETED = 0x10000000, // Show Item When Completed
247 QUEST_FLAGS_LAUNCH_GOSSIP_ACCEPT = 0x20000000, // Gossip on Quest Accept - Force Gossip
248 QUEST_FLAGS_ITEMS_GLOW_WHEN_COMPLETE = 0x40000000, // Items Glow When Done
249 QUEST_FLAGS_FAIL_ON_LOGOUT = 0x80000000 // Fail on Logout
251
252// last checked in 19802
254{
256 QUEST_FLAGS_EX_NO_ITEM_REMOVAL = 0x00000001, // Keep Additional Items
257 QUEST_FLAGS_EX_SUPPRESS_GOSSIP_COMPLETE = 0x00000002, // Gossip on Quest Completion - Suppress Gossip
258 QUEST_FLAGS_EX_SUPPRESS_GOSSIP_ACCEPT = 0x00000004, // Gossip on Quest Accept - Suppress Gossip
259 QUEST_FLAGS_EX_DENY_PLAYER_QUESTGIVER = 0x00000008, // Disallow Player as Questgiver (advanced)
260 QUEST_FLAGS_EX_DISPLAY_CLASS_CHOICE_REWARDS = 0x00000010, // Choice Reward Filter - Matches Class
261 QUEST_FLAGS_EX_DISPLAY_SPEC_CHOICE_REWARDS = 0x00000020, // Choice Reward Filter - Matches Spec
262 QUEST_FLAGS_EX_REMOVE_ON_PERIODIC_RESET = 0x00000040, // Remove from Log on Periodic Reset
263 QUEST_FLAGS_EX_ACCOUNT = 0x00000080, // Account-Level Quest
264 QUEST_FLAGS_EX_LEGENDARY = 0x00000100, // Legendary Quest
265 QUEST_FLAGS_EX_NO_GUILD_XP = 0x00000200, // No Guild XP
266 QUEST_FLAGS_EX_RESET_CACHE_ON_ACCEPT = 0x00000400, // Reset Cache on Accept (internal)
267 QUEST_FLAGS_EX_NO_ABANDON_ONCE_BEGUN = 0x00000800, // No Abandon Once Any Objective Complete
268 QUEST_FLAGS_EX_RECAST_ACCEPT_SPELL_ON_LOGIN = 0x00001000, // Recast accept spell on login
269 QUEST_FLAGS_EX_UPDATE_ZONE_AURAS = 0x00002000, // Update Zone Auras
270 QUEST_FLAGS_EX_NO_CREDIT_FOR_PROXY = 0x00004000, // No Credit for Proxy Creatures
271 QUEST_FLAGS_EX_DISPLAY_AS_DAILY = 0x00008000, // Display As Daily Quest
273 QUEST_FLAGS_EX_INTERNAL_BUILDS_ONLY = 0x00020000, // Quest for Internal Builds ONLY
274 QUEST_FLAGS_EX_SUPPRESS_SPELL_LEARN_TEXT = 0x00040000, // Suppress spell learn text line (for followers)
275 QUEST_FLAGS_EX_DISPLAY_AS_OBJECTIVE = 0x00080000, // Display Header as Objective for Tasks
276 QUEST_FLAGS_EX_ALLOW_ALL_IN_GARRISON = 0x00100000, // Garrison non-owners allowed
277 QUEST_FLAGS_EX_REMOVE_ON_WEEKLY_RESET = 0x00200000, // Remove quest on weekly reset
278 QUEST_FLAGS_EX_SUPPRESS_GREETINGS_ON_ACCEPT = 0x00400000, // Suppress farewell audio after quest accept
279 QUEST_FLAGS_EX_REWARDS_IGNORE_CAPS = 0x00800000, // Rewards bypass weekly caps and Season Total
280 QUEST_FLAGS_EX_IS_WORLD_QUEST = 0x01000000, // Is a World Quest
281 QUEST_FLAGS_EX_NOT_IGNORABLE = 0x02000000, // Not Ignorable
282 QUEST_FLAGS_EX_AUTO_PUSH = 0x04000000, // Auto Push
283 QUEST_FLAGS_EX_NO_SPELL_COMPLETE_EFFECTS = 0x08000000, // No Complete Quest Spell Effect
284 QUEST_FLAGS_EX_DO_NOT_TOAST_HONOR_REWARD = 0x10000000, // Do Not Toast Honor Reward
285 QUEST_FLAGS_EX_KEEP_REPEATABLE_QUEST_ON_FACTION_CHANGE = 0x20000000, // Keep repeatable quest on faction change
286 QUEST_FLAGS_EX_KEEP_PROGRESS_ON_FACTION_CHANGE = 0x40000000, // Keep quest progress on faction change
289
319
321{
323 // Trinity flags for set SpecialFlags in DB if required but used only at server
324 QUEST_SPECIAL_FLAGS_REPEATABLE = 0x001, // Set by 1 in SpecialFlags from DB
325 QUEST_SPECIAL_FLAGS_AUTO_PUSH_TO_PARTY = 0x002, // Set by 2 in SpecialFlags from DB will make quest be pushed to entire party when one member accepts it
326 QUEST_SPECIAL_FLAGS_AUTO_ACCEPT = 0x004, // Set by 4 in SpecialFlags in DB if the quest is to be auto-accepted.
327 QUEST_SPECIAL_FLAGS_DF_QUEST = 0x008, // Set by 8 in SpecialFlags in DB if the quest is used by Dungeon Finder.
328 QUEST_SPECIAL_FLAGS_MONTHLY = 0x010, // Set by 16 in SpecialFlags in DB if the quest is reset at the begining of the month
329 // room for more custom flags
330
332
333 QUEST_SPECIAL_FLAGS_SEQUENCED_OBJECTIVES = 0x020, // Internal flag computed only
334};
335
336enum class QuestTagType
337{
338 Tag,
340 Normal,
341 Pvp,
342 PetBattle,
343 Bounty,
344 Dungeon,
345 Invasion,
346 Raid,
351 Islands,
352 Threat,
354};
355
384
386{
387 QUEST_OBJECTIVE_FLAG_TRACKED_ON_MINIMAP = 0x0001, // client displays large yellow blob on minimap for creature/gameobject
388 QUEST_OBJECTIVE_FLAG_SEQUENCED = 0x0002, // client will not see the objective displayed until all previous objectives are completed
389 QUEST_OBJECTIVE_FLAG_OPTIONAL = 0x0004, // not required to complete the quest
390 QUEST_OBJECTIVE_FLAG_HIDDEN = 0x0008, // never displayed in quest log
391 QUEST_OBJECTIVE_FLAG_HIDE_CREDIT_MSG = 0x0010, // skip showing item objective progress
393 QUEST_OBJECTIVE_FLAG_PART_OF_PROGRESS_BAR = 0x0040, // hidden objective used to calculate progress bar percent (quests are limited to a single progress bar objective)
397};
398
400{
401 QUEST_OBJECTIVE_FLAG_2_QUEST_BOUND_ITEM = 0x1 // Item is bound to a single objective, only increments the counter for one quest if multiple require the same item and is not stored in inventory
403
405{
406 LegacyBehavior = 0,
407 Follower = 1,
408 Tradeskill = 2,
409 Ability = 3,
410 Aura = 4,
411 Spell = 5,
412 Unlock = 6,
413 Companion = 7,
414 QuestlineUnlock = 8,
415 QuestlineReward = 9,
417 Max
418};
419
421{
422 None = 0x0,
425};
426
428{
431 std::string Text;
432
434 QuestGreeting(uint16 emoteType, uint32 emoteDelay, std::string text)
435 : EmoteType(emoteType), EmoteDelay(emoteDelay), Text(std::move(text)) { }
436};
437
439{
440 std::vector<std::string> Greeting;
441};
442
444{
445 std::vector<std::string> LogTitle;
446 std::vector<std::string> LogDescription;
447 std::vector<std::string> QuestDescription;
448 std::vector<std::string> AreaDescription;
449 std::vector<std::string> PortraitGiverText;
450 std::vector<std::string> PortraitGiverName;
451 std::vector<std::string> PortraitTurnInText;
452 std::vector<std::string> PortraitTurnInName;
453 std::vector<std::string> QuestCompletionLog;
454};
455
457{
458 std::vector<std::string> CompletionText;
459};
460
462{
463 std::vector<std::string> Description;
464};
465
467{
468 std::vector<std::string> RewardText;
469};
470
479
481{
491 float ProgressBarWeight = 0.0f;
493 bool Visible = false;
494 std::string Description;
495 std::vector<int32> VisualEffects;
497
498 bool IsStoringValue() const
499 {
500 switch (Type)
501 {
512 return true;
513 default:
514 break;
515 }
516 return false;
517 }
518
519 bool IsStoringFlag() const
520 {
521 switch (Type)
522 {
529 return true;
530 default:
531 break;
532 }
533 return false;
534 }
535
537 {
538 switch (type)
539 {
548 return true;
549 default:
550 break;
551 }
552 return false;
553 }
554};
555
556using QuestObjectives = std::vector<QuestObjective>;
557
567
569{
572 std::vector<std::string> Text;
573};
574
575// This Quest class provides a convenient way to access a few pretotaled (cached) quest details,
576// all base quest information, and any utility functions such as generating the amount of
577// xp to give
579{
580 friend class ObjectMgr;
581 friend class Player;
582 friend class PlayerMenu;
583 struct QuestTemplateQueryResult;
584 public:
585 // Loading data. All queries are in ObjectMgr::LoadQuests()
586 explicit Quest(QueryResult const& questRecord);
587 explicit Quest(QuestTemplateQueryResult const& questRecord);
588 Quest(Quest const&) = delete;
589 Quest(Quest&&) = delete;
590 Quest& operator=(Quest const&) = delete;
591 Quest& operator=(Quest&&) = delete;
592 ~Quest();
593 void LoadRewardDisplaySpell(Field* fields);
594 void LoadRewardChoiceItems(Field* fields);
595 void LoadQuestDetails(Field* fields);
596 void LoadQuestRequestItems(Field* fields);
597 void LoadQuestOfferReward(Field* fields);
598 void LoadQuestTemplateAddon(Field* fields);
599 void LoadQuestMailSender(Field* fields);
600 void LoadQuestObjective(Field* fields);
601 void LoadQuestObjectiveVisualEffect(Field* fields);
602 void LoadConditionalConditionalQuestDescription(Field* fields);
603 void LoadConditionalConditionalRequestItemsText(Field* fields);
604 void LoadConditionalConditionalOfferRewardText(Field* fields);
605 void LoadConditionalConditionalQuestCompletionLog(Field* fields);
606 void LoadTreasurePickers(Field* fields);
607 void LoadRewardHouseRoom(Field* fields);
608 void LoadRewardHouseDecor(Field* fields);
609
610 uint32 XPValue(Player const* player) const;
611 static uint32 XPValue(Player const* player, uint32 contentTuningId, uint32 xpDifficulty, float xpMultiplier = 1.0f, int32 expansion = -1);
612 uint32 MoneyValue(Player const* player) const;
613 uint32 MaxMoneyValue() const;
614 uint32 GetMaxMoneyReward() const;
615 Optional<QuestTagType> GetQuestTag() const;
616 bool IsImportant() const;
617 bool IsMeta() const;
618
619 bool HasFlag(QuestFlags flag) const { return (_flags & uint32(flag)) != 0; }
620 bool HasFlagEx(QuestFlagsEx flag) const { return (_flagsEx & uint32(flag)) != 0; }
621 bool HasFlagEx2(QuestFlagsEx2 flag) const { return (_flagsEx2 & uint32(flag)) != 0; }
622
623 bool HasSpecialFlag(QuestSpecialFlags flag) const { return (_specialFlags & flag) != 0; }
624 void SetSpecialFlag(QuestSpecialFlags flag) { _specialFlags |= flag; }
625 bool HasQuestObjectiveType(QuestObjectiveType type) const { return _usedQuestObjectiveTypes[type]; }
626
627 bool IsAutoPush() const { return HasFlagEx(QUEST_FLAGS_EX_AUTO_PUSH); }
628 bool IsWorldQuest() const { return HasFlagEx(QUEST_FLAGS_EX_IS_WORLD_QUEST); }
629
630 // Possibly deprecated flag
631 bool IsUnavailable() const { return HasFlag(QUEST_FLAGS_DEPRECATED); }
632
633 // whether the quest is globally enabled (spawned by pool, game event active etc.)
634 static bool IsTakingQuestEnabled(uint32 questId);
635
636 // table data accessors:
637 uint32 GetQuestId() const { return _id; }
638 uint32 GetQuestType() const { return _type; }
639 uint32 GetQuestPackageID() const { return _packageID; }
640 uint32 GetContentTuningId() const { return _contentTuningID; }
641 int32 GetZoneOrSort() const { return _questSortID; }
642 uint32 GetMaxLevel() const { return _maxLevel; }
643 uint32 GetQuestInfoID() const { return _questInfoID; }
644 uint32 GetAllowableClasses() const { return _allowableClasses; }
646 uint32 GetRequiredSkill() const { return _requiredSkillId; }
647 uint32 GetRequiredSkillValue() const { return _requiredSkillPoints; }
648 uint32 GetRequiredMinRepFaction() const { return _requiredMinRepFaction; }
649 int32 GetRequiredMinRepValue() const { return _requiredMinRepValue; }
650 uint32 GetRequiredMaxRepFaction() const { return _requiredMaxRepFaction; }
651 int32 GetRequiredMaxRepValue() const { return _requiredMaxRepValue; }
652 uint32 GetSuggestedPlayers() const { return _suggestedPlayers; }
653 int64 GetLimitTime() const { return _limitTime; }
654 int32 GetPrevQuestId() const { return _prevQuestID; }
655 uint32 GetNextQuestId() const { return _nextQuestID; }
656 int32 GetExclusiveGroup() const { return _exclusiveGroup; }
657 int32 GetBreadcrumbForQuestId() const { return _breadcrumbForQuestId; }
658 uint32 GetNextQuestInChain() const { return _nextQuestInChain; }
659 int32 GetRewArenaPoints() const {return _rewardArenaPoints; }
660 uint32 GetXPDifficulty() const { return _rewardXPDifficulty; }
661 float GetXPMultiplier() const { return _rewardXPMultiplier; }
662 float GetMoneyMultiplier() const { return _rewardMoneyMultiplier; }
663 uint32 GetSrcItemId() const { return _sourceItemId; }
664 uint32 GetSrcItemCount() const { return _sourceItemIdCount; }
665 uint32 GetSrcSpell() const { return _sourceSpellID; }
666 std::string const& GetLogTitle() const { return _logTitle; }
667 std::string const& GetLogDescription() const { return _logDescription; }
668 std::string const& GetQuestDescription() const { return _questDescription; }
669 std::vector<QuestConditionalText> const& GetConditionalQuestDescription() const { return _conditionalQuestDescription; }
670 std::string const& GetAreaDescription() const { return _areaDescription; }
671 std::string const& GetOfferRewardText() const { return _offerRewardText; }
672 std::vector<QuestConditionalText> const& GetConditionalOfferRewardText() const { return _conditionalOfferRewardText; }
673 std::string const& GetRequestItemsText() const { return _requestItemsText; }
674 std::vector<QuestConditionalText> const& GetConditionalRequestItemsText() const { return _conditionalRequestItemsText; }
675 std::string const& GetQuestCompletionLog() const { return _questCompletionLog; }
676 std::vector<QuestConditionalText> const& GetConditionalQuestCompletionLog() const { return _conditionalQuestCompletionLog; }
677 std::string const& GetPortraitGiverText() const { return _portraitGiverText; }
678 std::string const& GetPortraitGiverName() const { return _portraitGiverName; }
679 std::string const& GetPortraitTurnInText() const { return _portraitTurnInText; }
680 std::string const& GetPortraitTurnInName() const { return _portraitTurnInName; }
681 QuestObjectives const& GetObjectives() const { return Objectives; }
682 uint32 GetRewMoneyDifficulty() const { return _rewardMoneyDifficulty; }
683 uint32 GetRewHonor() const { return _rewardHonor; }
684 uint32 GetRewKillHonor() const { return _rewardKillHonor; }
685 int32 GetRewardFavor() const { return _rewardFavor; }
686 uint32 GetArtifactXPDifficulty() const { return _rewardArtifactXPDifficulty; }
687 float GetArtifactXPMultiplier() const { return _rewardArtifactXPMultiplier; }
688 uint32 GetArtifactCategoryId() const { return _rewardArtifactCategoryID; }
689 uint32 GetRewMoneyMaxLevel() const; // use in XP calculation at client
690 uint32 GetRewSpell() const { return _rewardSpell; }
691 uint32 GetRewMailTemplateId() const { return _rewardMailTemplateId; }
692 uint32 GetRewMailDelaySecs() const { return _rewardMailDelay; }
693 uint32 GetRewMailSenderEntry() const { return _rewardMailSenderEntry; }
694 uint32 GetRewTitle() const { return _rewardTitleId; }
695 uint32 GetPOIContinent() const { return _poiContinent; }
696 float GetPOIx() const { return _poix; }
697 float GetPOIy() const { return _poiy; }
698 uint32 GetPOIPriority() const { return _poiPriority; }
699 uint32 GetSoundAccept() const { return _soundAccept; }
700 uint32 GetSoundTurnIn() const { return _soundTurnIn; }
701 uint32 GetIncompleteEmote() const { return _emoteOnIncomplete; }
702 uint32 GetCompleteEmote() const { return _emoteOnComplete; }
703 uint32 GetIncompleteEmoteDelay() const { return _emoteOnIncompleteDelay; }
704 uint32 GetCompleteEmoteDelay() const { return _emoteOnCompleteDelay; }
705 bool IsRepeatable() const { return _specialFlags & QUEST_SPECIAL_FLAGS_REPEATABLE; }
706 bool IsAutoAccept() const;
707 bool IsTurnIn() const;
708 uint32 GetFlags() const { return _flags; }
709 uint32 GetFlagsEx() const { return _flagsEx; }
710 uint32 GetFlagsEx2() const { return _flagsEx2; }
711 uint32 GetFlagsEx3() const { return _flagsEx3; }
712 uint32 GetSpecialFlags() const { return _specialFlags; }
713 uint32 GetScriptId() const { return _scriptId; }
714 uint32 GetAreaGroupID() const { return _areaGroupID; }
715 uint32 GetRewardSkillId() const { return _rewardSkillId; }
716 uint32 GetRewardSkillPoints() const { return _rewardSkillPoints; }
717 uint32 GetRewardReputationMask() const { return _rewardReputationMask; }
718 std::vector<int32> const& GetTreasurePickerId() const { return _treasurePickerID; }
719 int32 GetExpansion() const { return _expansion; }
720 int32 GetManagedWorldStateId() const { return _managedWorldStateID; }
721 int32 GetQuestSessionBonus() const { return _questSessionBonus; }
722 uint32 GetQuestGiverPortrait() const { return _questGiverPortrait; }
723 int32 GetQuestGiverPortraitMount() const { return _questGiverPortraitMount; }
724 int32 GetQuestGiverPortraitModelSceneId() const { return _questGiverPortraitModelSceneId; }
725 uint32 GetQuestTurnInPortrait() const { return _questTurnInPortrait; }
726 std::vector<int32> const& GetRewardHouseRoomIds() const { return _rewardHouseRoomIDs; }
727 std::vector<int32> const& GetRewardRewardHouseDecorIds() const { return _rewardHouseDecorIDs; }
728 bool IsDaily() const { return (_flags & QUEST_FLAGS_DAILY) != 0; }
729 bool IsWeekly() const { return (_flags & QUEST_FLAGS_WEEKLY) != 0; }
730 bool IsMonthly() const { return (_specialFlags & QUEST_SPECIAL_FLAGS_MONTHLY) != 0; }
731 bool IsSeasonal() const { return (_questSortID == -QUEST_SORT_SEASONAL || _questSortID == -QUEST_SORT_SPECIAL || _questSortID == -QUEST_SORT_LUNAR_FESTIVAL || _questSortID == -QUEST_SORT_MIDSUMMER || _questSortID == -QUEST_SORT_BREWFEST || _questSortID == -QUEST_SORT_LOVE_IS_IN_THE_AIR || _questSortID == -QUEST_SORT_NOBLEGARDEN) && !IsRepeatable(); }
732 bool IsDailyOrWeekly() const { return (_flags & (QUEST_FLAGS_DAILY | QUEST_FLAGS_WEEKLY)) != 0; }
733 bool IsRaidQuest(Difficulty difficulty) const;
734 bool IsAllowedInRaid(Difficulty difficulty) const;
735 bool IsDFQuest() const { return (_specialFlags & QUEST_SPECIAL_FLAGS_DF_QUEST) != 0; }
737 uint32 CalculateHonorGain(uint8 level) const;
738 bool CanIncreaseRewardedQuestCounters() const;
739 bool IsResetByScheduler() const { return _resetByScheduler; }
740
741 // multiple values
742 std::vector<QuestRewardDisplaySpell> RewardDisplaySpell;
743 std::array<uint32, QUEST_REWARD_ITEM_COUNT> RewardItemId = { };
744 std::array<uint32, QUEST_REWARD_ITEM_COUNT> RewardItemCount = { };
745 std::array<uint32, QUEST_ITEM_DROP_COUNT> ItemDrop = { };
746 std::array<uint32, QUEST_ITEM_DROP_COUNT> ItemDropQuantity = { };
747 std::array<LootItemType, QUEST_REWARD_CHOICES_COUNT> RewardChoiceItemType = { };
748 std::array<uint32, QUEST_REWARD_CHOICES_COUNT> RewardChoiceItemId = { };
749 std::array<uint32, QUEST_REWARD_CHOICES_COUNT> RewardChoiceItemCount = { };
750 std::array<uint32, QUEST_REWARD_CHOICES_COUNT> RewardChoiceItemDisplayId = { };
751 std::array<uint32, QUEST_REWARD_REPUTATIONS_COUNT> RewardFactionId = { };
752 std::array<int32, QUEST_REWARD_REPUTATIONS_COUNT> RewardFactionValue = { };
753 std::array<int32, QUEST_REWARD_REPUTATIONS_COUNT> RewardFactionOverride = { };
754 std::array<int32, QUEST_REWARD_REPUTATIONS_COUNT> RewardFactionCapIn = { };
755 std::array<uint32, QUEST_REWARD_CURRENCY_COUNT> RewardCurrencyId = { };
756 std::array<uint32, QUEST_REWARD_CURRENCY_COUNT> RewardCurrencyCount = { };
758 std::array<uint32, QUEST_EMOTE_COUNT> DetailsEmote = { };
759 std::array<uint32, QUEST_EMOTE_COUNT> DetailsEmoteDelay = { };
760 std::array<int32, QUEST_EMOTE_COUNT> OfferRewardEmote = { };
761 std::array<uint32, QUEST_EMOTE_COUNT> OfferRewardEmoteDelay = { };
762
763 uint32 GetRewChoiceItemsCount() const { return _rewChoiceItemsCount; }
764 uint32 GetRewItemsCount() const { return _rewItemsCount; }
765
766 void SetEventIdForQuest(uint16 eventId) { _eventIdForQuest = eventId; }
767 uint16 GetEventIdForQuest() const { return _eventIdForQuest; }
768
769 void InitializeQueryData();
770 WorldPacket BuildQueryData(LocaleConstant loc, Player* player) const;
771
772 void BuildQuestRewards(WorldPackets::Quest::QuestRewards& rewards, Player* player) const;
773
774 // Helpers
775 static uint32 RoundXPValue(uint32 xp);
776
777 Trinity::unique_weak_ptr<Quest> GetWeakPtr() const { return _weakRef; }
778
779 std::vector<uint32> DependentPreviousQuests;
780 std::vector<uint32> DependentBreadcrumbQuests;
781 std::unique_ptr<WorldPacket[]> QueryData;
782
783 private:
784 uint32 _rewItemsCount = 0;
785 uint32 _rewChoiceItemsCount = 0;
786 uint16 _eventIdForQuest = 0;
787
788 // wdb data (quest query response)
789 uint32 _id = 0;
790 uint32 _type = 0;
791 uint32 _packageID = 0;
792 uint32 _contentTuningID = 0;
793 int32 _questSortID = 0;
794 uint32 _questInfoID = 0;
795 uint32 _suggestedPlayers = 0;
796 uint32 _nextQuestInChain = 0;
797 uint32 _rewardXPDifficulty = 0;
798 float _rewardXPMultiplier = 0.f;
799 uint32 _rewardMoneyDifficulty = 0;
800 float _rewardMoneyMultiplier = 0.f;
801 uint32 _rewardBonusMoney = 0;
802 uint32 _rewardSpell = 0;
803 uint32 _rewardHonor = 0;
804 uint32 _rewardKillHonor = 0;
805 int32 _rewardFavor = 0;
806 uint32 _rewardArtifactXPDifficulty = 0;
807 float _rewardArtifactXPMultiplier = 0.f;
808 uint32 _rewardArtifactCategoryID = 0;
809 uint32 _sourceItemId = 0;
810 uint32 _flags = 0;
811 uint32 _flagsEx = 0;
812 uint32 _flagsEx2 = 0;
813 uint32 _flagsEx3 = 0;
814 uint32 _poiContinent = 0;
815 float _poix = 0.f;
816 float _poiy = 0.f;
817 uint32 _poiPriority = 0;
818 uint32 _rewardTitleId = 0;
819 int32 _rewardArenaPoints = 0;
820 uint32 _rewardSkillId = 0;
821 uint32 _rewardSkillPoints = 0;
822 uint32 _questGiverPortrait = 0;
823 int32 _questGiverPortraitMount = 0;
824 int32 _questGiverPortraitModelSceneId = 0;
825 uint32 _questTurnInPortrait = 0;
827 uint32 _soundAccept = 0;
828 uint32 _soundTurnIn = 0;
829 uint32 _areaGroupID = 0;
830 int64 _limitTime = 0;
832 std::vector<int32> _treasurePickerID;
833 int32 _expansion = 0;
834 int32 _managedWorldStateID = 0;
835 int32 _questSessionBonus = 0;
836 std::vector<int32> _rewardHouseRoomIDs;
837 std::vector<int32> _rewardHouseDecorIDs;
838 std::string _logTitle;
839 std::string _logDescription;
840 std::string _questDescription;
841 std::string _areaDescription;
848
849 // quest_description_conditional
850 std::vector<QuestConditionalText> _conditionalQuestDescription;
851
852 // quest_completion_log_conditional
853 std::vector<QuestConditionalText> _conditionalQuestCompletionLog;
854
855 // quest_request_items table
856 uint32 _emoteOnComplete = 0;
857 uint32 _emoteOnIncomplete = 0;
858 uint32 _emoteOnCompleteDelay = 0;
859 uint32 _emoteOnIncompleteDelay = 0;
860 std::string _requestItemsText;
861
862 // quest_request_items_conditional
863 std::vector<QuestConditionalText> _conditionalRequestItemsText;
864
865 // quest_offer_reward table
866 std::string _offerRewardText;
867
868 // quest_offer_reward_conditional
869 std::vector<QuestConditionalText> _conditionalOfferRewardText;
870
871 // quest_template_addon table (custom data)
872 uint32 _maxLevel = 0;
873 uint32 _allowableClasses = 0;
874 uint32 _sourceSpellID = 0;
875 int32 _prevQuestID = 0;
876 uint32 _nextQuestID = 0;
877 int32 _exclusiveGroup = 0;
878 int32 _breadcrumbForQuestId = 0;
879 uint32 _rewardMailTemplateId = 0;
880 uint32 _rewardMailDelay = 0;
881 uint32 _requiredSkillId = 0;
882 uint32 _requiredSkillPoints = 0;
883 uint32 _requiredMinRepFaction = 0;
884 int32 _requiredMinRepValue = 0;
885 uint32 _requiredMaxRepFaction = 0;
886 int32 _requiredMaxRepValue = 0;
887 uint32 _sourceItemIdCount = 0;
888 uint32 _rewardMailSenderEntry = 0;
889 uint32 _specialFlags = 0; // custom flags, not sniffed/WDB
890 std::bitset<MAX_QUEST_OBJECTIVE_TYPE> _usedQuestObjectiveTypes;
891 uint32 _scriptId = 0;
892
894};
895
897{
900 time_t AcceptTime = time_t(0);
902 bool Explored = false;
903 std::unordered_set<std::pair<int8, uint32>> SpawnTrackingList;
904};
905
906#endif
LocaleConstant
Definition Common.h:51
Difficulty
Definition DBCEnums.h:932
std::shared_ptr< ResultSet > QueryResult
#define TC_GAME_API
Definition Define.h:129
uint8_t uint8
Definition Define.h:156
int64_t int64
Definition Define.h:149
int16_t int16
Definition Define.h:151
int8_t int8
Definition Define.h:152
int32_t int32
Definition Define.h:150
uint64_t uint64
Definition Define.h:153
uint16_t uint16
Definition Define.h:155
uint32_t uint32
Definition Define.h:154
#define DEFINE_ENUM_FLAG(enumType)
Definition EnumFlag.h:26
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition Optional.h:25
QuestCompleteSpellType
Definition QuestDef.h:405
QuestRewardContextFlags
Definition QuestDef.h:421
QuestTagType
Definition QuestDef.h:337
QuestFailedReason
Definition QuestDef.h:59
@ QUEST_ERR_ALREADY_DONE
Definition QuestDef.h:63
@ QUEST_ERR_FAILED_EXPANSION
Definition QuestDef.h:66
@ QUEST_ERR_FAILED_WRONG_RACE
Definition QuestDef.h:62
@ QUEST_ERR_ALREADY_ON2
Definition QuestDef.h:67
@ QUEST_ERR_ONLY_ONE_TIMED
Definition QuestDef.h:64
@ QUEST_ERR_ALREADY_DONE_DAILY
Definition QuestDef.h:71
@ QUEST_ERR_FAILED_LOW_LEVEL
Definition QuestDef.h:61
@ QUEST_ERR_FAILED_NOT_ENOUGH_MONEY
Definition QuestDef.h:69
@ QUEST_ERR_FAILED_MISSING_ITEMS
Definition QuestDef.h:68
@ QUEST_ERR_NONE
Definition QuestDef.h:60
@ QUEST_ERR_HAS_IN_PROGRESS
Definition QuestDef.h:73
@ QUEST_ERR_FAILED_SPELL
Definition QuestDef.h:72
@ QUEST_ERR_ALREADY_ON1
Definition QuestDef.h:65
@ QUEST_ERR_FAILED_CAIS
Definition QuestDef.h:70
QuestPushReason
Definition QuestDef.h:78
@ NewPlayerExperienceToRecipient
@ DifferentServerDailyToRecipient
std::vector< QuestObjective > QuestObjectives
Definition QuestDef.h:556
QuestTradeSkill
Definition QuestDef.h:127
@ QUEST_TRSKILL_ALCHEMY
Definition QuestDef.h:129
@ QUEST_TRSKILL_FISHING
Definition QuestDef.h:140
@ QUEST_TRSKILL_BLACKSMITHING
Definition QuestDef.h:130
@ QUEST_TRSKILL_TAILORING
Definition QuestDef.h:138
@ QUEST_TRSKILL_MINING
Definition QuestDef.h:139
@ QUEST_TRSKILL_HERBALISM
Definition QuestDef.h:135
@ QUEST_TRSKILL_JEWELCRAFTING
Definition QuestDef.h:142
@ QUEST_TRSKILL_SKINNING
Definition QuestDef.h:141
@ QUEST_TRSKILL_COOKING
Definition QuestDef.h:131
@ QUEST_TRSKILL_NONE
Definition QuestDef.h:128
@ QUEST_TRSKILL_ENGINEERING
Definition QuestDef.h:133
@ QUEST_TRSKILL_FIRSTAID
Definition QuestDef.h:134
@ QUEST_TRSKILL_ENCHANTING
Definition QuestDef.h:132
@ QUEST_TRSKILL_LEATHERWORKING
Definition QuestDef.h:136
@ QUEST_TRSKILL_POISONS
Definition QuestDef.h:137
QuestObjectiveType
Definition QuestDef.h:357
@ QUEST_OBJECTIVE_DEFEATBATTLEPET
Definition QuestDef.h:370
@ QUEST_OBJECTIVE_WINPVPPETBATTLES
Definition QuestDef.h:371
@ QUEST_OBJECTIVE_INCREASE_REPUTATION
Definition QuestDef.h:376
@ MAX_QUEST_OBJECTIVE_TYPE
Definition QuestDef.h:382
@ QUEST_OBJECTIVE_HAVE_CURRENCY
Definition QuestDef.h:374
@ QUEST_OBJECTIVE_WINPETBATTLEAGAINSTNPC
Definition QuestDef.h:369
@ QUEST_OBJECTIVE_MONSTER
Definition QuestDef.h:358
@ QUEST_OBJECTIVE_TALKTO
Definition QuestDef.h:361
@ QUEST_OBJECTIVE_KILL_WITH_LABEL
Definition QuestDef.h:379
@ QUEST_OBJECTIVE_CRITERIA_TREE
Definition QuestDef.h:372
@ QUEST_OBJECTIVE_OBTAIN_CURRENCY
Definition QuestDef.h:375
@ QUEST_OBJECTIVE_PROGRESS_BAR
Definition QuestDef.h:373
@ QUEST_OBJECTIVE_UNK_1127
Definition QuestDef.h:380
@ QUEST_OBJECTIVE_PLAYERKILLS
Definition QuestDef.h:367
@ QUEST_OBJECTIVE_ITEM
Definition QuestDef.h:359
@ QUEST_OBJECTIVE_MONEY
Definition QuestDef.h:366
@ QUEST_OBJECTIVE_MAX_REPUTATION
Definition QuestDef.h:365
@ QUEST_OBJECTIVE_AREA_TRIGGER_EXIT
Definition QuestDef.h:378
@ QUEST_OBJECTIVE_AREATRIGGER
Definition QuestDef.h:368
@ QUEST_OBJECTIVE_CURRENCY
Definition QuestDef.h:362
@ QUEST_OBJECTIVE_LEARNSPELL
Definition QuestDef.h:363
@ QUEST_OBJECTIVE_AREA_TRIGGER_ENTER
Definition QuestDef.h:377
@ QUEST_OBJECTIVE_GAMEOBJECT
Definition QuestDef.h:360
@ QUEST_OBJECTIVE_MIN_REPUTATION
Definition QuestDef.h:364
QuestGiverStatus
Definition QuestDef.h:158
@ ImportantQuestRewardCompletePOI
@ CovenantCallingRewardCompletePOI
@ LegendaryQuestAccountCompleted
@ ImportantQuestRewardCompleteNoPOI
@ ImportantQuestAccountCompleted
@ CovenantCallingRewardCompleteNoPOI
QuestObjectiveFlags2
Definition QuestDef.h:400
@ QUEST_OBJECTIVE_FLAG_2_QUEST_BOUND_ITEM
Definition QuestDef.h:401
#define MAX_QUEST_LOG_SIZE
Definition QuestDef.h:46
QuestObjectiveFlags
Definition QuestDef.h:386
@ QUEST_OBJECTIVE_FLAG_SEQUENCED
Definition QuestDef.h:388
@ QUEST_OBJECTIVE_FLAG_KILL_PLAYERS_SAME_FACTION
Definition QuestDef.h:394
@ QUEST_OBJECTIVE_FLAG_IGNORE_SOULBOUND_ITEMS
Definition QuestDef.h:396
@ QUEST_OBJECTIVE_FLAG_PRESERVE_QUEST_ITEMS
Definition QuestDef.h:392
@ QUEST_OBJECTIVE_FLAG_HIDDEN
Definition QuestDef.h:390
@ QUEST_OBJECTIVE_FLAG_PART_OF_PROGRESS_BAR
Definition QuestDef.h:393
@ QUEST_OBJECTIVE_FLAG_TRACKED_ON_MINIMAP
Definition QuestDef.h:387
@ QUEST_OBJECTIVE_FLAG_NO_SHARE_PROGRESS
Definition QuestDef.h:395
@ QUEST_OBJECTIVE_FLAG_OPTIONAL
Definition QuestDef.h:389
@ QUEST_OBJECTIVE_FLAG_HIDE_CREDIT_MSG
Definition QuestDef.h:391
QuestFlagsEx
Definition QuestDef.h:254
@ QUEST_FLAGS_EX_NO_ITEM_REMOVAL
Definition QuestDef.h:256
@ QUEST_FLAGS_EX_LEGENDARY
Definition QuestDef.h:264
@ QUEST_FLAGS_EX_DISPLAY_AS_OBJECTIVE
Definition QuestDef.h:275
@ QUEST_FLAGS_EX_NO_SPELL_COMPLETE_EFFECTS
Definition QuestDef.h:283
@ QUEST_FLAGS_EX_KEEP_PROGRESS_ON_FACTION_CHANGE
Definition QuestDef.h:286
@ QUEST_FLAGS_EX_DISPLAY_QUEST_LINE
Definition QuestDef.h:272
@ QUEST_FLAGS_EX_ACCOUNT
Definition QuestDef.h:263
@ QUEST_FLAGS_EX_REWARDS_IGNORE_CAPS
Definition QuestDef.h:279
@ QUEST_FLAGS_EX_DENY_PLAYER_QUESTGIVER
Definition QuestDef.h:259
@ QUEST_FLAGS_EX_SUPPRESS_SPELL_LEARN_TEXT
Definition QuestDef.h:274
@ QUEST_FLAGS_EX_AUTO_PUSH
Definition QuestDef.h:282
@ QUEST_FLAGS_EX_DO_NOT_TOAST_HONOR_REWARD
Definition QuestDef.h:284
@ QUEST_FLAGS_EX_SUPPRESS_GOSSIP_ACCEPT
Definition QuestDef.h:258
@ QUEST_FLAGS_EX_DISPLAY_AS_DAILY
Definition QuestDef.h:271
@ QUEST_FLAGS_EX_INTERNAL_BUILDS_ONLY
Definition QuestDef.h:273
@ QUEST_FLAGS_EX_SUPPRESS_GREETINGS_ON_ACCEPT
Definition QuestDef.h:278
@ QUEST_FLAGS_EX_REMOVE_ON_PERIODIC_RESET
Definition QuestDef.h:262
@ QUEST_FLAGS_EX_PUSH_TEAM_QUEST_USING_MAP_CONTROLLER
Definition QuestDef.h:287
@ QUEST_FLAGS_EX_NO_CREDIT_FOR_PROXY
Definition QuestDef.h:270
@ QUEST_FLAGS_EX_UPDATE_ZONE_AURAS
Definition QuestDef.h:269
@ QUEST_FLAGS_EX_IS_WORLD_QUEST
Definition QuestDef.h:280
@ QUEST_FLAGS_EX_NONE
Definition QuestDef.h:255
@ QUEST_FLAGS_EX_DISPLAY_CLASS_CHOICE_REWARDS
Definition QuestDef.h:260
@ QUEST_FLAGS_EX_DISPLAY_SPEC_CHOICE_REWARDS
Definition QuestDef.h:261
@ QUEST_FLAGS_EX_NO_ABANDON_ONCE_BEGUN
Definition QuestDef.h:267
@ QUEST_FLAGS_EX_SUPPRESS_GOSSIP_COMPLETE
Definition QuestDef.h:257
@ QUEST_FLAGS_EX_REMOVE_ON_WEEKLY_RESET
Definition QuestDef.h:277
@ QUEST_FLAGS_EX_NO_GUILD_XP
Definition QuestDef.h:265
@ QUEST_FLAGS_EX_RECAST_ACCEPT_SPELL_ON_LOGIN
Definition QuestDef.h:268
@ QUEST_FLAGS_EX_NOT_IGNORABLE
Definition QuestDef.h:281
@ QUEST_FLAGS_EX_RESET_CACHE_ON_ACCEPT
Definition QuestDef.h:266
@ QUEST_FLAGS_EX_KEEP_REPEATABLE_QUEST_ON_FACTION_CHANGE
Definition QuestDef.h:285
@ QUEST_FLAGS_EX_ALLOW_ALL_IN_GARRISON
Definition QuestDef.h:276
constexpr QuestGiverStatus QuestGiverStatusFutureMask
Definition QuestDef.h:210
QuestStatus
Definition QuestDef.h:146
@ QUEST_STATUS_REWARDED
Definition QuestDef.h:153
@ QUEST_STATUS_FAILED
Definition QuestDef.h:152
@ QUEST_STATUS_INCOMPLETE
Definition QuestDef.h:150
@ QUEST_STATUS_NONE
Definition QuestDef.h:147
@ MAX_QUEST_STATUS
Definition QuestDef.h:154
@ QUEST_STATUS_COMPLETE
Definition QuestDef.h:148
QuestFlagsEx2
Definition QuestDef.h:291
@ QUEST_FLAGS_EX2_HIDE_REQUIRED_ITEMS_PRE_TURN_IN
Definition QuestDef.h:315
@ QUEST_FLAGS_EX2_DISPLAY_TIME_REMAINING
Definition QuestDef.h:309
@ QUEST_FLAGS_EX2_RESET_ON_GAME_MILESTONE
Definition QuestDef.h:292
@ QUEST_FLAGS_EX2_NOT_REPLAYABLE
Definition QuestDef.h:295
@ QUEST_FLAGS_EX2_AWARD_HIGHEST_PROFESSION
Definition QuestDef.h:294
@ QUEST_FLAGS_EX2_HIDE_REQUIRED_ITEMS_ON_TURN_IN
Definition QuestDef.h:312
@ QUEST_FLAGS_EX2_ABANDON_ON_DISABLE
Definition QuestDef.h:317
@ QUEST_FLAGS_EX2_SUPPRESS_GREETINGS_ON_COMPLETE
Definition QuestDef.h:311
@ QUEST_FLAGS_EX2_SKIP_DISABLED_CHECK
Definition QuestDef.h:306
@ QUEST_FLAGS_EX2_ENFORCE_MAXIMUM_QUEST_LEVEL
Definition QuestDef.h:307
@ QUEST_FLAGS_EX2_HIDE_TASK_ON_MAIN_MAP
Definition QuestDef.h:304
@ QUEST_FLAGS_EX2_NO_REPLAY_REWARDS
Definition QuestDef.h:296
@ QUEST_FLAGS_EX2_DISABLE_WAYPOINT_PATHING
Definition QuestDef.h:297
@ QUEST_FLAGS_EX2_IGNORE_SOULBOUND_ITEMS
Definition QuestDef.h:313
@ QUEST_FLAGS_EX2_BONUS_LOOT_ALWAYS
Definition QuestDef.h:303
@ QUEST_FLAGS_EX2_RESET_ON_MYTHIC_PLUS_SEASON
Definition QuestDef.h:298
@ QUEST_FLAGS_EX2_FORCE_STARTING_LOC_ON_ZONE_MAP
Definition QuestDef.h:301
@ QUEST_FLAGS_EX2_WAR_MODE_REWARDS_OPT_OUT
Definition QuestDef.h:293
@ QUEST_FLAGS_EX2_CONTENT_ALERT
Definition QuestDef.h:308
@ QUEST_FLAGS_EX2_RESET_ON_PVP_SEASON
Definition QuestDef.h:299
@ QUEST_FLAGS_EX2_DONT_DEFER_START_EFFECTS
Definition QuestDef.h:314
@ QUEST_FLAGS_EX2_HIDE_TASK_IN_TRACKER
Definition QuestDef.h:305
@ QUEST_FLAGS_EX2_CLEAR_TASK_PROGRESS_WHEN_ABANDONED
Definition QuestDef.h:310
@ QUEST_FLAGS_EX2_ENABLE_OVERRIDE_SORT_ORDER
Definition QuestDef.h:300
@ QUEST_FLAGS_EX2_BONUS_LOOT_NEVER
Definition QuestDef.h:302
QuestFlags
Definition QuestDef.h:216
@ QUEST_FLAGS_DISABLE_COMPLETION_TEXT
Definition QuestDef.h:236
@ QUEST_FLAGS_FLAGS_PVP
Definition QuestDef.h:231
@ QUEST_FLAGS_DAILY
Definition QuestDef.h:230
@ QUEST_FLAGS_NONE
Definition QuestDef.h:217
@ QUEST_FLAGS_HIDE_REWARD_POI
Definition QuestDef.h:223
@ QUEST_FLAGS_AUTO_COMPLETE
Definition QuestDef.h:234
@ QUEST_FLAGS_REMOVE_SURPLUS_ITEMS
Definition QuestDef.h:243
@ QUEST_FLAGS_LAUNCH_GOSSIP_ACCEPT
Definition QuestDef.h:247
@ QUEST_FLAGS_DEPRECATED
Definition QuestDef.h:232
@ QUEST_FLAGS_WEEKLY
Definition QuestDef.h:233
@ QUEST_FLAGS_DISPLAY_ITEM_IN_TRACKER
Definition QuestDef.h:235
@ QUEST_FLAGS_HAS_CONDITION
Definition QuestDef.h:222
@ QUEST_FLAGS_COMPLETION_AREA_TRIGGER
Definition QuestDef.h:220
@ QUEST_FLAGS_RAID_GROUP_OK
Definition QuestDef.h:224
@ QUEST_FLAGS_AUTO_ACCEPT
Definition QuestDef.h:237
@ QUEST_FLAGS_UPDATE_PHASESHIFT
Definition QuestDef.h:240
@ QUEST_FLAGS_COMPLETION_NO_DEATH
Definition QuestDef.h:218
@ QUEST_FLAGS_SOR_WHITELIST
Definition QuestDef.h:241
@ QUEST_FLAGS_HIDE_REWARD
Definition QuestDef.h:227
@ QUEST_FLAGS_WAR_MODE_REWARDS_OPT_IN
Definition QuestDef.h:225
@ QUEST_FLAGS_SHOW_ITEM_WHEN_COMPLETED
Definition QuestDef.h:246
@ QUEST_FLAGS_PORTRAIT_IN_QUEST_LOG
Definition QuestDef.h:245
@ QUEST_FLAGS_SHARABLE
Definition QuestDef.h:221
@ QUEST_FLAGS_PLAYER_CAST_COMPLETE
Definition QuestDef.h:239
@ QUEST_FLAGS_DEPRECATE_REPUTATION
Definition QuestDef.h:229
@ QUEST_FLAGS_COMPLETION_EVENT
Definition QuestDef.h:219
@ QUEST_FLAGS_ITEMS_GLOW_WHEN_COMPLETE
Definition QuestDef.h:248
@ QUEST_FLAGS_LAUNCH_GOSSIP_COMPLETE
Definition QuestDef.h:242
@ QUEST_FLAGS_FAIL_ON_LOGOUT
Definition QuestDef.h:249
@ QUEST_FLAGS_WELL_KNOWN
Definition QuestDef.h:244
@ QUEST_FLAGS_PLAYER_CAST_ACCEPT
Definition QuestDef.h:238
@ QUEST_FLAGS_NO_MONEY_FOR_XP
Definition QuestDef.h:226
@ QUEST_FLAGS_TRACKING_EVENT
Definition QuestDef.h:228
QuestSpecialFlags
Definition QuestDef.h:321
@ QUEST_SPECIAL_FLAGS_SEQUENCED_OBJECTIVES
Definition QuestDef.h:333
@ QUEST_SPECIAL_FLAGS_AUTO_ACCEPT
Definition QuestDef.h:326
@ QUEST_SPECIAL_FLAGS_REPEATABLE
Definition QuestDef.h:324
@ QUEST_SPECIAL_FLAGS_DB_ALLOWED
Definition QuestDef.h:331
@ QUEST_SPECIAL_FLAGS_AUTO_PUSH_TO_PARTY
Definition QuestDef.h:325
@ QUEST_SPECIAL_FLAGS_DF_QUEST
Definition QuestDef.h:327
@ QUEST_SPECIAL_FLAGS_NONE
Definition QuestDef.h:322
@ QUEST_SPECIAL_FLAGS_MONTHLY
Definition QuestDef.h:328
@ QUEST_SORT_LOVE_IS_IN_THE_AIR
@ QUEST_SORT_SPECIAL
@ QUEST_SORT_BREWFEST
@ QUEST_SORT_NOBLEGARDEN
@ QUEST_SORT_MIDSUMMER
@ QUEST_SORT_LUNAR_FESTIVAL
@ QUEST_SORT_SEASONAL
Class used to access individual fields of database query result.
Definition Field.h:94
bool IsResetByScheduler() const
Definition QuestDef.h:739
int32 GetRewArenaPoints() const
Definition QuestDef.h:659
std::string _areaDescription
Definition QuestDef.h:841
std::vector< QuestConditionalText > _conditionalRequestItemsText
Definition QuestDef.h:863
std::string _portraitTurnInName
Definition QuestDef.h:845
float GetXPMultiplier() const
Definition QuestDef.h:661
uint32 GetRewSpell() const
Definition QuestDef.h:690
uint16 GetEventIdForQuest() const
Definition QuestDef.h:767
uint32 GetSpecialFlags() const
Definition QuestDef.h:712
Trinity::unique_weak_ptr< Quest > _weakRef
Definition QuestDef.h:893
uint32 GetFlagsEx2() const
Definition QuestDef.h:710
uint32 GetRewMailSenderEntry() const
Definition QuestDef.h:693
uint32 GetRewTitle() const
Definition QuestDef.h:694
std::string const & GetQuestCompletionLog() const
Definition QuestDef.h:675
std::vector< uint32 > DependentBreadcrumbQuests
Definition QuestDef.h:780
uint32 GetRewardSkillId() const
Definition QuestDef.h:715
uint32 GetSoundAccept() const
Definition QuestDef.h:699
uint32 GetArtifactXPDifficulty() const
Definition QuestDef.h:686
std::string const & GetPortraitGiverName() const
Definition QuestDef.h:678
int32 GetQuestSessionBonus() const
Definition QuestDef.h:721
uint32 GetRewMailTemplateId() const
Definition QuestDef.h:691
bool HasQuestObjectiveType(QuestObjectiveType type) const
Definition QuestDef.h:625
std::string const & GetPortraitTurnInName() const
Definition QuestDef.h:680
bool HasSpecialFlag(QuestSpecialFlags flag) const
Definition QuestDef.h:623
Quest(Quest &&)=delete
float GetArtifactXPMultiplier() const
Definition QuestDef.h:687
uint32 GetMaxLevel() const
Definition QuestDef.h:642
std::string const & GetRequestItemsText() const
Definition QuestDef.h:673
int32 GetRequiredMaxRepValue() const
Definition QuestDef.h:651
float GetPOIy() const
Definition QuestDef.h:697
int32 GetRequiredMinRepValue() const
Definition QuestDef.h:649
bool IsUnavailable() const
Definition QuestDef.h:631
int32 GetRewardFavor() const
Definition QuestDef.h:685
std::string _questDescription
Definition QuestDef.h:840
int32 GetExpansion() const
Definition QuestDef.h:719
std::vector< QuestConditionalText > const & GetConditionalQuestCompletionLog() const
Definition QuestDef.h:676
uint32 GetContentTuningId() const
Definition QuestDef.h:640
uint32 GetQuestPackageID() const
Definition QuestDef.h:639
std::vector< int32 > _rewardHouseDecorIDs
Definition QuestDef.h:837
std::string _portraitGiverText
Definition QuestDef.h:842
uint32 GetRewardReputationMask() const
Definition QuestDef.h:717
uint32 GetQuestGiverPortrait() const
Definition QuestDef.h:722
uint32 GetPOIContinent() const
Definition QuestDef.h:695
uint32 GetSrcItemCount() const
Definition QuestDef.h:664
uint32 GetQuestTurnInPortrait() const
Definition QuestDef.h:725
bool IsDFQuest() const
Definition QuestDef.h:735
QuestObjectives Objectives
Definition QuestDef.h:757
uint32 GetXPDifficulty() const
Definition QuestDef.h:660
bool IsPushedToPartyOnAccept() const
Definition QuestDef.h:736
std::string _requestItemsText
Definition QuestDef.h:860
uint32 GetSrcSpell() const
Definition QuestDef.h:665
bool IsRepeatable() const
Definition QuestDef.h:705
int32 GetZoneOrSort() const
Definition QuestDef.h:641
int64 GetLimitTime() const
Definition QuestDef.h:653
std::vector< int32 > const & GetTreasurePickerId() const
Definition QuestDef.h:718
std::vector< int32 > const & GetRewardHouseRoomIds() const
Definition QuestDef.h:726
int32 GetManagedWorldStateId() const
Definition QuestDef.h:720
Quest & operator=(Quest &&)=delete
uint32 _rewardReputationMask
Definition QuestDef.h:826
uint32 GetRewKillHonor() const
Definition QuestDef.h:684
Trinity::RaceMask< std::array< int32, 2 > > _allowableRaces
Definition QuestDef.h:831
std::bitset< MAX_QUEST_OBJECTIVE_TYPE > _usedQuestObjectiveTypes
Definition QuestDef.h:890
std::vector< QuestConditionalText > _conditionalQuestDescription
Definition QuestDef.h:850
uint32 GetArtifactCategoryId() const
Definition QuestDef.h:688
Quest & operator=(Quest const &)=delete
uint32 GetRequiredMinRepFaction() const
Definition QuestDef.h:648
std::string _portraitTurnInText
Definition QuestDef.h:844
uint32 GetFlags() const
Definition QuestDef.h:708
int32 GetPrevQuestId() const
Definition QuestDef.h:654
std::string const & GetLogTitle() const
Definition QuestDef.h:666
uint32 GetQuestType() const
Definition QuestDef.h:638
std::vector< uint32 > DependentPreviousQuests
Definition QuestDef.h:779
uint32 GetQuestId() const
Definition QuestDef.h:637
std::string _logTitle
Definition QuestDef.h:838
std::string _logDescription
Definition QuestDef.h:839
uint32 GetRequiredSkillValue() const
Definition QuestDef.h:647
Trinity::RaceMask< std::array< int32, 2 > > GetAllowableRaces() const
Definition QuestDef.h:645
std::string _portraitGiverName
Definition QuestDef.h:843
uint32 GetIncompleteEmoteDelay() const
Definition QuestDef.h:703
std::string const & GetPortraitGiverText() const
Definition QuestDef.h:677
bool HasFlagEx2(QuestFlagsEx2 flag) const
Definition QuestDef.h:621
uint32 GetRewMailDelaySecs() const
Definition QuestDef.h:692
bool IsDaily() const
Definition QuestDef.h:728
uint32 GetQuestInfoID() const
Definition QuestDef.h:643
int32 GetExclusiveGroup() const
Definition QuestDef.h:656
std::vector< QuestConditionalText > const & GetConditionalOfferRewardText() const
Definition QuestDef.h:672
uint32 GetCompleteEmoteDelay() const
Definition QuestDef.h:704
std::vector< QuestConditionalText > _conditionalQuestCompletionLog
Definition QuestDef.h:853
int32 GetBreadcrumbForQuestId() const
Definition QuestDef.h:657
uint32 GetFlagsEx3() const
Definition QuestDef.h:711
int32 GetQuestGiverPortraitMount() const
Definition QuestDef.h:723
bool IsWorldQuest() const
Definition QuestDef.h:628
std::string const & GetPortraitTurnInText() const
Definition QuestDef.h:679
uint32 GetFlagsEx() const
Definition QuestDef.h:709
uint32 GetAreaGroupID() const
Definition QuestDef.h:714
std::string const & GetOfferRewardText() const
Definition QuestDef.h:671
void SetEventIdForQuest(uint16 eventId)
Definition QuestDef.h:766
int32 GetQuestGiverPortraitModelSceneId() const
Definition QuestDef.h:724
std::vector< QuestConditionalText > const & GetConditionalRequestItemsText() const
Definition QuestDef.h:674
bool _resetByScheduler
Definition QuestDef.h:847
uint32 GetSoundTurnIn() const
Definition QuestDef.h:700
Trinity::unique_weak_ptr< Quest > GetWeakPtr() const
Definition QuestDef.h:777
std::vector< int32 > _treasurePickerID
Definition QuestDef.h:832
std::string const & GetLogDescription() const
Definition QuestDef.h:667
void SetSpecialFlag(QuestSpecialFlags flag)
Definition QuestDef.h:624
std::vector< int32 > _rewardHouseRoomIDs
Definition QuestDef.h:836
uint32 GetScriptId() const
Definition QuestDef.h:713
uint32 GetRewItemsCount() const
Definition QuestDef.h:764
std::string const & GetAreaDescription() const
Definition QuestDef.h:670
float GetMoneyMultiplier() const
Definition QuestDef.h:662
uint32 GetRequiredSkill() const
Definition QuestDef.h:646
uint32 GetRewChoiceItemsCount() const
Definition QuestDef.h:763
uint32 GetIncompleteEmote() const
Definition QuestDef.h:701
uint32 GetRewHonor() const
Definition QuestDef.h:683
uint32 GetSrcItemId() const
Definition QuestDef.h:663
bool IsWeekly() const
Definition QuestDef.h:729
uint32 GetNextQuestId() const
Definition QuestDef.h:655
std::vector< QuestConditionalText > _conditionalOfferRewardText
Definition QuestDef.h:869
bool IsSeasonal() const
Definition QuestDef.h:731
bool IsDailyOrWeekly() const
Definition QuestDef.h:732
std::unique_ptr< WorldPacket[]> QueryData
Definition QuestDef.h:781
bool IsAutoPush() const
Definition QuestDef.h:627
std::string _questCompletionLog
Definition QuestDef.h:846
uint32 GetRewMoneyDifficulty() const
Definition QuestDef.h:682
float GetPOIx() const
Definition QuestDef.h:696
uint32 GetCompleteEmote() const
Definition QuestDef.h:702
QuestObjectives const & GetObjectives() const
Definition QuestDef.h:681
bool HasFlagEx(QuestFlagsEx flag) const
Definition QuestDef.h:620
std::string const & GetQuestDescription() const
Definition QuestDef.h:668
bool IsMonthly() const
Definition QuestDef.h:730
uint32 GetAllowableClasses() const
Definition QuestDef.h:644
bool HasFlag(QuestFlags flag) const
Definition QuestDef.h:619
std::string _offerRewardText
Definition QuestDef.h:866
uint32 GetRewardSkillPoints() const
Definition QuestDef.h:716
std::vector< QuestRewardDisplaySpell > RewardDisplaySpell
Definition QuestDef.h:742
uint32 GetPOIPriority() const
Definition QuestDef.h:698
Quest(Quest const &)=delete
std::vector< QuestConditionalText > const & GetConditionalQuestDescription() const
Definition QuestDef.h:669
std::vector< int32 > const & GetRewardRewardHouseDecorIds() const
Definition QuestDef.h:727
uint32 GetRequiredMaxRepFaction() const
Definition QuestDef.h:650
uint32 GetNextQuestInChain() const
Definition QuestDef.h:658
uint32 GetSuggestedPlayers() const
Definition QuestDef.h:652
Definition Spell.h:277
Trinity::unique_trackable_ptr companion class, replicating what std::weak_ptr is to std::shared_ptr.
STL namespace.
std::vector< std::string > Text
Definition QuestDef.h:572
std::vector< std::string > Greeting
Definition QuestDef.h:440
uint32 EmoteDelay
Definition QuestDef.h:430
QuestGreeting(uint16 emoteType, uint32 emoteDelay, std::string text)
Definition QuestDef.h:434
uint16 EmoteType
Definition QuestDef.h:429
std::string Text
Definition QuestDef.h:431
Optional< uint32 > SpellId
Definition QuestDef.h:474
Optional< uint32 > ConversationId
Definition QuestDef.h:475
Optional< uint32 > GameEventId
Definition QuestDef.h:473
bool IsStoringFlag() const
Definition QuestDef.h:519
static constexpr bool CanAlwaysBeProgressedInRaid(QuestObjectiveType type)
Definition QuestDef.h:536
QuestObjectiveAction * CompletionEffect
Definition QuestDef.h:496
uint32 Flags2
Definition QuestDef.h:490
bool IsStoringValue() const
Definition QuestDef.h:498
std::string Description
Definition QuestDef.h:494
int8 StorageIndex
Definition QuestDef.h:485
std::vector< int32 > VisualEffects
Definition QuestDef.h:495
uint32 QuestID
Definition QuestDef.h:483
int32 ParentObjectiveID
Definition QuestDef.h:492
int32 ConditionalAmount
Definition QuestDef.h:488
float ProgressBarWeight
Definition QuestDef.h:491
std::vector< std::string > Description
Definition QuestDef.h:463
std::vector< std::string > RewardText
Definition QuestDef.h:468
std::vector< std::string > CompletionText
Definition QuestDef.h:458
QuestCompleteSpellType Type
Definition QuestDef.h:565
QuestRewardDisplaySpell(uint32 spellId, uint32 playerConditionId, QuestCompleteSpellType type)
Definition QuestDef.h:561
QuestStatus Status
Definition QuestDef.h:899
std::unordered_set< std::pair< int8, uint32 > > SpawnTrackingList
Definition QuestDef.h:903
time_t AcceptTime
Definition QuestDef.h:900
std::vector< std::string > PortraitTurnInText
Definition QuestDef.h:451
std::vector< std::string > QuestCompletionLog
Definition QuestDef.h:453
std::vector< std::string > LogTitle
Definition QuestDef.h:445
std::vector< std::string > PortraitGiverName
Definition QuestDef.h:450
std::vector< std::string > PortraitTurnInName
Definition QuestDef.h:452
std::vector< std::string > QuestDescription
Definition QuestDef.h:447
std::vector< std::string > LogDescription
Definition QuestDef.h:446
std::vector< std::string > PortraitGiverText
Definition QuestDef.h:449
std::vector< std::string > AreaDescription
Definition QuestDef.h:448