Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
QuestDef.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef SKYFIRESERVER_QUEST_H
7#define SKYFIRESERVER_QUEST_H
8
9#include "DatabaseEnv.h"
10#include "DBCEnums.h"
11#include "Define.h"
12#include "SharedDefines.h"
13#include "WorldPacket.h"
14
15#include <string>
16#include <vector>
17
18class Player;
19
20class ObjectMgr;
21
22#define MAX_QUEST_LOG_SIZE 25
23
24#define QUEST_SOURCE_ITEM_IDS_COUNT 4
25#define QUEST_REWARD_CHOICES_COUNT 6
26#define QUEST_REWARDS_COUNT 4
27#define QUEST_DEPLINK_COUNT 10
28#define QUEST_REPUTATIONS_COUNT 5
29#define QUEST_EMOTE_COUNT 4
30#define QUEST_REWARD_CURRENCY_COUNT 4
31#define QUEST_SOURCE_ITEM_COUNT 1
32
34{
36 INVALIDREASON_QUEST_FAILED_LOW_LEVEL = 1, // You are not high enough level for that quest.
37 INVALIDREASON_QUEST_FAILED_WRONG_RACE = 6, // That quest is not available to your race.
38 INVALIDREASON_QUEST_ALREADY_DONE = 7, // You have completed that quest.
39 INVALIDREASON_QUEST_ONLY_ONE_TIMED = 12, // You can only be on one timed quest at a time.
40 INVALIDREASON_QUEST_ALREADY_ON = 13, // You are already on that quest.
41 INVALIDREASON_QUEST_FAILED_EXPANSION = 16, // This quest requires an expansion enabled account.
42 INVALIDREASON_QUEST_ALREADY_ON2 = 18, // You are already on that quest.
43 INVALIDREASON_QUEST_FAILED_MISSING_ITEMS = 21, // You don't have the required items with you. Check storage.
44 INVALIDREASON_QUEST_FAILED_NOT_ENOUGH_MONEY = 23, // You don't have enough money for that quest.
45 INVALIDREASON_DAILY_QUESTS_REMAINING = 26, // You have already completed 25 daily quests today.
46 INVALIDREASON_QUEST_FAILED_CAIS = 27, // You cannot complete quests once you have reached tired time.
47 INVALIDREASON_DAILY_QUEST_COMPLETED_TODAY = 29 // You have completed that daily quest today.
48};
49
64
83
85{
88 //QUEST_STATUS_UNAVAILABLE = 2,
90 //QUEST_STATUS_AVAILABLE = 4,
92 QUEST_STATUS_REWARDED = 6, // Not used in DB
94};
95
111
113{
114 QUEST_FLAGS_NONE = 0x00000000,
115 QUEST_FLAGS_STAY_ALIVE = 0x00000001, // Not used currently
116 QUEST_FLAGS_START_EVENT_MUST_COMPLETE = 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
117 QUEST_FLAGS_COMPLETION_AREA_TRIGGER = 0x00000004, // Not used currently
118 QUEST_FLAGS_PUSHABLE = 0x00000008, // Can be shared: Player::CanShareQuest()
119 QUEST_FLAGS_HAS_CONDITION = 0x00000010, // Not used currently
120 QUEST_FLAGS_HIDE_REWARD_POI = 0x00000020, // Not used currently: Unsure of content
121 QUEST_FLAGS_RAID_GROUP = 0x00000040, // Not used currently
122 QUEST_FLAGS_EXPANSION_ONLY = 0x00000080, // Not used currently: Available if TBC expansion enabled only
123 QUEST_FLAGS_NO_MONEY_FROM_XP = 0x00000100, // Not used currently: Experience is not converted to gold at max level
124 QUEST_FLAGS_HIDE_REWARD = 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))
125 QUEST_FLAGS_TRACKING_EVENT = 0x00000400, // These quests are automatically rewarded on quest complete and they will never appear in quest log client side.
126 QUEST_FLAGS_DEPRECATE_REPUTATION = 0x00000800, // Not used currently
127 QUEST_FLAGS_DAILY = 0x00001000, // Used to know quest is Daily one
128 QUEST_FLAGS_FLAGS_PVP = 0x00002000, // Having this quest in log forces PvP flag
129 QUEST_FLAGS_DEPRECATED = 0x00004000, // Used on quests that are not generically available
130 QUEST_FLAGS_WEEKLY = 0x00008000,
131 QUEST_FLAGS_AUTOCOMPLETE = 0x00010000, // auto complete
132 QUEST_FLAGS_DISPLAY_ITEM_IN_TRACKER = 0x00020000, // Displays usable item in quest tracker
133 QUEST_FLAGS_DISABLE_COMPLETION_TEXT = 0x00040000, // use Objective text as Complete text
134 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.
135 QUEST_FLAGS_PLAYER_CAST_ACCEPT = 0x00100000, // Quests with this flag player submit automatically by special button in player gui
136 QUEST_FLAGS_PLAYER_CAST_COMPLETE = 0x00200000, // Automatically suggestion of accepting quest. Not from npc.
147};
148
169
171{
173 // Skyfire flags for set SpecialFlags in DB if required but used only at server
174 QUEST_SPECIAL_FLAGS_REPEATABLE = 0x001, // Set by 1 in SpecialFlags from DB
175 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)
176 QUEST_SPECIAL_FLAGS_AUTO_ACCEPT = 0x004, // Set by 4 in SpecialFlags in DB if the quest is to be auto-accepted.
177 QUEST_SPECIAL_FLAGS_DF_QUEST = 0x008, // Set by 8 in SpecialFlags in DB if the quest is used by Dungeon Finder.
178 QUEST_SPECIAL_FLAGS_MONTHLY = 0x010, // Set by 16 in SpecialFlags in DB if the quest is reset at the begining of the month
179 QUEST_SPECIAL_FLAGS_CAST = 0x020, // Set by 32 in SpecialFlags in DB if the quest requires RequiredOrNpcGo killcredit but NOT kill (a spell cast)
180 // room for more custom flags
181
183
184 //QUEST_SPECIAL_FLAGS_DELIVER = 0x080, // Internal flag computed only
185 //QUEST_SPECIAL_FLAGS_SPEAKTO = 0x100, // Internal flag computed only
186 //QUEST_SPECIAL_FLAGS_KILL = 0x200, // Internal flag computed only
187 QUEST_SPECIAL_FLAGS_TIMED = 0x400, // Internal flag computed only
188 //QUEST_SPECIAL_FLAGS_PLAYER_KILL = 0x800 // Internal flag computed only
189};
190
209
225
230
231typedef std::vector<uint32> VisualEffectVec;
232typedef std::vector<uint8> ObjectiveTypeCountVec;
233
235{
236 QuestObjective(uint32 id, uint8 index, uint8 type, uint32 objectId, int32 amount, uint32 flags, std::string description)
237 : Id(id), Index(index), Type(type), ObjectId(objectId), Amount(amount), Flags(flags), Description(description) { }
238
245 std::string Description;
247};
248
249typedef std::set<QuestObjective*> QuestObjectiveSet;
250
251// This Quest class provides a convenient way to access a few pretotaled (cached) quest details,
252// all base quest information, and any utility functions such as generating the amount of
253// xp to give
254class Quest
255{
256 friend class ObjectMgr;
257public:
258 Quest(Field* questRecord);
259 uint32 XPValue(Player* player) const;
260
261 bool HasFlag(uint32 flag) const { return (Flags & flag) != 0; }
262 void SetFlag(uint32 flag) { Flags |= flag; }
263 bool HasFlag2(uint32 flag) const { return (Flags2 & flag) != 0; }
264 void SetFlag2(uint32 flag) { Flags2 |= flag; }
265
266 bool HasSpecialFlag(uint32 flag) const { return (SpecialFlags & flag) != 0; }
267 void SetSpecialFlag(uint32 flag) { SpecialFlags |= flag; }
268
269 // table data accessors:
270 uint32 GetQuestId() const { return Id; }
271 uint32 GetQuestMethod() const { return Method; }
272 int32 GetZoneOrSort() const { return ZoneOrSort; }
273 uint32 GetMinLevel() const { return MinLevel; }
274 uint32 GetMaxLevel() const { return MaxLevel; }
275 int32 GetQuestLevel() const { return Level; }
276 uint32 GetType() const { return Type; }
286 uint32 GetLimitTime() const { return LimitTime; }
287 int32 GetPrevQuestId() const { return PrevQuestId; }
288 int32 GetNextQuestId() const { return NextQuestId; }
294 uint32 GetXPId() const { return RewardXPId; }
295 uint32 GetSrcItemId() const { return SourceItemId; }
296 uint32 GetSrcSpell() const { return SourceSpellid; }
297 std::string const& GetTitle() const { return Title; }
298 std::string const& GetDetails() const { return Details; }
299 std::string const& GetObjectives() const { return Objectives; }
300 std::string const& GetOfferRewardText() const { return OfferRewardText; }
301 std::string const& GetRequestItemsText() const { return RequestItemsText; }
302 std::string const& GetEndText() const { return EndText; }
303 std::string const& GetCompletedText() const { return CompletedText; }
304 std::string const& GetQuestGiverTextWindow() const { return QuestGiverTextWindow; }
305 std::string const& GetQuestGiverTargetName() const { return QuestGiverTargetName; }
306 std::string const& GetQuestTurnTextWindow() const { return QuestTurnTextWindow; }
307 std::string const& GetQuestTurnTargetName() const { return QuestTurnTargetName; }
308 int32 GetRewMoney() const;
311 uint32 GetRewMoneyMaxLevel() const; // use in XP calculation at client
312 uint32 GetRewSpell() const { return RewardSpell; }
316 uint32 GetPointMapId() const { return PointMapId; }
317 float GetPointX() const { return PointX; }
318 float GetPointY() const { return PointY; }
319 uint32 GetPointOpt() const { return PointOption; }
325 bool IsAutoAccept() const;
326 bool IsAutoComplete() const;
327 uint32 GetFlags() const { return Flags; }
328 uint32 GetFlags2() const { return Flags2; }
336 uint32 GetRewChoiceItemCount(uint32 itemId) const;
337 bool IsDaily() const { return Flags & QUEST_FLAGS_DAILY; }
338 bool IsWeekly() const { return Flags & QUEST_FLAGS_WEEKLY; }
342 bool IsRaidQuest(DifficultyID difficulty) const;
343 bool IsAllowedInRaid(DifficultyID difficulty) const;
345 bool IsRewChoiceItemValid(uint32 itemId) const;
346 uint32 CalculateHonorGain(uint8 level) const;
347
348 // multiple values
362 // 4.x
365
369 // 5.x
371
372 typedef std::vector<int32> PrevQuests;
374 typedef std::vector<uint32> PrevChainQuests;
376
377 // objective stuff
379
380 QuestObjective const* GetQuestObjective(uint32 objectiveId) const;
381 QuestObjective const* GetQuestObjectiveXIndex(uint8 index) const;
382 QuestObjective const* GetQuestObjectiveXObjectId(uint32 objectId) const;
383
386
387 // cached data
388private:
393
394 // table data
395protected:
425 std::string Title;
426 std::string Details;
427 std::string Objectives;
428 std::string OfferRewardText;
429 std::string RequestItemsText;
430 std::string EndText;
431 std::string CompletedText;
441 float PointX;
442 float PointY;
446 // new in 4.x
459 // new in 5.x
462
463 uint32 SpecialFlags; // custom flags, not sniffed/WDB
464};
465
474#endif
std::vector< std::string > StringVector
Definition Common.h:163
DifficultyID
Definition DBCEnums.h:330
std::int32_t int32
Definition Define.h:73
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
std::vector< uint32 > VisualEffectVec
Definition QuestDef.h:231
std::set< QuestObjective * > QuestObjectiveSet
Definition QuestDef.h:249
QuestShareMessages
Definition QuestDef.h:51
@ QUEST_PARTY_MSG_FINISH_QUEST
Definition QuestDef.h:59
@ QUEST_PARTY_MSG_CANT_TAKE_QUEST
Definition QuestDef.h:53
@ QUEST_PARTY_MSG_BUSY
Definition QuestDef.h:56
@ QUEST_PARTY_MSG_ACCEPT_QUEST
Definition QuestDef.h:54
@ QUEST_PARTY_MSG_HAVE_QUEST
Definition QuestDef.h:58
@ QUEST_PARTY_MSG_SHARING_TIMER_EXPIRED
Definition QuestDef.h:61
@ QUEST_PARTY_MSG_CANT_BE_SHARED_TODAY
Definition QuestDef.h:60
@ QUEST_PARTY_MSG_SHARING_QUEST
Definition QuestDef.h:52
@ QUEST_PARTY_MSG_LOG_FULL
Definition QuestDef.h:57
@ QUEST_PARTY_MSG_NOT_IN_PARTY
Definition QuestDef.h:62
@ QUEST_PARTY_MSG_DECLINE_QUEST
Definition QuestDef.h:55
#define QUEST_REWARDS_COUNT
Definition QuestDef.h:26
QuestFailedReason
Definition QuestDef.h:34
@ INVALIDREASON_DONT_HAVE_REQ
Definition QuestDef.h:35
@ INVALIDREASON_QUEST_FAILED_CAIS
Definition QuestDef.h:46
@ INVALIDREASON_QUEST_ALREADY_ON2
Definition QuestDef.h:42
@ INVALIDREASON_QUEST_ALREADY_ON
Definition QuestDef.h:40
@ INVALIDREASON_QUEST_FAILED_MISSING_ITEMS
Definition QuestDef.h:43
@ INVALIDREASON_QUEST_FAILED_WRONG_RACE
Definition QuestDef.h:37
@ INVALIDREASON_DAILY_QUEST_COMPLETED_TODAY
Definition QuestDef.h:47
@ INVALIDREASON_QUEST_ALREADY_DONE
Definition QuestDef.h:38
@ INVALIDREASON_QUEST_ONLY_ONE_TIMED
Definition QuestDef.h:39
@ INVALIDREASON_QUEST_FAILED_NOT_ENOUGH_MONEY
Definition QuestDef.h:44
@ INVALIDREASON_QUEST_FAILED_LOW_LEVEL
Definition QuestDef.h:36
@ INVALIDREASON_DAILY_QUESTS_REMAINING
Definition QuestDef.h:45
@ INVALIDREASON_QUEST_FAILED_EXPANSION
Definition QuestDef.h:41
QuestFlags2
Definition QuestDef.h:150
@ QUEST_FLAGS2_NO_GUILD_XP
Definition QuestDef.h:161
@ QUEST_FLAGS2_SUPPRESS_GOSSIP_ACCEPT
Definition QuestDef.h:154
@ QUEST_FLAGS2_LEGENDARY_QUEST
Definition QuestDef.h:160
@ QUEST_FLAGS2_DISALLOW_PLAYER_AS_QUESTGIVER
Definition QuestDef.h:155
@ QUEST_FLAGS2_KEEP_ADDITIONAL_ITEMS
Definition QuestDef.h:152
@ QUEST_FLAGS2_DISPLAY_SPEC_CHOICE_REWARDS
Definition QuestDef.h:157
@ QUEST_FLAGS2_REMOVE_FROM_LOG_ON_PERIDOIC_RESET
Definition QuestDef.h:158
@ QUEST_FLAGS2_SUPPRESS_GOSSIP_COMPLETE
Definition QuestDef.h:153
@ QUEST_FLAGS2_NO_CREDIT_FOR_PROXY
Definition QuestDef.h:166
@ QUEST_FLAGS2_RECAST_ACCEPT_SPELL_ON_LOGIN
Definition QuestDef.h:164
@ QUEST_FLAGS2_DISPLAY_AS_DAILY_QUEST
Definition QuestDef.h:167
@ QUEST_FLAGS2_NONE
Definition QuestDef.h:151
@ QUEST_FLAGS2_ACCOUNT_LEVEL_QUEST
Definition QuestDef.h:159
@ QUEST_FLAGS2_UPDATE_ZONE_AURAS
Definition QuestDef.h:165
@ QUEST_FLAGS2_NO_ABANDON_ON_ANY_OBJECTIVE_COMPLETE
Definition QuestDef.h:163
@ QUEST_FLAGS2_RESET_CACHE_ON_ACCEPT
Definition QuestDef.h:162
@ QUEST_FLAGS2_DISPLAY_CLASS_CHOICE_REWARDS
Definition QuestDef.h:156
QuestTradeSkill
Definition QuestDef.h:66
@ QUEST_TRSKILL_ALCHEMY
Definition QuestDef.h:68
@ QUEST_TRSKILL_FISHING
Definition QuestDef.h:79
@ QUEST_TRSKILL_BLACKSMITHING
Definition QuestDef.h:69
@ QUEST_TRSKILL_TAILORING
Definition QuestDef.h:77
@ QUEST_TRSKILL_MINING
Definition QuestDef.h:78
@ QUEST_TRSKILL_HERBALISM
Definition QuestDef.h:74
@ QUEST_TRSKILL_JEWELCRAFTING
Definition QuestDef.h:81
@ QUEST_TRSKILL_SKINNING
Definition QuestDef.h:80
@ QUEST_TRSKILL_COOKING
Definition QuestDef.h:70
@ QUEST_TRSKILL_NONE
Definition QuestDef.h:67
@ QUEST_TRSKILL_ENGINEERING
Definition QuestDef.h:72
@ QUEST_TRSKILL_FIRSTAID
Definition QuestDef.h:73
@ QUEST_TRSKILL_ENCHANTING
Definition QuestDef.h:71
@ QUEST_TRSKILL_LEATHERWORKING
Definition QuestDef.h:75
@ QUEST_TRSKILL_POISONS
Definition QuestDef.h:76
QuestObjectiveType
Definition QuestDef.h:192
@ QUEST_OBJECTIVE_TYPE_FACTION_REP2
Definition QuestDef.h:200
@ QUEST_OBJECTIVE_TYPE_PET_BATTLE_PVP
Definition QuestDef.h:206
@ QUEST_OBJECTIVE_TYPE_CURRENCY
Definition QuestDef.h:197
@ QUEST_OBJECTIVE_TYPE_ITEM
Definition QuestDef.h:194
@ QUEST_OBJECTIVE_TYPE_NPC
Definition QuestDef.h:193
@ QUEST_OBJECTIVE_TYPE_NPC_INTERACT
Definition QuestDef.h:196
@ QUEST_OBJECTIVE_TYPE_PET_BATTLE_ELITE
Definition QuestDef.h:205
@ QUEST_OBJECTIVE_TYPE_SPELL
Definition QuestDef.h:198
@ QUEST_OBJECTIVE_TYPE_PET_BATTLE_TAMER
Definition QuestDef.h:204
@ QUEST_OBJECTIVE_TYPE_END
Definition QuestDef.h:207
@ QUEST_OBJECTIVE_TYPE_FACTION_REP
Definition QuestDef.h:199
@ QUEST_OBJECTIVE_TYPE_DUMMY
Definition QuestDef.h:203
@ QUEST_OBJECTIVE_TYPE_MONEY
Definition QuestDef.h:201
@ QUEST_OBJECTIVE_TYPE_GO
Definition QuestDef.h:195
@ QUEST_OBJECTIVE_TYPE_PLAYER
Definition QuestDef.h:202
#define QUEST_EMOTE_COUNT
Definition QuestDef.h:29
#define QUEST_REWARD_CURRENCY_COUNT
Definition QuestDef.h:30
QuestFlags
Definition QuestDef.h:113
@ QUEST_FLAGS_PORTRAIT_FROM_LOG
Definition QuestDef.h:142
@ QUEST_FLAGS_DISABLE_COMPLETION_TEXT
Definition QuestDef.h:133
@ QUEST_FLAGS_PUSHABLE
Definition QuestDef.h:118
@ QUEST_FLAGS_FLAGS_PVP
Definition QuestDef.h:128
@ QUEST_FLAGS_RAID_GROUP
Definition QuestDef.h:121
@ QUEST_FLAGS_DAILY
Definition QuestDef.h:127
@ QUEST_FLAGS_UPDATE_PHASE_SHIFT
Definition QuestDef.h:137
@ QUEST_FLAGS_ITEM_GLOW_ON_COMPLETE
Definition QuestDef.h:145
@ QUEST_FLAGS_NONE
Definition QuestDef.h:114
@ QUEST_FLAGS_HIDE_REWARD_POI
Definition QuestDef.h:120
@ QUEST_FLAGS_NO_MONEY_FROM_XP
Definition QuestDef.h:123
@ QUEST_FLAGS_EXPANSION_ONLY
Definition QuestDef.h:122
@ QUEST_FLAGS_LAUNCH_GOSSIP_ACCEPT
Definition QuestDef.h:144
@ QUEST_FLAGS_DEPRECATED
Definition QuestDef.h:129
@ QUEST_FLAGS_WEEKLY
Definition QuestDef.h:130
@ QUEST_FLAGS_DISPLAY_ITEM_IN_TRACKER
Definition QuestDef.h:132
@ QUEST_FLAGS_HAS_CONDITION
Definition QuestDef.h:119
@ QUEST_FLAGS_COMPLETION_AREA_TRIGGER
Definition QuestDef.h:117
@ QUEST_FLAGS_AUTO_ACCEPT
Definition QuestDef.h:134
@ QUEST_FLAGS_SOR_WHITELIST
Definition QuestDef.h:138
@ QUEST_FLAGS_HIDE_UNTIL_DISCOVERED
Definition QuestDef.h:141
@ QUEST_FLAGS_HIDE_REWARD
Definition QuestDef.h:124
@ QUEST_FLAGS_SHOW_ITEM_WHEN_COMPLETE
Definition QuestDef.h:143
@ QUEST_FLAGS_STAY_ALIVE
Definition QuestDef.h:115
@ QUEST_FLAGS_PLAYER_CAST_COMPLETE
Definition QuestDef.h:136
@ QUEST_FLAGS_DEPRECATE_REPUTATION
Definition QuestDef.h:126
@ QUEST_FLAGS_REMOVE_EXTRA_GET_ITEMS
Definition QuestDef.h:140
@ QUEST_FLAGS_LAUNCH_GOSSIP_COMPLETE
Definition QuestDef.h:139
@ QUEST_FLAGS_AUTOCOMPLETE
Definition QuestDef.h:131
@ QUEST_FLAGS_FAIL_ON_LOGOUT
Definition QuestDef.h:146
@ QUEST_FLAGS_PLAYER_CAST_ACCEPT
Definition QuestDef.h:135
@ QUEST_FLAGS_START_EVENT_MUST_COMPLETE
Definition QuestDef.h:116
@ QUEST_FLAGS_TRACKING_EVENT
Definition QuestDef.h:125
QuestStatus
Definition QuestDef.h:85
@ QUEST_STATUS_REWARDED
Definition QuestDef.h:92
@ QUEST_STATUS_FAILED
Definition QuestDef.h:91
@ QUEST_STATUS_INCOMPLETE
Definition QuestDef.h:89
@ QUEST_STATUS_NONE
Definition QuestDef.h:86
@ MAX_QUEST_STATUS
Definition QuestDef.h:93
@ QUEST_STATUS_COMPLETE
Definition QuestDef.h:87
#define QUEST_REPUTATIONS_COUNT
Definition QuestDef.h:28
#define QUEST_SOURCE_ITEM_IDS_COUNT
Definition QuestDef.h:24
#define QUEST_REWARD_CHOICES_COUNT
Definition QuestDef.h:25
QuestGiverStatus
Definition QuestDef.h:97
@ DIALOG_STATUS_UNAVAILABLE
Definition QuestDef.h:100
@ DIALOG_STATUS_NONE
Definition QuestDef.h:98
@ DIALOG_STATUS_AVAILABLE
Definition QuestDef.h:107
@ DIALOG_STATUS_LOW_LEVEL_REWARD_REP
Definition QuestDef.h:102
@ DIALOG_STATUS_REWARD
Definition QuestDef.h:109
@ DIALOG_STATUS_LOW_LEVEL_AVAILABLE
Definition QuestDef.h:101
@ DIALOG_STATUS_REWARD_REP
Definition QuestDef.h:105
@ DIALOG_STATUS_REWARD2
Definition QuestDef.h:108
@ DIALOG_STATUS_INCOMPLETE
Definition QuestDef.h:104
@ DIALOG_STATUS_UNK
Definition QuestDef.h:99
@ DIALOG_STATUS_LOW_LEVEL_AVAILABLE_REP
Definition QuestDef.h:103
@ DIALOG_STATUS_AVAILABLE_REP
Definition QuestDef.h:106
std::vector< uint8 > ObjectiveTypeCountVec
Definition QuestDef.h:232
QuestSpecialFlags
Definition QuestDef.h:171
@ QUEST_SPECIAL_FLAGS_CAST
Definition QuestDef.h:179
@ QUEST_SPECIAL_FLAGS_AUTO_ACCEPT
Definition QuestDef.h:176
@ QUEST_SPECIAL_FLAGS_TIMED
Definition QuestDef.h:187
@ QUEST_SPECIAL_FLAGS_REPEATABLE
Definition QuestDef.h:174
@ QUEST_SPECIAL_FLAGS_DB_ALLOWED
Definition QuestDef.h:182
@ QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT
Definition QuestDef.h:175
@ QUEST_SPECIAL_FLAGS_DF_QUEST
Definition QuestDef.h:177
@ QUEST_SPECIAL_FLAGS_NONE
Definition QuestDef.h:172
@ QUEST_SPECIAL_FLAGS_MONTHLY
Definition QuestDef.h:178
@ 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
Definition Field.h:16
int32 Level
Definition QuestDef.h:401
int32 GetRewArenaPoints() const
Definition QuestDef.h:293
bool HasSpecialFlag(uint32 flag) const
Definition QuestDef.h:266
bool HasFlag(uint32 flag) const
Definition QuestDef.h:261
uint32 DetailsEmote[QUEST_EMOTE_COUNT]
Definition QuestDef.h:358
uint32 RewardMailDelay
Definition QuestDef.h:439
uint32 OfferRewardEmote[QUEST_EMOTE_COUNT]
Definition QuestDef.h:360
uint32 GetRewSpell() const
Definition QuestDef.h:312
uint32 GetRewMoneyMaxLevel() const
Definition QuestDef.cpp:186
uint32 GetSpecialFlags() const
Definition QuestDef.h:329
uint32 QuestGiverPortrait
Definition QuestDef.h:451
uint32 PointOption
Definition QuestDef.h:443
uint32 MinLevel
Definition QuestDef.h:399
uint32 RewardCurrencyCount[QUEST_REWARD_CURRENCY_COUNT]
Definition QuestDef.h:364
uint32 LimitTime
Definition QuestDef.h:412
uint32 RequiredMaxRepFaction
Definition QuestDef.h:409
uint32 GetRewardSkillId() const
Definition QuestDef.h:331
int32 RewardSpellCast
Definition QuestDef.h:437
uint32 GetSoundAccept() const
Definition QuestDef.h:320
std::string const & GetQuestGiverTargetName() const
Definition QuestDef.h:305
uint32 SourceSpellid
Definition QuestDef.h:424
uint32 RequiredMinRepFaction
Definition QuestDef.h:407
std::string const & GetEndText() const
Definition QuestDef.h:302
float GetPointX() const
Definition QuestDef.h:317
float GetPointY() const
Definition QuestDef.h:318
int32 ZoneOrSort
Definition QuestDef.h:398
uint32 GetRequiredRaces() const
Definition QuestDef.h:278
uint8 GetQuestObjectiveCount() const
Definition QuestDef.h:384
int32 NextQuestId
Definition QuestDef.h:419
uint32 GetRewMailTemplateId() const
Definition QuestDef.h:314
std::string RequestItemsText
Definition QuestDef.h:429
void SetSpecialFlag(uint32 flag)
Definition QuestDef.h:267
uint32 RequiredSourceItemId[QUEST_SOURCE_ITEM_IDS_COUNT]
Definition QuestDef.h:349
std::string QuestTurnTargetName
Definition QuestDef.h:456
Quest(Field *questRecord)
Definition QuestDef.cpp:11
uint32 GetCharTitleId() const
Definition QuestDef.h:291
uint32 RewardTitleId
Definition QuestDef.h:414
uint32 GetMaxLevel() const
Definition QuestDef.h:274
std::string const & GetRequestItemsText() const
Definition QuestDef.h:301
int32 GetRequiredMaxRepValue() const
Definition QuestDef.h:284
uint32 XPValue(Player *player) const
Definition QuestDef.cpp:150
uint8 GetQuestObjectiveCountType(uint8 type) const
Definition QuestDef.cpp:320
uint32 Type
Definition QuestDef.h:402
uint32 RewardItemIdCount[QUEST_REWARDS_COUNT]
Definition QuestDef.h:354
int32 GetRequiredMinRepValue() const
Definition QuestDef.h:282
uint32 GetMinLevel() const
Definition QuestDef.h:273
std::string QuestTurnTextWindow
Definition QuestDef.h:455
uint32 Method
Definition QuestDef.h:397
uint32 RewardPackageItemId
Definition QuestDef.h:461
QuestObjective const * GetQuestObjectiveXObjectId(uint32 objectId) const
Definition QuestDef.cpp:311
float PointX
Definition QuestDef.h:441
std::string const & GetObjectives() const
Definition QuestDef.h:299
uint32 GetPointMapId() const
Definition QuestDef.h:316
uint32 _rewItemsCount
Definition QuestDef.h:390
uint32 GetRewardReputationMask() const
Definition QuestDef.h:333
uint32 RewardChoiceItemId[QUEST_REWARD_CHOICES_COUNT]
Definition QuestDef.h:351
uint32 _rewChoiceItemsCount
Definition QuestDef.h:389
uint32 RewardReputationMask
Definition QuestDef.h:450
uint32 RewardMailTemplateId
Definition QuestDef.h:438
uint32 GetQuestGiverPortrait() const
Definition QuestDef.h:334
uint32 GetRewChoiceItemCount(uint32 itemId) const
Definition QuestDef.cpp:284
uint32 SoundTurnIn
Definition QuestDef.h:458
float PointY
Definition QuestDef.h:442
uint32 RequiredRaces
Definition QuestDef.h:404
uint32 GetQuestTurnInPortrait() const
Definition QuestDef.h:335
bool IsDFQuest() const
Definition QuestDef.h:344
uint32 RewardMoneyMaxLevel
Definition QuestDef.h:435
int32 GetNextQuestId() const
Definition QuestDef.h:288
int32 RewardFactionValueIdOverride[QUEST_REPUTATIONS_COUNT]
Definition QuestDef.h:357
std::string QuestGiverTargetName
Definition QuestDef.h:454
uint32 GetRequiredClasses() const
Definition QuestDef.h:277
uint32 DetailsEmoteDelay[QUEST_EMOTE_COUNT]
Definition QuestDef.h:359
std::string const & GetDetails() const
Definition QuestDef.h:298
uint32 GetLimitTime() const
Definition QuestDef.h:286
uint32 GetSrcSpell() const
Definition QuestDef.h:296
std::string QuestGiverTextWindow
Definition QuestDef.h:453
uint32 EmoteOnComplete
Definition QuestDef.h:445
bool IsRewChoiceItemValid(uint32 itemId) const
Definition QuestDef.cpp:275
bool IsRepeatable() const
Definition QuestDef.h:324
int32 GetZoneOrSort() const
Definition QuestDef.h:272
ObjectiveTypeCountVec m_questObjecitveTypeCount
Definition QuestDef.h:392
uint32 GetMinimapTargetMark() const
Definition QuestDef.h:330
uint32 RequiredSkillPoints
Definition QuestDef.h:406
uint32 SourceItemId
Definition QuestDef.h:423
int32 GetQuestLevel() const
Definition QuestDef.h:275
float GetRewHonorMultiplier() const
Definition QuestDef.h:310
bool IsAutoComplete() const
Definition QuestDef.cpp:199
uint32 RewardTalents
Definition QuestDef.h:416
uint32 GetRewHonorAddition() const
Definition QuestDef.h:309
std::string EndText
Definition QuestDef.h:430
int32 RewardMoney
Definition QuestDef.h:434
uint32 RewardChoiceItemCount[QUEST_REWARD_CHOICES_COUNT]
Definition QuestDef.h:352
uint32 GetRequiredMinRepFaction() const
Definition QuestDef.h:281
uint32 MinimapTargetMark
Definition QuestDef.h:447
uint32 MaxLevel
Definition QuestDef.h:400
uint32 RequiredPlayerKills
Definition QuestDef.h:415
uint32 GetFlags() const
Definition QuestDef.h:327
int32 GetPrevQuestId() const
Definition QuestDef.h:287
std::string const & GetQuestTurnTargetName() const
Definition QuestDef.h:307
std::string const & GetCompletedText() const
Definition QuestDef.h:303
uint32 CalculateHonorGain(uint8 level) const
Definition QuestDef.cpp:253
std::vector< uint32 > PrevChainQuests
Definition QuestDef.h:374
std::string const & GetQuestTurnTextWindow() const
Definition QuestDef.h:306
uint32 EmoteOnIncomplete
Definition QuestDef.h:444
uint32 OfferRewardEmoteDelay[QUEST_EMOTE_COUNT]
Definition QuestDef.h:361
uint32 Id
Definition QuestDef.h:396
uint32 GetQuestId() const
Definition QuestDef.h:270
uint32 GetRequiredSkillValue() const
Definition QuestDef.h:280
int32 RequiredMaxRepValue
Definition QuestDef.h:410
uint32 RequiredClasses
Definition QuestDef.h:403
bool IsRaidQuest(DifficultyID difficulty) const
Definition QuestDef.cpp:204
uint32 RequiredSourceItemCount[QUEST_SOURCE_ITEM_IDS_COUNT]
Definition QuestDef.h:350
void SetFlag2(uint32 flag)
Definition QuestDef.h:264
std::string CompletedText
Definition QuestDef.h:431
QuestObjectiveSet m_questObjectives
Definition QuestDef.h:378
bool IsAutoAccept() const
Definition QuestDef.cpp:194
uint32 GetType() const
Definition QuestDef.h:276
int32 GetRewMoney() const
Definition QuestDef.cpp:181
uint32 Flags
Definition QuestDef.h:413
int32 RewardArenaPoints
Definition QuestDef.h:417
uint32 GetRewMailDelaySecs() const
Definition QuestDef.h:315
bool IsDaily() const
Definition QuestDef.h:337
int32 GetExclusiveGroup() const
Definition QuestDef.h:289
friend class ObjectMgr
Definition QuestDef.h:256
bool HasFlag2(uint32 flag) const
Definition QuestDef.h:263
uint32 GetPointOpt() const
Definition QuestDef.h:319
std::string Title
Definition QuestDef.h:425
uint32 NextQuestIdChain
Definition QuestDef.h:421
PrevQuests prevQuests
Definition QuestDef.h:373
uint32 QuestTurnInPortrait
Definition QuestDef.h:452
std::string const & GetOfferRewardText() const
Definition QuestDef.h:300
uint32 RewardCurrencyId[QUEST_REWARD_CURRENCY_COUNT]
Definition QuestDef.h:363
std::string Objectives
Definition QuestDef.h:427
uint32 GetXPId() const
Definition QuestDef.h:294
uint32 GetSoundTurnIn() const
Definition QuestDef.h:321
int32 PrevQuestId
Definition QuestDef.h:418
uint32 GetFlags2() const
Definition QuestDef.h:328
uint32 SuggestedPlayers
Definition QuestDef.h:411
uint32 RewardSkillId
Definition QuestDef.h:448
uint32 GetRewItemsCount() const
Definition QuestDef.h:367
uint32 GetRequiredSkill() const
Definition QuestDef.h:279
uint32 GetRewChoiceItemsCount() const
Definition QuestDef.h:366
uint32 GetIncompleteEmote() const
Definition QuestDef.h:322
QuestObjective const * GetQuestObjectiveXIndex(uint8 index) const
Definition QuestDef.cpp:302
float RewardHonorMultiplier
Definition QuestDef.h:433
uint32 GetSrcItemId() const
Definition QuestDef.h:295
bool IsWeekly() const
Definition QuestDef.h:338
uint32 RewardFactionId[QUEST_REPUTATIONS_COUNT]
Definition QuestDef.h:355
bool IsSeasonal() const
Definition QuestDef.h:340
bool IsDailyOrWeekly() const
Definition QuestDef.h:341
uint32 RewardHonor
Definition QuestDef.h:432
uint32 RewardSpell
Definition QuestDef.h:436
std::string const & GetTitle() const
Definition QuestDef.h:297
uint32 SoundAccept
Definition QuestDef.h:457
int32 ExclusiveGroup
Definition QuestDef.h:420
std::string OfferRewardText
Definition QuestDef.h:428
std::string Details
Definition QuestDef.h:426
uint32 RequiredSkillId
Definition QuestDef.h:405
uint32 GetCompleteEmote() const
Definition QuestDef.h:323
uint32 _rewCurrencyCount
Definition QuestDef.h:391
uint32 GetRewCurrencyCount() const
Definition QuestDef.h:368
uint32 PointMapId
Definition QuestDef.h:440
int32 RewardFactionValueId[QUEST_REPUTATIONS_COUNT]
Definition QuestDef.h:356
bool IsAllowedInRaid(DifficultyID difficulty) const
Definition QuestDef.cpp:245
void SetFlag(uint32 flag)
Definition QuestDef.h:262
int32 GetRewSpellCast() const
Definition QuestDef.h:313
std::string const & GetQuestGiverTextWindow() const
Definition QuestDef.h:304
uint32 GetRewardPackageItemId() const
Definition QuestDef.h:370
bool IsMonthly() const
Definition QuestDef.h:339
uint32 RewardXPId
Definition QuestDef.h:422
uint32 RewardItemId[QUEST_REWARDS_COUNT]
Definition QuestDef.h:353
uint32 GetBonusTalents() const
Definition QuestDef.h:292
uint32 GetQuestMethod() const
Definition QuestDef.h:271
uint32 Flags2
Definition QuestDef.h:460
uint32 GetRewardSkillPoints() const
Definition QuestDef.h:332
std::vector< int32 > PrevQuests
Definition QuestDef.h:372
uint32 RewardSkillPoints
Definition QuestDef.h:449
PrevChainQuests prevChainQuests
Definition QuestDef.h:375
int32 RequiredMinRepValue
Definition QuestDef.h:408
uint32 SpecialFlags
Definition QuestDef.h:463
uint32 GetRequiredMaxRepFaction() const
Definition QuestDef.h:283
uint32 GetNextQuestInChain() const
Definition QuestDef.h:290
QuestObjective const * GetQuestObjective(uint32 objectiveId) const
Definition QuestDef.cpp:293
uint32 GetSuggestedPlayers() const
Definition QuestDef.h:285
StringVector QuestTurnTargetName
Definition QuestDef.h:223
StringVector OfferRewardText
Definition QuestDef.h:215
StringVector RequestItemsText
Definition QuestDef.h:216
StringVector CompletedText
Definition QuestDef.h:218
StringVector QuestTurnTextWindow
Definition QuestDef.h:222
StringVector QuestGiverTextWindow
Definition QuestDef.h:220
StringVector Details
Definition QuestDef.h:213
StringVector QuestGiverTargetName
Definition QuestDef.h:221
StringVector Title
Definition QuestDef.h:212
StringVector EndText
Definition QuestDef.h:217
StringVector Objectives
Definition QuestDef.h:214
QuestObjective(uint32 id, uint8 index, uint8 type, uint32 objectId, int32 amount, uint32 flags, std::string description)
Definition QuestDef.h:236
std::string Description
Definition QuestDef.h:245
VisualEffectVec VisualEffects
Definition QuestDef.h:246
uint32 ObjectId
Definition QuestDef.h:242
StringVector Description
Definition QuestDef.h:228
QuestStatus Status
Definition QuestDef.h:470