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