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 "DBCEnums.h"
24#include "SharedDefines.h"
25#include "UniqueTrackablePtr.h"
26#include "WorldPacket.h"
27#include <vector>
28
29class Player;
30
32{
33 struct QuestRewards;
34}
35
36#define MAX_QUEST_LOG_SIZE 25
37
38#define QUEST_OBJECTIVES_COUNT 4
39#define QUEST_ITEM_OBJECTIVES_COUNT 6
40#define QUEST_ITEM_DROP_COUNT 4
41#define QUEST_REWARD_CHOICES_COUNT 6
42#define QUEST_REWARD_ITEM_COUNT 4
43#define QUEST_REWARD_REPUTATIONS_COUNT 5
44#define QUEST_EMOTE_COUNT 4
45#define QUEST_PVP_KILL_SLOT 0
46
47// EnumUtils: DESCRIBE THIS
49{
51 INVALIDREASON_QUEST_FAILED_LOW_LEVEL = 1, // DESCRIPTION You are not high enough level for that quest.
52 INVALIDREASON_QUEST_FAILED_WRONG_RACE = 6, // DESCRIPTION That quest is not available to your race.
53 INVALIDREASON_QUEST_ALREADY_DONE = 7, // DESCRIPTION You have completed that quest.
54 INVALIDREASON_QUEST_ONLY_ONE_TIMED = 12, // DESCRIPTION You can only be on one timed quest at a time.
55 INVALIDREASON_QUEST_ALREADY_ON = 13, // DESCRIPTION You are already on that quest.
56 INVALIDREASON_QUEST_FAILED_EXPANSION = 16, // DESCRIPTION This quest requires an expansion enabled account.
57 INVALIDREASON_QUEST_ALREADY_ON2 = 18, // DESCRIPTION You are already on that quest.
58 INVALIDREASON_QUEST_FAILED_MISSING_ITEMS = 21, // DESCRIPTION You don't have the required items with you. Check storage.
59 INVALIDREASON_QUEST_FAILED_NOT_ENOUGH_MONEY = 23, // DESCRIPTION You don't have enough money for that quest.
60 INVALIDREASON_DAILY_QUESTS_REMAINING = 26, // DESCRIPTION You have already completed 25 daily quests today.
61 INVALIDREASON_QUEST_FAILED_CAIS = 27, // DESCRIPTION You cannot complete quests once you have reached tired time.
62 INVALIDREASON_DAILY_QUEST_COMPLETED_TODAY = 29 // DESCRIPTION You have completed that daily quest today.
63};
64
65// EnumUtils: DESCRIBE THIS
81
100
102{
105 //QUEST_STATUS_UNAVAILABLE = 2,
107 //QUEST_STATUS_AVAILABLE = 4,
109 QUEST_STATUS_REWARDED = 6, // Not used in DB
112
127
129{
130 // Flags used at server and sent to client
131 QUEST_FLAGS_NONE = 0x00000000,
132 QUEST_FLAGS_STAY_ALIVE = 0x00000001, // Not used currently
133 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
134 QUEST_FLAGS_EXPLORATION = 0x00000004, // Not used currently
135 QUEST_FLAGS_SHARABLE = 0x00000008, // Can be shared: Player::CanShareQuest()
136 QUEST_FLAGS_HAS_CONDITION = 0x00000010, // Not used currently
137 QUEST_FLAGS_HIDE_REWARD_POI = 0x00000020, // Not used currently: Unsure of content
138 QUEST_FLAGS_RAID = 0x00000040, // Can be completed while in raid
139 QUEST_FLAGS_TBC = 0x00000080, // Not used currently: Available if TBC expansion enabled only
140 QUEST_FLAGS_NO_MONEY_FROM_XP = 0x00000100, // Not used currently: Experience is not converted to gold at max level
141 QUEST_FLAGS_HIDDEN_REWARDS = 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))
142 QUEST_FLAGS_TRACKING = 0x00000400, // These quests are automatically rewarded on quest complete and they will never appear in quest log client side.
143 QUEST_FLAGS_DEPRECATE_REPUTATION = 0x00000800, // Not used currently
144 QUEST_FLAGS_DAILY = 0x00001000, // Used to know quest is Daily one
145 QUEST_FLAGS_FLAGS_PVP = 0x00002000, // Having this quest in log forces PvP flag
146 QUEST_FLAGS_UNAVAILABLE = 0x00004000, // Used on quests that are not generically available
147 QUEST_FLAGS_WEEKLY = 0x00008000,
148 QUEST_FLAGS_AUTOCOMPLETE = 0x00010000, // Quests with this flag cause the client to automatically send CMSG_QUESTGIVER_COMPLETE_QUEST after accepting if the quest has any objectives and they are completed before accepting (none of 3.3.5a quests fit this criteria)
149 QUEST_FLAGS_DISPLAY_ITEM_IN_TRACKER = 0x00020000, // Displays usable item in quest tracker
150 QUEST_FLAGS_OBJ_TEXT = 0x00040000, // use Objective text as Complete text
151 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.
152
153 // ... 4.x added flags up to 0x80000000 - all unknown for now
154};
155
157{
159 // Trinity flags for set SpecialFlags in DB if required but used only at server
160 QUEST_SPECIAL_FLAGS_REPEATABLE = 0x001, // Set by 1 in SpecialFlags from DB
161 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)
162 QUEST_SPECIAL_FLAGS_AUTO_ACCEPT = 0x004, // Set by 4 in SpecialFlags in DB if the quest is to be auto-accepted.
163 QUEST_SPECIAL_FLAGS_DF_QUEST = 0x008, // Set by 8 in SpecialFlags in DB if the quest is used by Dungeon Finder.
164 QUEST_SPECIAL_FLAGS_MONTHLY = 0x010, // Set by 16 in SpecialFlags in DB if the quest is reset at the begining of the month
165 QUEST_SPECIAL_FLAGS_CAST = 0x020, // Set by 32 in SpecialFlags in DB if the quest requires RequiredOrNpcGo killcredit but NOT kill (a spell cast)
166 // room for more custom flags
167
169
170 QUEST_SPECIAL_FLAGS_DELIVER = 0x080, // Internal flag computed only
171 QUEST_SPECIAL_FLAGS_SPEAKTO = 0x100, // Internal flag computed only
172 QUEST_SPECIAL_FLAGS_KILL = 0x200, // Internal flag computed only
173 QUEST_SPECIAL_FLAGS_TIMED = 0x400, // Internal flag computed only
174 QUEST_SPECIAL_FLAGS_PLAYER_KILL = 0x800, // Internal flag computed only
175 QUEST_SPECIAL_FLAGS_COMPLETED_AT_START = 0x1000 // Internal flag computed only
177
179{
180 std::vector<std::string> LogTitle;
181 std::vector<std::string> LogDescription;
182 std::vector<std::string> QuestDescription;
183 std::vector<std::string> AreaDescription;
184 std::vector<std::string> QuestCompletionLog;
185 std::array<std::vector<std::string>, QUEST_OBJECTIVES_COUNT> ObjectiveText;
186};
187
189{
190 std::vector<std::string> CompletionText;
191};
192
194{
195 std::vector<std::string> RewardText;
196};
197
198// This Quest class provides a convenient way to access a few pretotaled (cached) quest details,
199// all base quest information, and any utility functions such as generating the amount of
200// xp to give
202{
203 friend class ObjectMgr;
204 public:
205 // Loading data. All queries are in ObjectMgr::LoadQuests()
206 Quest(Field* questRecord);
207 void LoadQuestDetails(Field* fields);
208 void LoadQuestRequestItems(Field* fields);
209 void LoadQuestOfferReward(Field* fields);
210 void LoadQuestTemplateAddon(Field* fields);
211 void LoadQuestMailSender(Field* fields);
212
213 uint32 GetXPReward(Player const* player) const;
214 int32 GetRewOrReqMoney(Player const* player = nullptr) const;
215
216 bool HasFlag(QuestFlags flag) const { return (_flags & flag) != 0; }
217
218 bool HasSpecialFlag(QuestSpecialFlags flag) const { return (_specialFlags & flag) != 0; }
219 void SetSpecialFlag(QuestSpecialFlags flag) { _specialFlags |= flag; }
220
221 // Possibly deprecated flag
222 bool IsUnavailable() const { return HasFlag(QUEST_FLAGS_UNAVAILABLE); }
223
224 // whether the quest is globally enabled (spawned by pool, game event active etc.)
225 static bool IsTakingQuestEnabled(uint32 questId);
226
227 // table data accessors:
228 uint32 GetQuestId() const { return _id; }
229 uint32 GetQuestType() const { return _type; }
230 int32 GetZoneOrSort() const { return _zoneOrSort; }
231 uint32 GetMinLevel() const { return _minLevel; }
232 uint32 GetMaxLevel() const { return _maxLevel; }
233 int32 GetQuestLevel() const { return _level; }
234 uint32 GetQuestInfoID() const { return _questInfoID; }
235 uint32 GetAllowableClasses() const { return _allowableClasses; }
236 uint32 GetAllowableRaces() const { return _allowableRaces; }
237 uint32 GetRequiredSkill() const { return _requiredSkillId; }
238 uint32 GetRequiredSkillValue() const { return _requiredSkillPoints; }
239 uint32 GetRepObjectiveFaction() const { return _requiredFactionId1; }
240 int32 GetRepObjectiveValue() const { return _requiredFactionValue1; }
241 uint32 GetRepObjectiveFaction2() const { return _requiredFactionId2; }
242 int32 GetRepObjectiveValue2() const { return _requiredFactionValue2; }
243 uint32 GetRequiredMinRepFaction() const { return _requiredMinRepFaction; }
244 int32 GetRequiredMinRepValue() const { return _requiredMinRepValue; }
245 uint32 GetRequiredMaxRepFaction() const { return _requiredMaxRepFaction; }
246 int32 GetRequiredMaxRepValue() const { return _requiredMaxRepValue; }
247 uint32 GetSuggestedPlayers() const { return _suggestedPlayers; }
248 uint32 GetLimitTime() const { return _limitTime; }
249 int32 GetPrevQuestId() const { return _prevQuestID; }
250 uint32 GetNextQuestId() const { return _nextQuestID; }
251 int32 GetExclusiveGroup() const { return _exclusiveGroup; }
252 int32 GetBreadcrumbForQuestId() const { return _breadcrumbForQuestId; }
253 uint32 GetNextQuestInChain() const { return _rewardNextQuest; }
254 uint32 GetPlayersSlain() const { return _requiredPlayerKills; }
255 uint32 GetBonusTalents() const { return _rewardTalents; }
256 int32 GetRewArenaPoints() const { return _rewardArenaPoints; }
257 uint32 GetXPDifficulty() const { return _rewardXPDifficulty; }
258 uint32 GetSrcItemId() const { return _sourceItemId; }
259 uint32 GetSrcItemCount() const { return _sourceItemIdCount; }
260 uint32 GetSrcSpell() const { return _sourceSpellID; }
261 std::string const& GetLogTitle() const { return _logTitle; }
262 std::string const& GetLogDescription() const { return _logDescription; }
263 std::string const& GetQuestDescription() const { return _questDescription; }
264 std::string const& GetAreaDescription() const { return _areaDescription; }
265 std::string const& GetOfferRewardText() const { return _offerRewardText; }
266 std::string const& GetRequestItemsText() const { return _requestItemsText; }
267 std::string const& GetQuestCompletionLog() const { return _questCompletionLog; }
268 uint32 GetRewHonor() const { return _rewardHonor; }
269 uint32 GetRewKillHonor() const { return _rewardKillHonor; }
270 uint32 GetRewMoneyMaxLevel() const; // use in XP calculation at client
271 uint32 GetRewDisplaySpell() const { return _rewardDisplaySpell; }
272 int32 GetRewSpell() const { return _rewardSpell; }
273 uint32 GetRewMailTemplateId() const { return _rewardMailTemplateId; }
274 uint32 GetRewMailDelaySecs() const { return _rewardMailDelay; }
275 uint32 GetRewMailSenderEntry() const { return _rewardMailSenderEntry; }
276 uint32 GetRewTitle() const { return _rewardTitleId; }
277 uint32 GetPOIContinent() const { return _poiContinent; }
278 float GetPOIx() const { return _poiX; }
279 float GetPOIy() const { return _poiY; }
280 uint32 GetPOIPriority() const { return _poiPriority; }
281 uint32 GetIncompleteEmote() const { return _emoteOnIncomplete; }
282 uint32 GetCompleteEmote() const { return _emoteOnComplete; }
283 uint32 GetIncompleteEmoteDelay() const { return _emoteOnIncompleteDelay; }
284 uint32 GetCompleteEmoteDelay() const { return _emoteOnCompleteDelay; }
285 bool IsRepeatable() const { return _specialFlags & QUEST_SPECIAL_FLAGS_REPEATABLE; }
286 bool IsAutoAccept() const;
287 bool IsAutoComplete() const;
288 uint32 GetFlags() const { return _flags; }
289 uint32 GetSpecialFlags() const { return _specialFlags; }
290 uint32 GetRewardReputationMask() const { return _rewardReputationMask; }
291 bool IsDaily() const { return (_flags & QUEST_FLAGS_DAILY) != 0; }
292 bool IsWeekly() const { return (_flags & QUEST_FLAGS_WEEKLY) != 0; }
293 bool IsMonthly() const { return (_specialFlags & QUEST_SPECIAL_FLAGS_MONTHLY) != 0; }
294 bool IsSeasonal() const { return (_zoneOrSort == -QUEST_SORT_SEASONAL || _zoneOrSort == -QUEST_SORT_SPECIAL || _zoneOrSort == -QUEST_SORT_LUNAR_FESTIVAL || _zoneOrSort == -QUEST_SORT_MIDSUMMER || _zoneOrSort == -QUEST_SORT_BREWFEST || _zoneOrSort == -QUEST_SORT_LOVE_IS_IN_THE_AIR || _zoneOrSort == -QUEST_SORT_NOBLEGARDEN) && !IsRepeatable(); }
295 bool IsDailyOrWeekly() const { return (_flags & (QUEST_FLAGS_DAILY | QUEST_FLAGS_WEEKLY)) != 0; }
296 bool IsRaidQuest(Difficulty difficulty) const;
297 bool IsAllowedInRaid(Difficulty difficulty) const;
298 bool IsDFQuest() const { return (_specialFlags & QUEST_SPECIAL_FLAGS_DF_QUEST) != 0; }
299 uint32 CalculateHonorGain(uint8 level) const;
300 bool CanIncreaseRewardedQuestCounters() const;
301
302 // multiple values
303 std::array<std::string, QUEST_OBJECTIVES_COUNT> ObjectiveText;
304 std::array<uint32, QUEST_ITEM_OBJECTIVES_COUNT> RequiredItemId = { };
305 std::array<uint32, QUEST_ITEM_OBJECTIVES_COUNT> RequiredItemCount = { };
306 std::array<uint32, QUEST_ITEM_DROP_COUNT> ItemDrop = { };
307 std::array<uint32, QUEST_ITEM_DROP_COUNT> ItemDropQuantity = { };
308 std::array<int32, QUEST_OBJECTIVES_COUNT> RequiredNpcOrGo = { }; // >0 Creature <0 Gameobject
309 std::array<uint32, QUEST_OBJECTIVES_COUNT> RequiredNpcOrGoCount = { };
310 std::array<uint32, QUEST_REWARD_CHOICES_COUNT> RewardChoiceItemId = { };
311 std::array<uint32, QUEST_REWARD_CHOICES_COUNT> RewardChoiceItemCount = { };
312 std::array<uint32, QUEST_REWARD_ITEM_COUNT> RewardItemId = { };
313 std::array<uint32, QUEST_REWARD_ITEM_COUNT> RewardItemCount = { };
314 std::array<uint32, QUEST_REWARD_REPUTATIONS_COUNT> RewardFactionId = { };
315 std::array<int32, QUEST_REWARD_REPUTATIONS_COUNT> RewardFactionValue = { };
316 std::array<int32, QUEST_REWARD_REPUTATIONS_COUNT> RewardFactionOverride = { };
317 std::array<uint32, QUEST_EMOTE_COUNT> DetailsEmote = { };
318 std::array<uint32, QUEST_EMOTE_COUNT> DetailsEmoteDelay = { };
319 std::array<uint32, QUEST_EMOTE_COUNT> OfferRewardEmote = { };
320 std::array<uint32, QUEST_EMOTE_COUNT> OfferRewardEmoteDelay = { };
321
322 uint32 GetReqItemsCount() const { return _reqItemsCount; }
323 uint32 GetReqCreatureOrGOcount() const { return _reqCreatureOrGOcount; }
324 uint32 GetRewChoiceItemsCount() const { return _rewChoiceItemsCount; }
325 uint32 GetRewItemsCount() const { return _rewItemsCount; }
326
327 void SetEventIdForQuest(uint16 eventId) { _eventIdForQuest = eventId; }
328 uint16 GetEventIdForQuest() const { return _eventIdForQuest; }
329
330 static void AddQuestLevelToTitle(std::string& title, int32 level);
331 void InitializeQueryData();
332 WorldPacket BuildQueryData(LocaleConstant loc) const;
333
334 void BuildQuestRewards(WorldPackets::Quest::QuestRewards& rewards, Player* player, bool sendHiddenRewards = false) const;
335
336 // Helpers
337 static uint32 RoundXPValue(uint32 xp);
338
339 Trinity::unique_weak_ptr<Quest> GetWeakPtr() const { return _weakRef; }
340
341 std::vector<uint32> DependentPreviousQuests;
342 std::vector<uint32> DependentBreadcrumbQuests;
344
345 // cached data
346 private:
347 uint32 _reqItemsCount = 0;
348 uint32 _reqCreatureOrGOcount = 0;
349 uint32 _rewChoiceItemsCount = 0;
350 uint32 _rewItemsCount = 0;
351 uint16 _eventIdForQuest = 0;
352
353 // table data
354 uint32 _id = 0;
355 uint32 _type = 0;
356 int32 _zoneOrSort = 0;
357 uint32 _minLevel = 0;
358 int32 _level = 0;
359 uint32 _questInfoID = 0;
360 uint32 _allowableRaces = 0;
361 uint32 _requiredFactionId1 = 0;
362 int32 _requiredFactionValue1 = 0;
363 uint32 _requiredFactionId2 = 0;
364 int32 _requiredFactionValue2 = 0;
365 uint32 _suggestedPlayers = 0;
366 uint32 _limitTime = 0;
367 uint32 _flags = 0;
368 uint32 _rewardTitleId = 0;
369 uint32 _requiredPlayerKills = 0;
370 uint32 _rewardTalents = 0;
371 int32 _rewardArenaPoints = 0;
372 uint32 _rewardReputationMask = 0;
373 uint32 _rewardNextQuest = 0;
374 uint32 _rewardXPDifficulty = 0;
375 uint32 _sourceItemId = 0;
376 std::string _logTitle;
377 std::string _logDescription;
378 std::string _questDescription;
379 std::string _areaDescription;
381 uint32 _rewardHonor = 0;
382 float _rewardKillHonor = 0.f;
383 int32 _rewardMoney = 0;
384 uint32 _rewardBonusMoney = 0;
385 uint32 _rewardDisplaySpell = 0;
386 int32 _rewardSpell = 0;
387 uint32 _poiContinent = 0;
388 float _poiX = 0.f;
389 float _poiY = 0.f;
390 uint32 _poiPriority = 0;
391
392 // quest_request_items table
393 uint32 _emoteOnComplete = 0;
394 uint32 _emoteOnIncomplete = 0;
395 uint32 _emoteOnCompleteDelay = 0;
396 uint32 _emoteOnIncompleteDelay = 0;
397 std::string _requestItemsText;
398
399 // quest_offer_reward table
400 std::string _offerRewardText;
401
402 // quest_template_addon table (custom data)
403 uint32 _maxLevel = 0;
404 uint32 _allowableClasses = 0;
405 uint32 _sourceSpellID = 0;
406 int32 _prevQuestID = 0;
407 uint32 _nextQuestID = 0;
408 int32 _exclusiveGroup = 0;
409 int32 _breadcrumbForQuestId = 0;
410 uint32 _rewardMailTemplateId = 0;
411 uint32 _rewardMailDelay = 0;
412 uint32 _requiredSkillId = 0;
413 uint32 _requiredSkillPoints = 0;
414 uint32 _requiredMinRepFaction = 0;
415 int32 _requiredMinRepValue = 0;
416 uint32 _requiredMaxRepFaction = 0;
417 int32 _requiredMaxRepValue = 0;
418 uint32 _sourceItemIdCount = 0;
419 uint32 _rewardMailSenderEntry = 0;
420 uint32 _specialFlags = 0; // custom flags, not sniffed/WDB
421
423};
424
434
435#endif
LocaleConstant
Definition Common.h:48
@ TOTAL_LOCALES
Definition Common.h:59
Difficulty
Definition DBCEnums.h:279
#define TC_GAME_API
Definition Define.h:114
uint8_t uint8
Definition Define.h:135
int32_t int32
Definition Define.h:129
uint16_t uint16
Definition Define.h:134
uint32_t uint32
Definition Define.h:133
QuestFailedReason
Definition QuestDef.h:49
@ INVALIDREASON_DONT_HAVE_REQ
Definition QuestDef.h:50
@ INVALIDREASON_QUEST_FAILED_CAIS
Definition QuestDef.h:61
@ INVALIDREASON_QUEST_ALREADY_ON2
Definition QuestDef.h:57
@ INVALIDREASON_QUEST_ALREADY_ON
Definition QuestDef.h:55
@ INVALIDREASON_QUEST_FAILED_MISSING_ITEMS
Definition QuestDef.h:58
@ INVALIDREASON_QUEST_FAILED_WRONG_RACE
Definition QuestDef.h:52
@ INVALIDREASON_DAILY_QUEST_COMPLETED_TODAY
Definition QuestDef.h:62
@ INVALIDREASON_QUEST_ALREADY_DONE
Definition QuestDef.h:53
@ INVALIDREASON_QUEST_ONLY_ONE_TIMED
Definition QuestDef.h:54
@ INVALIDREASON_QUEST_FAILED_NOT_ENOUGH_MONEY
Definition QuestDef.h:59
@ INVALIDREASON_QUEST_FAILED_LOW_LEVEL
Definition QuestDef.h:51
@ INVALIDREASON_DAILY_QUESTS_REMAINING
Definition QuestDef.h:60
@ INVALIDREASON_QUEST_FAILED_EXPANSION
Definition QuestDef.h:56
QuestTradeSkill
Definition QuestDef.h:83
@ QUEST_TRSKILL_ALCHEMY
Definition QuestDef.h:85
@ QUEST_TRSKILL_FISHING
Definition QuestDef.h:96
@ QUEST_TRSKILL_BLACKSMITHING
Definition QuestDef.h:86
@ QUEST_TRSKILL_TAILORING
Definition QuestDef.h:94
@ QUEST_TRSKILL_MINING
Definition QuestDef.h:95
@ QUEST_TRSKILL_HERBALISM
Definition QuestDef.h:91
@ QUEST_TRSKILL_JEWELCRAFTING
Definition QuestDef.h:98
@ QUEST_TRSKILL_SKINNING
Definition QuestDef.h:97
@ QUEST_TRSKILL_COOKING
Definition QuestDef.h:87
@ QUEST_TRSKILL_NONE
Definition QuestDef.h:84
@ QUEST_TRSKILL_ENGINEERING
Definition QuestDef.h:89
@ QUEST_TRSKILL_FIRSTAID
Definition QuestDef.h:90
@ QUEST_TRSKILL_ENCHANTING
Definition QuestDef.h:88
@ QUEST_TRSKILL_LEATHERWORKING
Definition QuestDef.h:92
@ QUEST_TRSKILL_POISONS
Definition QuestDef.h:93
#define QUEST_ITEM_OBJECTIVES_COUNT
Definition QuestDef.h:39
#define QUEST_OBJECTIVES_COUNT
Definition QuestDef.h:38
QuestFlags
Definition QuestDef.h:129
@ QUEST_FLAGS_TRACKING
Definition QuestDef.h:142
@ QUEST_FLAGS_PARTY_ACCEPT
Definition QuestDef.h:133
@ QUEST_FLAGS_FLAGS_PVP
Definition QuestDef.h:145
@ QUEST_FLAGS_DAILY
Definition QuestDef.h:144
@ QUEST_FLAGS_NONE
Definition QuestDef.h:131
@ QUEST_FLAGS_HIDE_REWARD_POI
Definition QuestDef.h:137
@ QUEST_FLAGS_NO_MONEY_FROM_XP
Definition QuestDef.h:140
@ QUEST_FLAGS_HIDDEN_REWARDS
Definition QuestDef.h:141
@ QUEST_FLAGS_WEEKLY
Definition QuestDef.h:147
@ QUEST_FLAGS_DISPLAY_ITEM_IN_TRACKER
Definition QuestDef.h:149
@ QUEST_FLAGS_HAS_CONDITION
Definition QuestDef.h:136
@ QUEST_FLAGS_AUTO_ACCEPT
Definition QuestDef.h:151
@ QUEST_FLAGS_TBC
Definition QuestDef.h:139
@ QUEST_FLAGS_STAY_ALIVE
Definition QuestDef.h:132
@ QUEST_FLAGS_SHARABLE
Definition QuestDef.h:135
@ QUEST_FLAGS_EXPLORATION
Definition QuestDef.h:134
@ QUEST_FLAGS_DEPRECATE_REPUTATION
Definition QuestDef.h:143
@ QUEST_FLAGS_UNAVAILABLE
Definition QuestDef.h:146
@ QUEST_FLAGS_AUTOCOMPLETE
Definition QuestDef.h:148
@ QUEST_FLAGS_RAID
Definition QuestDef.h:138
@ QUEST_FLAGS_OBJ_TEXT
Definition QuestDef.h:150
QuestGiverStatus
Definition QuestDef.h:114
@ DIALOG_STATUS_UNAVAILABLE
Definition QuestDef.h:116
@ DIALOG_STATUS_NONE
Definition QuestDef.h:115
@ DIALOG_STATUS_AVAILABLE
Definition QuestDef.h:123
@ DIALOG_STATUS_LOW_LEVEL_REWARD_REP
Definition QuestDef.h:118
@ DIALOG_STATUS_REWARD
Definition QuestDef.h:125
@ DIALOG_STATUS_LOW_LEVEL_AVAILABLE
Definition QuestDef.h:117
@ DIALOG_STATUS_REWARD_REP
Definition QuestDef.h:121
@ DIALOG_STATUS_REWARD2
Definition QuestDef.h:124
@ DIALOG_STATUS_INCOMPLETE
Definition QuestDef.h:120
@ DIALOG_STATUS_LOW_LEVEL_AVAILABLE_REP
Definition QuestDef.h:119
@ DIALOG_STATUS_AVAILABLE_REP
Definition QuestDef.h:122
QuestStatus
Definition QuestDef.h:102
@ QUEST_STATUS_REWARDED
Definition QuestDef.h:109
@ QUEST_STATUS_FAILED
Definition QuestDef.h:108
@ QUEST_STATUS_INCOMPLETE
Definition QuestDef.h:106
@ QUEST_STATUS_NONE
Definition QuestDef.h:103
@ MAX_QUEST_STATUS
Definition QuestDef.h:110
@ QUEST_STATUS_COMPLETE
Definition QuestDef.h:104
QuestShareMessages
Definition QuestDef.h:67
@ QUEST_PARTY_MSG_FINISH_QUEST
Definition QuestDef.h:75
@ QUEST_PARTY_MSG_CANT_TAKE_QUEST
Definition QuestDef.h:69
@ QUEST_PARTY_MSG_NOT_ELIGIBLE_TODAY
Definition QuestDef.h:79
@ QUEST_PARTY_MSG_BUSY
Definition QuestDef.h:72
@ QUEST_PARTY_MSG_ACCEPT_QUEST
Definition QuestDef.h:70
@ QUEST_PARTY_MSG_HAVE_QUEST
Definition QuestDef.h:74
@ QUEST_PARTY_MSG_SHARING_TIMER_EXPIRED
Definition QuestDef.h:77
@ QUEST_PARTY_MSG_CANT_BE_SHARED_TODAY
Definition QuestDef.h:76
@ QUEST_PARTY_MSG_SHARING_QUEST
Definition QuestDef.h:68
@ QUEST_PARTY_MSG_LOG_FULL
Definition QuestDef.h:73
@ QUEST_PARTY_MSG_NOT_IN_PARTY
Definition QuestDef.h:78
@ QUEST_PARTY_MSG_DECLINE_QUEST
Definition QuestDef.h:71
QuestSpecialFlags
Definition QuestDef.h:157
@ QUEST_SPECIAL_FLAGS_COMPLETED_AT_START
Definition QuestDef.h:175
@ QUEST_SPECIAL_FLAGS_CAST
Definition QuestDef.h:165
@ QUEST_SPECIAL_FLAGS_AUTO_ACCEPT
Definition QuestDef.h:162
@ QUEST_SPECIAL_FLAGS_TIMED
Definition QuestDef.h:173
@ QUEST_SPECIAL_FLAGS_DELIVER
Definition QuestDef.h:170
@ QUEST_SPECIAL_FLAGS_REPEATABLE
Definition QuestDef.h:160
@ QUEST_SPECIAL_FLAGS_KILL
Definition QuestDef.h:172
@ QUEST_SPECIAL_FLAGS_DB_ALLOWED
Definition QuestDef.h:168
@ QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT
Definition QuestDef.h:161
@ QUEST_SPECIAL_FLAGS_DF_QUEST
Definition QuestDef.h:163
@ QUEST_SPECIAL_FLAGS_NONE
Definition QuestDef.h:158
@ QUEST_SPECIAL_FLAGS_SPEAKTO
Definition QuestDef.h:171
@ QUEST_SPECIAL_FLAGS_MONTHLY
Definition QuestDef.h:164
@ QUEST_SPECIAL_FLAGS_PLAYER_KILL
Definition QuestDef.h:174
@ 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:92
int32 GetRewArenaPoints() const
Definition QuestDef.h:256
std::string _areaDescription
Definition QuestDef.h:379
int32 GetRepObjectiveValue() const
Definition QuestDef.h:240
uint16 GetEventIdForQuest() const
Definition QuestDef.h:328
uint32 GetSpecialFlags() const
Definition QuestDef.h:289
Trinity::unique_weak_ptr< Quest > _weakRef
Definition QuestDef.h:422
uint32 GetRewMailSenderEntry() const
Definition QuestDef.h:275
uint32 GetRewTitle() const
Definition QuestDef.h:276
int32 GetRepObjectiveValue2() const
Definition QuestDef.h:242
std::string const & GetQuestCompletionLog() const
Definition QuestDef.h:267
std::vector< uint32 > DependentBreadcrumbQuests
Definition QuestDef.h:342
uint32 GetRepObjectiveFaction() const
Definition QuestDef.h:239
uint32 GetReqItemsCount() const
Definition QuestDef.h:322
uint32 GetRewMailTemplateId() const
Definition QuestDef.h:273
bool HasSpecialFlag(QuestSpecialFlags flag) const
Definition QuestDef.h:218
uint32 GetRepObjectiveFaction2() const
Definition QuestDef.h:241
uint32 GetMaxLevel() const
Definition QuestDef.h:232
std::string const & GetRequestItemsText() const
Definition QuestDef.h:266
int32 GetRequiredMaxRepValue() const
Definition QuestDef.h:246
float GetPOIy() const
Definition QuestDef.h:279
int32 GetRequiredMinRepValue() const
Definition QuestDef.h:244
uint32 GetMinLevel() const
Definition QuestDef.h:231
bool IsUnavailable() const
Definition QuestDef.h:222
std::string _questDescription
Definition QuestDef.h:378
uint32 GetRewardReputationMask() const
Definition QuestDef.h:290
uint32 GetPOIContinent() const
Definition QuestDef.h:277
std::array< std::string, QUEST_OBJECTIVES_COUNT > ObjectiveText
Definition QuestDef.h:303
uint32 GetSrcItemCount() const
Definition QuestDef.h:259
bool IsDFQuest() const
Definition QuestDef.h:298
uint32 GetXPDifficulty() const
Definition QuestDef.h:257
std::string _requestItemsText
Definition QuestDef.h:397
uint32 GetLimitTime() const
Definition QuestDef.h:248
uint32 GetAllowableRaces() const
Definition QuestDef.h:236
uint32 GetSrcSpell() const
Definition QuestDef.h:260
uint32 GetRewDisplaySpell() const
Definition QuestDef.h:271
bool IsRepeatable() const
Definition QuestDef.h:285
int32 GetZoneOrSort() const
Definition QuestDef.h:230
int32 GetQuestLevel() const
Definition QuestDef.h:233
uint32 GetRewKillHonor() const
Definition QuestDef.h:269
uint32 GetRequiredMinRepFaction() const
Definition QuestDef.h:243
uint32 GetFlags() const
Definition QuestDef.h:288
int32 GetPrevQuestId() const
Definition QuestDef.h:249
uint32 GetPlayersSlain() const
Definition QuestDef.h:254
std::string const & GetLogTitle() const
Definition QuestDef.h:261
uint32 GetQuestType() const
Definition QuestDef.h:229
std::vector< uint32 > DependentPreviousQuests
Definition QuestDef.h:341
uint32 GetQuestId() const
Definition QuestDef.h:228
std::string _logTitle
Definition QuestDef.h:376
std::string _logDescription
Definition QuestDef.h:377
uint32 GetRequiredSkillValue() const
Definition QuestDef.h:238
uint32 GetIncompleteEmoteDelay() const
Definition QuestDef.h:283
uint32 GetRewMailDelaySecs() const
Definition QuestDef.h:274
bool IsDaily() const
Definition QuestDef.h:291
uint32 GetQuestInfoID() const
Definition QuestDef.h:234
int32 GetExclusiveGroup() const
Definition QuestDef.h:251
int32 GetRewSpell() const
Definition QuestDef.h:272
uint32 GetCompleteEmoteDelay() const
Definition QuestDef.h:284
int32 GetBreadcrumbForQuestId() const
Definition QuestDef.h:252
std::string const & GetOfferRewardText() const
Definition QuestDef.h:265
void SetEventIdForQuest(uint16 eventId)
Definition QuestDef.h:327
Trinity::unique_weak_ptr< Quest > GetWeakPtr() const
Definition QuestDef.h:339
std::string const & GetLogDescription() const
Definition QuestDef.h:262
void SetSpecialFlag(QuestSpecialFlags flag)
Definition QuestDef.h:219
uint32 GetRewItemsCount() const
Definition QuestDef.h:325
std::string const & GetAreaDescription() const
Definition QuestDef.h:264
uint32 GetRequiredSkill() const
Definition QuestDef.h:237
uint32 GetRewChoiceItemsCount() const
Definition QuestDef.h:324
uint32 GetIncompleteEmote() const
Definition QuestDef.h:281
uint32 GetRewHonor() const
Definition QuestDef.h:268
uint32 GetSrcItemId() const
Definition QuestDef.h:258
bool IsWeekly() const
Definition QuestDef.h:292
uint32 GetNextQuestId() const
Definition QuestDef.h:250
bool IsSeasonal() const
Definition QuestDef.h:294
bool IsDailyOrWeekly() const
Definition QuestDef.h:295
std::string _questCompletionLog
Definition QuestDef.h:380
uint32 GetReqCreatureOrGOcount() const
Definition QuestDef.h:323
float GetPOIx() const
Definition QuestDef.h:278
uint32 GetCompleteEmote() const
Definition QuestDef.h:282
std::string const & GetQuestDescription() const
Definition QuestDef.h:263
bool IsMonthly() const
Definition QuestDef.h:293
uint32 GetAllowableClasses() const
Definition QuestDef.h:235
uint32 GetBonusTalents() const
Definition QuestDef.h:255
bool HasFlag(QuestFlags flag) const
Definition QuestDef.h:216
std::string _offerRewardText
Definition QuestDef.h:400
uint32 GetPOIPriority() const
Definition QuestDef.h:280
uint32 GetRequiredMaxRepFaction() const
Definition QuestDef.h:245
uint32 GetNextQuestInChain() const
Definition QuestDef.h:253
uint32 GetSuggestedPlayers() const
Definition QuestDef.h:247
Trinity::unique_trackable_ptr companion class, replicating what std::weak_ptr is to std::shared_ptr.
std::array< std::vector< std::string >, QUEST_OBJECTIVES_COUNT > ObjectiveText
Definition QuestDef.h:185
std::vector< std::string > QuestCompletionLog
Definition QuestDef.h:184
std::vector< std::string > LogDescription
Definition QuestDef.h:181
std::vector< std::string > AreaDescription
Definition QuestDef.h:183
std::vector< std::string > LogTitle
Definition QuestDef.h:180
std::vector< std::string > QuestDescription
Definition QuestDef.h:182
std::vector< std::string > RewardText
Definition QuestDef.h:195
std::vector< std::string > CompletionText
Definition QuestDef.h:190
uint16 PlayerCount
Definition QuestDef.h:431
uint16 ItemCount[QUEST_ITEM_OBJECTIVES_COUNT]
Definition QuestDef.h:429
QuestStatus Status
Definition QuestDef.h:427
uint16 CreatureOrGOCount[QUEST_OBJECTIVES_COUNT]
Definition QuestDef.h:430