TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
QuestDef.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
3  * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License as published by the
7  * Free Software Foundation; either version 2 of the License, or (at your
8  * option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13  * more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 #ifndef TRINITYCORE_QUEST_H
20 #define TRINITYCORE_QUEST_H
21 
22 #include "Define.h"
23 #include "DatabaseEnv.h"
24 #include "SharedDefines.h"
25 #include "WorldPacket.h"
26 #include "DBCEnums.h"
27 
28 #include <string>
29 #include <vector>
30 
31 class Player;
32 
33 class ObjectMgr;
34 
35 namespace WorldPackets
36 {
37  namespace Quest
38  {
39  struct QuestRewards;
40  }
41 }
42 
43 #define MAX_QUEST_LOG_SIZE 25
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_DEPLINK_COUNT 10
49 #define QUEST_REWARD_REPUTATIONS_COUNT 5
50 #define QUEST_EMOTE_COUNT 4
51 #define QUEST_REWARD_CURRENCY_COUNT 4
52 
54 {
56  QUEST_ERR_FAILED_LOW_LEVEL = 1, // "You are not high enough level for that quest.""
57  QUEST_ERR_FAILED_WRONG_RACE = 6, // "That quest is not available to your race."
58  QUEST_ERR_ALREADY_DONE = 7, // "You have completed that daily quest today."
59  QUEST_ERR_ONLY_ONE_TIMED = 12, // "You can only be on one timed quest at a time"
60  QUEST_ERR_ALREADY_ON1 = 13, // "You are already on that quest"
61  QUEST_ERR_FAILED_EXPANSION = 16, // "This quest requires an expansion enabled account."
62  QUEST_ERR_ALREADY_ON2 = 18, // "You are already on that quest"
63  QUEST_ERR_FAILED_MISSING_ITEMS = 21, // "You don't have the required items with you. Check storage."
64  QUEST_ERR_FAILED_NOT_ENOUGH_MONEY = 23, // "You don't have enough money for that quest"
65  QUEST_ERR_FAILED_CAIS = 24, // "You cannot complete quests once you have reached tired time"
66  QUEST_ERR_ALREADY_DONE_DAILY = 26, // "You have completed that daily quest today."
67  QUEST_ERR_FAILED_SPELL = 28, // "You haven't learned the required spell."
68  QUEST_ERR_HAS_IN_PROGRESS = 30 // "Progress Bar objective not completed"
69 };
70 
72 {
73  QUEST_PUSH_SUCCESS = 0, // "Sharing quest with %s..."
74  QUEST_PUSH_INVALID = 1, // "%s is not eligible for that quest"
75  QUEST_PUSH_ACCEPTED = 2, // "%s has accepted your quest"
76  QUEST_PUSH_DECLINED = 3, // "%s has declined your quest"
77  QUEST_PUSH_BUSY = 4, // "%s is busy"
78  QUEST_PUSH_DEAD = 5, // "%s is dead."
79  QUEST_PUSH_LOG_FULL = 6, // "%s's quest log is full"
80  QUEST_PUSH_ONQUEST = 7, // "%s is already on that quest"
81  QUEST_PUSH_ALREADY_DONE = 8, // "%s has completed that quest"
82  QUEST_PUSH_NOT_DAILY = 9, // "That quest cannot be shared today"
83  QUEST_PUSH_TIMER_EXPIRED = 10, // "Quest sharing timer has expired"
84  QUEST_PUSH_NOT_IN_PARTY = 11, // "You are not in a party"
85  QUEST_PUSH_DIFFERENT_SERVER_DAILY = 12, // "%s is not eligible for that quest today"
86  QUEST_PUSH_NOT_ALLOWED = 13 // "That quest cannot be shared"
87 };
88 
90 {
106 };
107 
109 {
112  //QUEST_STATUS_UNAVAILABLE = 2,
114  //QUEST_STATUS_AVAILABLE = 4,
116  QUEST_STATUS_REWARDED = 6, // Not used in DB
118 };
119 
121 {
132  DIALOG_STATUS_REWARD2 = 0x200, // no yellow dot on minimap
133  DIALOG_STATUS_REWARD = 0x400, // yellow dot on minimap
134 
135  // Custom value meaning that script call did not return any valid quest status
137 };
138 
140 {
141  QUEST_FLAGS_NONE = 0x00000000,
142  QUEST_FLAGS_STAY_ALIVE = 0x00000001, // Not used currently
143  QUEST_FLAGS_PARTY_ACCEPT = 0x00000002, // Not used currently. If player in party, all players that can accept this quest will receive confirmation box to accept quest CMSG_QUEST_CONFIRM_ACCEPT/SMSG_QUEST_CONFIRM_ACCEPT
144  QUEST_FLAGS_EXPLORATION = 0x00000004, // Not used currently
145  QUEST_FLAGS_SHARABLE = 0x00000008, // Can be shared: Player::CanShareQuest()
146  QUEST_FLAGS_HAS_CONDITION = 0x00000010, // Not used currently
147  QUEST_FLAGS_HIDE_REWARD_POI = 0x00000020, // Not used currently: Unsure of content
148  QUEST_FLAGS_RAID = 0x00000040, // Not used currently
149  QUEST_FLAGS_TBC = 0x00000080, // Not used currently: Available if TBC expansion enabled only
150  QUEST_FLAGS_NO_MONEY_FROM_XP = 0x00000100, // Not used currently: Experience is not converted to gold at max level
151  QUEST_FLAGS_HIDDEN_REWARDS = 0x00000200, // Items and money rewarded only sent in SMSG_QUESTGIVER_OFFER_REWARD (not in SMSG_QUESTGIVER_QUEST_DETAILS or in client quest log(SMSG_QUEST_QUERY_RESPONSE))
152  QUEST_FLAGS_TRACKING = 0x00000400, // These quests are automatically rewarded on quest complete and they will never appear in quest log client side.
153  QUEST_FLAGS_DEPRECATE_REPUTATION = 0x00000800, // Not used currently
154  QUEST_FLAGS_DAILY = 0x00001000, // Used to know quest is Daily one
155  QUEST_FLAGS_FLAGS_PVP = 0x00002000, // Having this quest in log forces PvP flag
156  QUEST_FLAGS_UNAVAILABLE = 0x00004000, // Used on quests that are not generically available
157  QUEST_FLAGS_WEEKLY = 0x00008000,
158  QUEST_FLAGS_AUTOCOMPLETE = 0x00010000, // Quests with this flag player submit automatically by special button in player gui
159  QUEST_FLAGS_DISPLAY_ITEM_IN_TRACKER = 0x00020000, // Displays usable item in quest tracker
160  QUEST_FLAGS_OBJ_TEXT = 0x00040000, // use Objective text as Complete text
161  QUEST_FLAGS_AUTO_ACCEPT = 0x00080000, // The client recognizes this flag as auto-accept. However, NONE of the current quests (3.3.5a) have this flag. Maybe blizz used to use it, or will use it in the future.
162  QUEST_FLAGS_UNK1 = 0x00100000, //
163  QUEST_FLAGS_AUTO_TAKE = 0x00200000, // Automatically suggestion of accepting quest. Not from npc.
164  //QUEST_FLAGS_UNK2 = 0x00400000,
165  //QUEST_FLAGS_UNK3 = 0x00800000, // Found in quest 14069
166  //QUEST_FLAGS_UNK4 = 0x01000000,
167  // ... 4.x added flags up to 0x80000000 - all unknown for now
168 };
169 
170 // last checked in 19802
172 {
195 };
196 
198 {
200  // Trinity flags for set SpecialFlags in DB if required but used only at server
201  QUEST_SPECIAL_FLAGS_REPEATABLE = 0x001, // Set by 1 in SpecialFlags from DB
202  QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT = 0x002, // Set by 2 in SpecialFlags from DB (if required area explore, spell SPELL_EFFECT_QUEST_COMPLETE casting, table `FECT_QUEST_COMPLETE casting, table `*_script` command SCRIPT_COMMAND_QUEST_EXPLORED use, set from script)
203  QUEST_SPECIAL_FLAGS_AUTO_ACCEPT = 0x004, // Set by 4 in SpecialFlags in DB if the quest is to be auto-accepted.
204  QUEST_SPECIAL_FLAGS_DF_QUEST = 0x008, // Set by 8 in SpecialFlags in DB if the quest is used by Dungeon Finder.
205  QUEST_SPECIAL_FLAGS_MONTHLY = 0x010, // Set by 16 in SpecialFlags in DB if the quest is reset at the begining of the month
206  QUEST_SPECIAL_FLAGS_CAST = 0x020, // Set by 32 in SpecialFlags in DB if the quest requires RequiredOrNpcGo killcredit but NOT kill (a spell cast)
207  // room for more custom flags
208 
210 
211  QUEST_SPECIAL_FLAGS_DELIVER = 0x080, // Internal flag computed only
212  QUEST_SPECIAL_FLAGS_SPEAKTO = 0x100, // Internal flag computed only
213  QUEST_SPECIAL_FLAGS_KILL = 0x200, // Internal flag computed only
214  QUEST_SPECIAL_FLAGS_TIMED = 0x400, // Internal flag computed only
215  QUEST_SPECIAL_FLAGS_PLAYER_KILL = 0x800 // Internal flag computed only
216 };
217 
219 {
235  QUEST_OBJECTIVE_HAVE_CURRENCY = 16, // requires the player to have X currency when turning in but does not consume it
236  QUEST_OBJECTIVE_OBTAIN_CURRENCY = 17 // requires the player to gain X currency after starting the quest but not required to keep it until the end (does not consume)
237 };
238 
240 {
250 
254 };
255 
257 {
259 };
260 
262 {
263  uint32 ID = 0;
264  uint8 Type = 0;
269  float UnkFloat = 0.0f;
270  std::string Description;
271  std::vector<int32> VisualEffects;
272 };
273 
274 typedef std::vector<QuestObjective> QuestObjectives;
275 
276 // This Quest class provides a convenient way to access a few pretotaled (cached) quest details,
277 // all base quest information, and any utility functions such as generating the amount of
278 // xp to give
280 {
281  friend class ObjectMgr;
282  friend class Player;
283  friend class PlayerMenu;
284  public:
285  // Loading data. All queries are in ObjectMgr::LoadQuests()
286  Quest(Field* questRecord);
287  void LoadQuestDetails(Field* fields);
288  void LoadQuestRequestItems(Field* fields);
289  void LoadQuestOfferReward(Field* fields);
290  void LoadQuestTemplateAddon(Field* fields);
291  void LoadQuestObjective(Field* fields);
292  void LoadQuestObjectiveVisualEffect(Field* fields);
293 
294  uint32 XPValue(uint32 playerLevel) const;
295  uint32 MoneyValue(uint8 playerLevel) const;
296 
297  bool HasFlag(uint32 flag) const { return (Flags & flag) != 0; }
298  void SetFlag(uint32 flag) { Flags |= flag; }
299 
300  bool HasSpecialFlag(uint32 flag) const { return (SpecialFlags & flag) != 0; }
301  void SetSpecialFlag(uint32 flag) { SpecialFlags |= flag; }
302 
303  // table data accessors:
304  uint32 GetQuestId() const { return ID; }
305  uint32 GetQuestType() const { return Type; }
306  uint32 GetQuestPackageID() const { return PackageID; }
307  int32 GetZoneOrSort() const { return QuestSortID; }
308  int32 GetMinLevel() const { return MinLevel; }
309  uint32 GetMaxLevel() const { return MaxLevel; }
310  int32 GetQuestLevel() const { return Level; }
311  uint32 GetQuestInfoID() const { return QuestInfoID; }
312  uint32 GetAllowableClasses() const { return AllowableClasses; }
313  int32 GetAllowableRaces() const { return AllowableRaces; }
314  uint32 GetRequiredSkill() const { return RequiredSkillId; }
315  uint32 GetRequiredSkillValue() const { return RequiredSkillPoints; }
316  uint32 GetRequiredMinRepFaction() const { return RequiredMinRepFaction; }
317  int32 GetRequiredMinRepValue() const { return RequiredMinRepValue; }
318  uint32 GetRequiredMaxRepFaction() const { return RequiredMaxRepFaction; }
319  int32 GetRequiredMaxRepValue() const { return RequiredMaxRepValue; }
320  uint32 GetSuggestedPlayers() const { return SuggestedPlayers; }
321  uint32 GetLimitTime() const { return LimitTime; }
322  int32 GetPrevQuestId() const { return PrevQuestID; }
323  int32 GetNextQuestId() const { return NextQuestID; }
324  int32 GetExclusiveGroup() const { return ExclusiveGroup; }
325  uint32 GetNextQuestInChain() const { return NextQuestInChain; }
326  uint32 GetBonusTalents() const { return RewardTalents; }
327  int32 GetRewArenaPoints() const {return RewardArenaPoints; }
328  uint32 GetXPDifficulty() const { return RewardXPDifficulty; }
329  float GetXPMultiplier() const { return RewardXPMultiplier; }
330  float GetMoneyMultiplier() const { return RewardMoneyMultiplier; }
331  uint32 GetSrcItemId() const { return SourceItemId; }
332  uint32 GetSrcItemCount() const { return SourceItemIdCount; }
333  uint32 GetSrcSpell() const { return SourceSpellID; }
334  std::string const& GetLogTitle() const { return LogTitle; }
335  std::string const& GetLogDescription() const { return LogDescription; }
336  std::string const& GetQuestDescription() const { return QuestDescription; }
337  std::string const& GetAreaDescription() const { return AreaDescription; }
338  std::string const& GetOfferRewardText() const { return OfferRewardText; }
339  std::string const& GetRequestItemsText() const { return RequestItemsText; }
340  std::string const& GetQuestCompletionLog() const { return QuestCompletionLog; }
341  std::string const& GetPortraitGiverText() const { return PortraitGiverText; }
342  std::string const& GetPortraitGiverName() const { return PortraitGiverName; }
343  std::string const& GetPortraitTurnInText() const { return PortraitTurnInText; }
344  std::string const& GetPortraitTurnInName() const { return PortraitTurnInName; }
345  QuestObjectives const& GetObjectives() const { return Objectives; }
346  uint32 GetRewMoneyDifficulty() const { return RewardMoneyDifficulty; }
347  uint32 GetRewHonor() const { return RewardHonor; }
348  uint32 GetRewKillHonor() const { return RewardKillHonor; }
349  uint32 GetRewMoneyMaxLevel() const; // use in XP calculation at client
350  uint32 GetRewSpell() const { return RewardSpell; }
351  int32 GetRewDisplaySpell() const { return RewardDisplaySpell; }
352  uint32 GetRewMailTemplateId() const { return RewardMailTemplateId; }
353  uint32 GetRewMailDelaySecs() const { return RewardMailDelay; }
354  uint32 GetRewTitle() const { return RewardTitleId; }
355  uint32 GetPOIContinent() const { return POIContinent; }
356  float GetPOIx() const { return POIx; }
357  float GetPOIy() const { return POIy; }
358  uint32 GetPOIPriority() const { return POIPriority; }
359  uint32 GetSoundAccept() const { return SoundAccept; }
360  uint32 GetSoundTurnIn() const { return SoundTurnIn; }
361  uint32 GetIncompleteEmote() const { return EmoteOnIncomplete; }
362  uint32 GetCompleteEmote() const { return EmoteOnComplete; }
363  bool IsRepeatable() const { return SpecialFlags & QUEST_SPECIAL_FLAGS_REPEATABLE; }
364  bool IsAutoAccept() const;
365  bool IsAutoComplete() const;
366  uint32 GetFlags() const { return Flags; }
367  uint32 GetFlagsEx() const { return FlagsEx; }
368  uint32 GetSpecialFlags() const { return SpecialFlags; }
369  uint32 GetAreaGroupID() const { return AreaGroupID; }
370  uint32 GetRewardSkillId() const { return RewardSkillId; }
371  uint32 GetRewardSkillPoints() const { return RewardSkillPoints; }
372  uint32 GetRewardReputationMask() const { return RewardReputationMask; }
373  uint32 GetQuestGiverPortrait() const { return QuestGiverPortrait; }
374  uint32 GetQuestTurnInPortrait() const { return QuestTurnInPortrait; }
375  bool IsDaily() const { return (Flags & QUEST_FLAGS_DAILY) != 0; }
376  bool IsWeekly() const { return (Flags & QUEST_FLAGS_WEEKLY) != 0; }
377  bool IsMonthly() const { return (SpecialFlags & QUEST_SPECIAL_FLAGS_MONTHLY) != 0; }
378  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(); }
379  bool IsDailyOrWeekly() const { return (Flags & (QUEST_FLAGS_DAILY | QUEST_FLAGS_WEEKLY)) != 0; }
380  bool IsRaidQuest(Difficulty difficulty) const;
381  bool IsAllowedInRaid(Difficulty difficulty) const;
382  bool IsDFQuest() const { return (SpecialFlags & QUEST_SPECIAL_FLAGS_DF_QUEST) != 0; }
383  uint32 CalculateHonorGain(uint8 level) const;
384 
385  uint32 GetRewChoiceItemsCount() const { return _rewChoiceItemsCount; }
386  uint32 GetRewItemsCount() const { return _rewItemsCount; }
387  uint32 GetRewCurrencyCount() const { return _rewCurrencyCount; }
388 
389  void BuildQuestRewards(WorldPackets::Quest::QuestRewards& rewards, Player* player) const;
390 
391  typedef std::vector<int32> PrevQuests;
392  PrevQuests prevQuests;
393  typedef std::vector<uint32> PrevChainQuests;
394  PrevChainQuests prevChainQuests;
395 
396  private:
400 
401  public:
402  // wdb data (quest query response)
426  uint32 RewardItemCount[QUEST_REWARD_ITEM_COUNT];
428  uint32 ItemDropQuantity[QUEST_ITEM_DROP_COUNT];
429  uint32 RewardChoiceItemId[QUEST_REWARD_CHOICES_COUNT];
430  uint32 RewardChoiceItemCount[QUEST_REWARD_CHOICES_COUNT];
431  uint32 RewardChoiceItemDisplayId[QUEST_REWARD_CHOICES_COUNT];
433  float POIx;
434  float POIy;
445  int32 RewardFactionOverride[QUEST_REWARD_REPUTATIONS_COUNT];
448  uint32 RewardCurrencyCount[QUEST_REWARD_CURRENCY_COUNT];
455  std::string LogTitle;
456  std::string LogDescription;
457  std::string QuestDescription;
458  std::string AreaDescription;
459  std::string PortraitGiverText;
460  std::string PortraitGiverName;
461  std::string PortraitTurnInText;
462  std::string PortraitTurnInName;
463  std::string QuestCompletionLog;
464 
465  protected:
466 
467  // quest_detais table
468  uint32 DetailsEmote[QUEST_EMOTE_COUNT] = {};
469  uint32 DetailsEmoteDelay[QUEST_EMOTE_COUNT] = {};
470 
471  // quest_request_items table
472  uint32 EmoteOnComplete = 0;
473  uint32 EmoteOnIncomplete = 0;
474  uint32 EmoteOnCompleteDelay = 0;
475  uint32 EmoteOnIncompleteDelay = 0;
476  std::string RequestItemsText;
477 
478  // quest_offer_reward table
479  uint32 OfferRewardEmote[QUEST_EMOTE_COUNT] = {};
480  uint32 OfferRewardEmoteDelay[QUEST_EMOTE_COUNT] = {};
481  std::string OfferRewardText;
482 
483  // quest_template_addon table (custom data)
484  uint32 MaxLevel = 0;
485  uint32 AllowableClasses = 0;
486  uint32 SourceSpellID = 0;
487  int32 PrevQuestID = 0;
488  int32 NextQuestID = 0;
489  int32 ExclusiveGroup = 0;
490  uint32 RewardMailTemplateId = 0;
491  uint32 RewardMailDelay = 0;
492  uint32 RequiredSkillId = 0;
493  uint32 RequiredSkillPoints = 0;
494  uint32 RequiredMinRepFaction = 0;
495  int32 RequiredMinRepValue = 0;
496  uint32 RequiredMaxRepFaction = 0;
497  int32 RequiredMaxRepValue = 0;
498  uint32 SourceItemIdCount = 0;
499  uint32 SpecialFlags = 0; // custom flags, not sniffed/WDB
500 };
501 
503 {
505  {
506  }
507 
510  std::vector<int32> ObjectiveData;
511 };
512 
513 #endif
float GetXPMultiplier() const
Definition: QuestDef.h:329
uint32 GetRewChoiceItemsCount() const
Definition: QuestDef.h:385
Definition: QuestDef.h:128
std::vector< int32 > ObjectiveData
Definition: QuestDef.h:510
Definition: QuestDef.h:226
QuestSpecialFlags
Definition: QuestDef.h:197
Definition: QuestDef.h:174
uint32 GetRewTitle() const
Definition: QuestDef.h:354
uint32 RewardSkillId
Definition: QuestDef.h:439
Definition: QuestDef.h:111
uint32 GetRequiredSkill() const
Definition: QuestDef.h:314
Definition: QuestDef.h:115
int32 GetRewDisplaySpell() const
Definition: QuestDef.h:351
uint32 ID
Definition: QuestDef.h:403
Difficulty
Definition: DBCEnums.h:402
float POIy
Definition: QuestDef.h:434
Definition: QuestDef.h:147
std::string LogTitle
Definition: QuestDef.h:455
Definition: QuestDef.h:211
Definition: QuestDef.h:130
Definition: SharedDefines.h:3833
uint32 GetRewCurrencyCount() const
Definition: QuestDef.h:387
uint32 GetRewardReputationMask() const
Definition: QuestDef.h:372
Definition: QuestDef.h:75
Definition: QuestDef.h:81
Definition: QuestDef.h:231
Definition: QuestDef.h:98
Definition: QuestDef.h:201
Definition: QuestDef.h:102
Definition: QuestDef.h:58
int32 RewardMoney
Definition: QuestDef.h:414
int8_t int8
Definition: Define.h:148
Definition: QuestDef.h:93
std::string const & GetPortraitGiverText() const
Definition: QuestDef.h:341
Definition: QuestDef.h:221
std::string PortraitGiverName
Definition: QuestDef.h:460
uint32 GetPOIContinent() const
Definition: QuestDef.h:355
Definition: GossipDef.h:236
Definition: QuestDef.h:149
Definition: QuestDef.h:279
Definition: QuestDef.h:214
uint32 GetSuggestedPlayers() const
Definition: QuestDef.h:320
float RewardMoneyMultiplier
Definition: QuestDef.h:416
uint32 GetAllowableClasses() const
Definition: QuestDef.h:312
std::string const & GetQuestDescription() const
Definition: QuestDef.h:336
uint32 GetIncompleteEmote() const
Definition: QuestDef.h:361
Definition: QuestDef.h:209
uint32 GetQuestGiverPortrait() const
Definition: QuestDef.h:373
std::string OfferRewardText
Definition: QuestDef.h:481
Definition: QuestDef.h:96
Definition: QuestDef.h:74
uint32 Timer
Definition: QuestDef.h:509
int32 GetZoneOrSort() const
Definition: QuestDef.h:307
uint32 RewardSpell
Definition: QuestDef.h:419
Definition: QuestDef.h:125
uint32 RewardKillHonor
Definition: QuestDef.h:421
Definition: QuestDef.h:184
std::string const & GetPortraitGiverName() const
Definition: QuestDef.h:342
int32 GetRewArenaPoints() const
Definition: QuestDef.h:327
Definition: QuestDef.h:99
uint32 GetRewItemsCount() const
Definition: QuestDef.h:386
Definition: QuestDef.h:86
std::string LogDescription
Definition: QuestDef.h:456
Definition: QuestDef.h:133
Definition: QuestDef.h:261
Definition: SharedDefines.h:3830
Definition: QuestDef.h:77
Definition: QuestDef.h:502
#define QUEST_EMOTE_COUNT
Definition: QuestDef.h:50
StringVector OfferRewardText
Definition: QuestDef.h:252
Class used to access individual fields of database query result.
Definition: Field.h:56
std::string const & GetRequestItemsText() const
Definition: QuestDef.h:339
uint32 SoundTurnIn
Definition: QuestDef.h:450
std::string QuestDescription
Definition: QuestDef.h:457
bool IsWeekly() const
Definition: QuestDef.h:376
uint32 GetFlags() const
Definition: QuestDef.h:366
QuestObjectives const & GetObjectives() const
Definition: QuestDef.h:345
Definition: QuestDef.h:154
Definition: QuestDef.h:158
Definition: QuestDef.h:239
uint32 GetRequiredMinRepFaction() const
Definition: QuestDef.h:316
StringVector AreaDescription
Definition: QuestDef.h:244
Definition: QuestDef.h:233
Definition: QuestDef.h:203
Definition: SharedDefines.h:3838
uint32 ID
Definition: QuestDef.h:263
Definition: QuestDef.h:63
float RewardXPMultiplier
Definition: QuestDef.h:413
QuestStatus
Definition: QuestDef.h:108
Definition: QuestDef.h:204
uint32 GetNextQuestInChain() const
Definition: QuestDef.h:325
Definition: QuestDef.h:136
int32 GetAllowableRaces() const
Definition: QuestDef.h:313
Definition: QuestDef.h:92
Definition: QuestDef.h:163
int8 StorageIndex
Definition: QuestDef.h:265
uint32 GetRewKillHonor() const
Definition: QuestDef.h:348
Definition: QuestDef.h:213
Definition: QuestDef.h:94
StringVector PortraitGiverText
Definition: QuestDef.h:245
Definition: QuestDef.h:224
Definition: QuestDef.h:212
Definition: QuestDef.h:188
int32 AllowableRaces
Definition: QuestDef.h:453
uint32 GetQuestTurnInPortrait() const
Definition: QuestDef.h:374
Definition: QuestDef.h:78
std::string PortraitTurnInName
Definition: QuestDef.h:462
bool IsSeasonal() const
Definition: QuestDef.h:378
uint32 POIContinent
Definition: QuestDef.h:432
Definition: QuestDef.h:141
Definition: QuestDef.h:132
Definition: QuestDef.h:117
std::string Description
Definition: QuestDef.h:270
uint32 GetSrcSpell() const
Definition: QuestDef.h:333
uint32 GetQuestPackageID() const
Definition: QuestDef.h:306
Definition: QuestDef.h:199
uint32 GetSpecialFlags() const
Definition: QuestDef.h:368
Definition: QuestDef.h:160
Definition: QuestDef.h:225
StringVector RequestItemsText
Definition: QuestDef.h:253
Definition: QuestDef.h:162
int32 GetRequiredMaxRepValue() const
Definition: QuestDef.h:319
bool IsDaily() const
Definition: QuestDef.h:375
uint32 PackageID
Definition: QuestDef.h:406
Definition: QuestDef.h:161
Definition: QuestDef.h:155
uint32 Flags
Definition: QuestDef.h:268
Definition: SharedDefines.h:3840
std::string AreaDescription
Definition: QuestDef.h:458
Definition: QuestDef.h:110
Definition: QuestDef.h:103
Definition: QuestDef.h:62
void SetFlag(uint32 flag)
Definition: QuestDef.h:298
Definition: QuestDef.h:183
uint32 RewardXPDifficulty
Definition: QuestDef.h:412
std::string const & GetOfferRewardText() const
Definition: QuestDef.h:338
uint32 GetRewHonor() const
Definition: QuestDef.h:347
uint32 GetFlagsEx() const
Definition: QuestDef.h:367
uint32 GetRewMoneyDifficulty() const
Definition: QuestDef.h:346
uint32 GetSrcItemCount() const
Definition: QuestDef.h:332
uint32 RewardTitleId
Definition: QuestDef.h:436
int32 RewardArenaPoints
Definition: QuestDef.h:438
uint32 QuestInfoID
Definition: QuestDef.h:409
QuestObjectiveType
Definition: QuestDef.h:218
bool IsMonthly() const
Definition: QuestDef.h:377
uint32 GetRewardSkillId() const
Definition: QuestDef.h:370
uint32 RewardHonor
Definition: QuestDef.h:420
#define QUEST_REWARD_CURRENCY_COUNT
Definition: QuestDef.h:51
Definition: QuestPackets.h:214
Definition: QuestDef.h:228
Definition: QuestDef.h:123
Definition: QuestDef.h:91
StringVector Description
Definition: QuestDef.h:258
uint32 RewardMoneyDifficulty
Definition: QuestDef.h:415
Definition: QuestDef.h:82
Definition: QuestDef.h:64
Definition: QuestDef.h:152
bool IsRepeatable() const
Definition: QuestDef.h:363
Definition: QuestDef.h:68
uint32 GetSrcItemId() const
Definition: QuestDef.h:331
Definition: QuestDef.h:126
Definition: QuestDef.h:61
QuestFailedReason
Definition: QuestDef.h:53
Definition: QuestDef.h:116
uint32 RewardDisplaySpell
Definition: QuestDef.h:418
Definition: QuestDef.h:65
uint32 GetBonusTalents() const
Definition: QuestDef.h:326
Definition: QuestDef.h:230
Definition: QuestDef.h:156
StringVector PortraitTurnInText
Definition: QuestDef.h:247
Definition: QuestDef.h:66
uint32 GetRequiredSkillValue() const
Definition: QuestDef.h:315
Definition: SharedDefines.h:3802
Definition: QuestDef.h:220
int32 QuestSortID
Definition: QuestDef.h:408
PrevChainQuests prevChainQuests
Definition: QuestDef.h:394
uint32 GetQuestId() const
Definition: QuestDef.h:304
uint32 RewardTalents
Definition: QuestDef.h:437
uint32 QuestGiverPortrait
Definition: QuestDef.h:441
Definition: QuestDef.h:143
uint32 POIPriority
Definition: QuestDef.h:435
std::string QuestCompletionLog
Definition: QuestDef.h:463
uint32 GetLimitTime() const
Definition: QuestDef.h:321
std::string const & GetPortraitTurnInName() const
Definition: QuestDef.h:344
std::vector< QuestObjective > QuestObjectives
Definition: QuestDef.h:274
Definition: QuestDef.h:55
uint32 GetRewMailDelaySecs() const
Definition: QuestDef.h:353
float GetPOIx() const
Definition: QuestDef.h:356
bool HasSpecialFlag(uint32 flag) const
Definition: QuestDef.h:300
std::string RequestItemsText
Definition: QuestDef.h:476
uint32 GetCompleteEmote() const
Definition: QuestDef.h:362
uint32 GetRewardSkillPoints() const
Definition: QuestDef.h:371
int32_t int32
Definition: Define.h:146
Definition: QuestDef.h:146
std::vector< int32 > VisualEffects
Definition: QuestDef.h:271
Definition: QuestDef.h:97
uint32 RewardBonusMoney
Definition: QuestDef.h:417
std::vector< uint32 > PrevChainQuests
Definition: QuestDef.h:393
Definition: ObjectMgr.h:702
uint32_t uint32
Definition: Define.h:150
StringVector PortraitTurnInName
Definition: QuestDef.h:248
Definition: QuestDef.h:101
uint32 GetQuestType() const
Definition: QuestDef.h:305
Definition: QuestDef.h:95
uint32 GetMaxLevel() const
Definition: QuestDef.h:309
std::string PortraitGiverText
Definition: QuestDef.h:459
std::string PortraitTurnInText
Definition: QuestDef.h:461
uint32 GetRewSpell() const
Definition: QuestDef.h:350
Definition: QuestDef.h:159
Definition: QuestDef.h:84
Definition: QuestDef.h:227
QuestGiverStatus
Definition: QuestDef.h:120
Definition: QuestDef.h:104
Definition: QuestDef.h:157
Definition: QuestDef.h:153
uint32 SuggestedPlayers
Definition: QuestDef.h:410
Definition: QuestDef.h:176
Definition: QuestDef.h:145
uint32 GetAreaGroupID() const
Definition: QuestDef.h:369
Definition: QuestDef.h:76
Definition: QuestDef.h:181
Definition: QuestDef.h:144
Definition: BattlegroundMgr.h:57
Definition: QuestDef.h:73
int32 ObjectID
Definition: QuestDef.h:266
Definition: SharedDefines.h:3834
Definition: QuestDef.h:127
Definition: QuestDef.h:173
std::string const & GetPortraitTurnInText() const
Definition: QuestDef.h:343
Definition: QuestDef.h:142
Definition: QuestDef.h:59
Definition: QuestDef.h:175
Definition: QuestDef.h:100
uint32 _rewChoiceItemsCount
Definition: QuestDef.h:397
float GetPOIy() const
Definition: QuestDef.h:357
Definition: QuestDef.h:229
Definition: QuestDef.h:131
void SetSpecialFlag(uint32 flag)
Definition: QuestDef.h:301
std::vector< int32 > PrevQuests
Definition: QuestDef.h:391
std::vector< std::string > StringVector
Definition: Common.h:142
std::string const & GetAreaDescription() const
Definition: QuestDef.h:337
Definition: QuestDef.h:83
StringVector PortraitGiverName
Definition: QuestDef.h:246
StringVector LogTitle
Definition: QuestDef.h:241
uint32 LimitTime
Definition: QuestDef.h:452
uint32 GetRequiredMaxRepFaction() const
Definition: QuestDef.h:318
uint32 GetSoundAccept() const
Definition: QuestDef.h:359
QuestPushReason
Definition: QuestDef.h:71
uint32 QuestTurnInPortrait
Definition: QuestDef.h:442
bool IsDFQuest() const
Definition: QuestDef.h:382
uint32 FlagsEx
Definition: QuestDef.h:424
Definition: QuestDef.h:189
Definition: QuestDef.h:79
QuestFlagsEx
Definition: QuestDef.h:171
#define QUEST_REWARD_CHOICES_COUNT
Definition: QuestDef.h:46
Definition: QuestDef.h:223
bool HasFlag(uint32 flag) const
Definition: QuestDef.h:297
uint32 RewardSkillPoints
Definition: QuestDef.h:440
#define TC_GAME_API
Definition: Define.h:134
int32 GetNextQuestId() const
Definition: QuestDef.h:323
uint32 GetQuestInfoID() const
Definition: QuestDef.h:311
QuestStatus Status
Definition: QuestDef.h:508
int32 GetRequiredMinRepValue() const
Definition: QuestDef.h:317
Definition: QuestDef.h:80
uint32 GetRewMailTemplateId() const
Definition: QuestDef.h:352
Definition: QuestDef.h:182
Definition: QuestDef.h:129
float POIx
Definition: QuestDef.h:433
Definition: QuestDef.h:234
Definition: QuestDef.h:113
uint32 SourceItemId
Definition: QuestDef.h:422
Definition: QuestDef.h:232
uint8_t uint8
Definition: Define.h:152
Definition: QuestDef.h:105
StringVector QuestCompletionLog
Definition: QuestDef.h:249
Definition: QuestDef.h:215
Definition: QuestDef.h:57
std::string const & GetLogTitle() const
Definition: QuestDef.h:334
Definition: QuestDef.h:56
Definition: QuestDef.h:124
uint32 GetXPDifficulty() const
Definition: QuestDef.h:328
#define QUEST_REWARD_ITEM_COUNT
Definition: QuestDef.h:47
Definition: QuestDef.h:85
int32 GetQuestLevel() const
Definition: QuestDef.h:310
Definition: QuestDef.h:222
Definition: QuestDef.h:60
int32 MinLevel
Definition: QuestDef.h:407
Definition: QuestDef.h:190
int32 GetMinLevel() const
Definition: QuestDef.h:308
Definition: QuestDef.h:150
int32 GetExclusiveGroup() const
Definition: QuestDef.h:324
uint32 NextQuestInChain
Definition: QuestDef.h:411
Definition: QuestDef.h:122
#define QUEST_ITEM_DROP_COUNT
Definition: QuestDef.h:45
StringVector QuestDescription
Definition: QuestDef.h:243
Type
Type of JSON value.
Definition: rapidjson.h:642
StringVector LogDescription
Definition: QuestDef.h:242
QuestTradeSkill
Definition: QuestDef.h:89
Definition: QuestDef.h:236
float GetMoneyMultiplier() const
Definition: QuestDef.h:330
float UnkFloat
Definition: QuestDef.h:269
PrevQuests prevQuests
Definition: QuestDef.h:392
uint32 AreaGroupID
Definition: QuestDef.h:451
uint32 _rewItemsCount
Definition: QuestDef.h:398
uint32 _rewCurrencyCount
Definition: QuestDef.h:399
QuestStatusData()
Definition: QuestDef.h:504
int32 GetPrevQuestId() const
Definition: QuestDef.h:322
Definition: QuestDef.h:256
std::string const & GetLogDescription() const
Definition: QuestDef.h:335
Definition: QuestDef.h:235
QuestFlags
Definition: QuestDef.h:139
int32 Amount
Definition: QuestDef.h:267
uint32 RewardReputationMask
Definition: QuestDef.h:446
uint32 SoundAccept
Definition: QuestDef.h:449
Definition: QuestDef.h:206
QuestObjectives Objectives
Definition: QuestDef.h:454
uint32 GetSoundTurnIn() const
Definition: QuestDef.h:360
bool IsDailyOrWeekly() const
Definition: QuestDef.h:379
uint32 GetPOIPriority() const
Definition: QuestDef.h:358
#define QUEST_REWARD_REPUTATIONS_COUNT
Definition: QuestDef.h:49
Definition: QuestDef.h:148
std::string const & GetQuestCompletionLog() const
Definition: QuestDef.h:340
uint32 Type
Definition: QuestDef.h:404
int32 Level
Definition: QuestDef.h:405
Definition: SharedDefines.h:3824
Definition: QuestDef.h:187
Definition: QuestDef.h:205
uint32 Flags
Definition: QuestDef.h:423
Definition: QuestDef.h:67
Definition: QuestDef.h:151