Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
QuestDef.h File Reference
#include "DatabaseEnv.h"
#include "DBCEnums.h"
#include "Define.h"
#include "SharedDefines.h"
#include "WorldPacket.h"
#include <string>
#include <vector>
Include dependency graph for QuestDef.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Quest
struct  QuestLocale
struct  QuestObjective
struct  QuestObjectiveLocale
struct  QuestStatusData

Macros

#define MAX_QUEST_LOG_SIZE   25
#define QUEST_DEPLINK_COUNT   10
#define QUEST_EMOTE_COUNT   4
#define QUEST_REPUTATIONS_COUNT   5
#define QUEST_REWARD_CHOICES_COUNT   6
#define QUEST_REWARD_CURRENCY_COUNT   4
#define QUEST_REWARDS_COUNT   4
#define QUEST_SOURCE_ITEM_COUNT   1
#define QUEST_SOURCE_ITEM_IDS_COUNT   4

Typedefs

typedef std::vector< uint8ObjectiveTypeCountVec
typedef std::set< QuestObjective * > QuestObjectiveSet
typedef std::vector< uint32VisualEffectVec

Enumerations

enum  QuestFailedReason {
  INVALIDREASON_DONT_HAVE_REQ = 0 , INVALIDREASON_QUEST_FAILED_LOW_LEVEL = 1 , INVALIDREASON_QUEST_FAILED_WRONG_RACE = 6 , INVALIDREASON_QUEST_ALREADY_DONE = 7 ,
  INVALIDREASON_QUEST_ONLY_ONE_TIMED = 12 , INVALIDREASON_QUEST_ALREADY_ON = 13 , INVALIDREASON_QUEST_FAILED_EXPANSION = 16 , INVALIDREASON_QUEST_ALREADY_ON2 = 18 ,
  INVALIDREASON_QUEST_FAILED_MISSING_ITEMS = 21 , INVALIDREASON_QUEST_FAILED_NOT_ENOUGH_MONEY = 23 , INVALIDREASON_DAILY_QUESTS_REMAINING = 26 , INVALIDREASON_QUEST_FAILED_CAIS = 27 ,
  INVALIDREASON_DAILY_QUEST_COMPLETED_TODAY = 29
}
enum  QuestFlags {
  QUEST_FLAGS_NONE = 0x00000000 , QUEST_FLAGS_STAY_ALIVE = 0x00000001 , QUEST_FLAGS_START_EVENT_MUST_COMPLETE = 0x00000002 , QUEST_FLAGS_COMPLETION_AREA_TRIGGER = 0x00000004 ,
  QUEST_FLAGS_PUSHABLE = 0x00000008 , QUEST_FLAGS_HAS_CONDITION = 0x00000010 , QUEST_FLAGS_HIDE_REWARD_POI = 0x00000020 , QUEST_FLAGS_RAID_GROUP = 0x00000040 ,
  QUEST_FLAGS_EXPANSION_ONLY = 0x00000080 , QUEST_FLAGS_NO_MONEY_FROM_XP = 0x00000100 , QUEST_FLAGS_HIDE_REWARD = 0x00000200 , QUEST_FLAGS_TRACKING_EVENT = 0x00000400 ,
  QUEST_FLAGS_DEPRECATE_REPUTATION = 0x00000800 , QUEST_FLAGS_DAILY = 0x00001000 , QUEST_FLAGS_FLAGS_PVP = 0x00002000 , QUEST_FLAGS_DEPRECATED = 0x00004000 ,
  QUEST_FLAGS_WEEKLY = 0x00008000 , QUEST_FLAGS_AUTOCOMPLETE = 0x00010000 , QUEST_FLAGS_DISPLAY_ITEM_IN_TRACKER = 0x00020000 , QUEST_FLAGS_DISABLE_COMPLETION_TEXT = 0x00040000 ,
  QUEST_FLAGS_AUTO_ACCEPT = 0x00080000 , QUEST_FLAGS_PLAYER_CAST_ACCEPT = 0x00100000 , QUEST_FLAGS_PLAYER_CAST_COMPLETE = 0x00200000 , QUEST_FLAGS_UPDATE_PHASE_SHIFT = 0x00400000 ,
  QUEST_FLAGS_SOR_WHITELIST = 0x00800000 , QUEST_FLAGS_LAUNCH_GOSSIP_COMPLETE = 0x01000000 , QUEST_FLAGS_REMOVE_EXTRA_GET_ITEMS = 0x02000000 , QUEST_FLAGS_HIDE_UNTIL_DISCOVERED = 0x04000000 ,
  QUEST_FLAGS_PORTRAIT_FROM_LOG = 0x08000000 , QUEST_FLAGS_SHOW_ITEM_WHEN_COMPLETE = 0x10000000 , QUEST_FLAGS_LAUNCH_GOSSIP_ACCEPT = 0x20000000 , QUEST_FLAGS_ITEM_GLOW_ON_COMPLETE = 0x40000000 ,
  QUEST_FLAGS_FAIL_ON_LOGOUT = 0x80000000
}
enum  QuestFlags2 {
  QUEST_FLAGS2_NONE = 0x0000 , QUEST_FLAGS2_KEEP_ADDITIONAL_ITEMS = 0x0001 , QUEST_FLAGS2_SUPPRESS_GOSSIP_COMPLETE = 0x0002 , QUEST_FLAGS2_SUPPRESS_GOSSIP_ACCEPT = 0x0004 ,
  QUEST_FLAGS2_DISALLOW_PLAYER_AS_QUESTGIVER = 0x0008 , QUEST_FLAGS2_DISPLAY_CLASS_CHOICE_REWARDS = 0x0010 , QUEST_FLAGS2_DISPLAY_SPEC_CHOICE_REWARDS = 0x0020 , QUEST_FLAGS2_REMOVE_FROM_LOG_ON_PERIDOIC_RESET = 0x0040 ,
  QUEST_FLAGS2_ACCOUNT_LEVEL_QUEST = 0x0080 , QUEST_FLAGS2_LEGENDARY_QUEST = 0x0100 , QUEST_FLAGS2_NO_GUILD_XP = 0x0200 , QUEST_FLAGS2_RESET_CACHE_ON_ACCEPT = 0x0400 ,
  QUEST_FLAGS2_NO_ABANDON_ON_ANY_OBJECTIVE_COMPLETE = 0x0800 , QUEST_FLAGS2_RECAST_ACCEPT_SPELL_ON_LOGIN = 0x1000 , QUEST_FLAGS2_UPDATE_ZONE_AURAS = 0x2000 , QUEST_FLAGS2_NO_CREDIT_FOR_PROXY = 0x4000 ,
  QUEST_FLAGS2_DISPLAY_AS_DAILY_QUEST = 0x8000
}
enum  QuestGiverStatus {
  DIALOG_STATUS_NONE = 0x000 , DIALOG_STATUS_UNK = 0x001 , DIALOG_STATUS_UNAVAILABLE = 0x002 , DIALOG_STATUS_LOW_LEVEL_AVAILABLE = 0x004 ,
  DIALOG_STATUS_LOW_LEVEL_REWARD_REP = 0x008 , DIALOG_STATUS_LOW_LEVEL_AVAILABLE_REP = 0x010 , DIALOG_STATUS_INCOMPLETE = 0x020 , DIALOG_STATUS_REWARD_REP = 0x040 ,
  DIALOG_STATUS_AVAILABLE_REP = 0x080 , DIALOG_STATUS_AVAILABLE = 0x100 , DIALOG_STATUS_REWARD2 = 0x200 , DIALOG_STATUS_REWARD = 0x400
}
enum  QuestObjectiveType {
  QUEST_OBJECTIVE_TYPE_NPC = 0 , QUEST_OBJECTIVE_TYPE_ITEM = 1 , QUEST_OBJECTIVE_TYPE_GO = 2 , QUEST_OBJECTIVE_TYPE_NPC_INTERACT = 3 ,
  QUEST_OBJECTIVE_TYPE_CURRENCY = 4 , QUEST_OBJECTIVE_TYPE_SPELL = 5 , QUEST_OBJECTIVE_TYPE_FACTION_REP = 6 , QUEST_OBJECTIVE_TYPE_FACTION_REP2 = 7 ,
  QUEST_OBJECTIVE_TYPE_MONEY = 8 , QUEST_OBJECTIVE_TYPE_PLAYER = 9 , QUEST_OBJECTIVE_TYPE_DUMMY = 10 , QUEST_OBJECTIVE_TYPE_PET_BATTLE_TAMER = 11 ,
  QUEST_OBJECTIVE_TYPE_PET_BATTLE_ELITE = 12 , QUEST_OBJECTIVE_TYPE_PET_BATTLE_PVP = 13 , QUEST_OBJECTIVE_TYPE_END
}
enum  QuestShareMessages {
  QUEST_PARTY_MSG_SHARING_QUEST = 0 , QUEST_PARTY_MSG_CANT_TAKE_QUEST = 1 , QUEST_PARTY_MSG_ACCEPT_QUEST = 2 , QUEST_PARTY_MSG_DECLINE_QUEST = 3 ,
  QUEST_PARTY_MSG_BUSY = 4 , QUEST_PARTY_MSG_LOG_FULL = 5 , QUEST_PARTY_MSG_HAVE_QUEST = 6 , QUEST_PARTY_MSG_FINISH_QUEST = 7 ,
  QUEST_PARTY_MSG_CANT_BE_SHARED_TODAY = 8 , QUEST_PARTY_MSG_SHARING_TIMER_EXPIRED = 9 , QUEST_PARTY_MSG_NOT_IN_PARTY = 10
}
enum  QuestSpecialFlags {
  QUEST_SPECIAL_FLAGS_NONE = 0x000 , QUEST_SPECIAL_FLAGS_REPEATABLE = 0x001 , QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT = 0x002 , QUEST_SPECIAL_FLAGS_AUTO_ACCEPT = 0x004 ,
  QUEST_SPECIAL_FLAGS_DF_QUEST = 0x008 , QUEST_SPECIAL_FLAGS_MONTHLY = 0x010 , QUEST_SPECIAL_FLAGS_CAST = 0x020 , QUEST_SPECIAL_FLAGS_DB_ALLOWED = QUEST_SPECIAL_FLAGS_REPEATABLE | QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT | QUEST_SPECIAL_FLAGS_AUTO_ACCEPT | QUEST_SPECIAL_FLAGS_DF_QUEST | QUEST_SPECIAL_FLAGS_MONTHLY | QUEST_SPECIAL_FLAGS_CAST ,
  QUEST_SPECIAL_FLAGS_TIMED = 0x400
}
enum  QuestStatus {
  QUEST_STATUS_NONE = 0 , QUEST_STATUS_COMPLETE = 1 , QUEST_STATUS_INCOMPLETE = 3 , QUEST_STATUS_FAILED = 5 ,
  QUEST_STATUS_REWARDED = 6 , MAX_QUEST_STATUS
}
enum  QuestTradeSkill {
  QUEST_TRSKILL_NONE = 0 , QUEST_TRSKILL_ALCHEMY = 1 , QUEST_TRSKILL_BLACKSMITHING = 2 , QUEST_TRSKILL_COOKING = 3 ,
  QUEST_TRSKILL_ENCHANTING = 4 , QUEST_TRSKILL_ENGINEERING = 5 , QUEST_TRSKILL_FIRSTAID = 6 , QUEST_TRSKILL_HERBALISM = 7 ,
  QUEST_TRSKILL_LEATHERWORKING = 8 , QUEST_TRSKILL_POISONS = 9 , QUEST_TRSKILL_TAILORING = 10 , QUEST_TRSKILL_MINING = 11 ,
  QUEST_TRSKILL_FISHING = 12 , QUEST_TRSKILL_SKINNING = 13 , QUEST_TRSKILL_JEWELCRAFTING = 14
}

Macro Definition Documentation

◆ MAX_QUEST_LOG_SIZE

◆ QUEST_DEPLINK_COUNT

#define QUEST_DEPLINK_COUNT   10

Definition at line 27 of file QuestDef.h.

◆ QUEST_EMOTE_COUNT

#define QUEST_EMOTE_COUNT   4

◆ QUEST_REPUTATIONS_COUNT

◆ QUEST_REWARD_CHOICES_COUNT

◆ QUEST_REWARD_CURRENCY_COUNT

◆ QUEST_REWARDS_COUNT

◆ QUEST_SOURCE_ITEM_COUNT

#define QUEST_SOURCE_ITEM_COUNT   1

◆ QUEST_SOURCE_ITEM_IDS_COUNT

#define QUEST_SOURCE_ITEM_IDS_COUNT   4

Typedef Documentation

◆ ObjectiveTypeCountVec

typedef std::vector<uint8> ObjectiveTypeCountVec

Definition at line 232 of file QuestDef.h.

◆ QuestObjectiveSet

typedef std::set<QuestObjective*> QuestObjectiveSet

Definition at line 249 of file QuestDef.h.

◆ VisualEffectVec

typedef std::vector<uint32> VisualEffectVec

Definition at line 231 of file QuestDef.h.

Enumeration Type Documentation

◆ QuestFailedReason

Enumerator
INVALIDREASON_DONT_HAVE_REQ 
INVALIDREASON_QUEST_FAILED_LOW_LEVEL 
INVALIDREASON_QUEST_FAILED_WRONG_RACE 
INVALIDREASON_QUEST_ALREADY_DONE 
INVALIDREASON_QUEST_ONLY_ONE_TIMED 
INVALIDREASON_QUEST_ALREADY_ON 
INVALIDREASON_QUEST_FAILED_EXPANSION 
INVALIDREASON_QUEST_ALREADY_ON2 
INVALIDREASON_QUEST_FAILED_MISSING_ITEMS 
INVALIDREASON_QUEST_FAILED_NOT_ENOUGH_MONEY 
INVALIDREASON_DAILY_QUESTS_REMAINING 
INVALIDREASON_QUEST_FAILED_CAIS 
INVALIDREASON_DAILY_QUEST_COMPLETED_TODAY 

Definition at line 33 of file QuestDef.h.

◆ QuestFlags

enum QuestFlags
Enumerator
QUEST_FLAGS_NONE 
QUEST_FLAGS_STAY_ALIVE 
QUEST_FLAGS_START_EVENT_MUST_COMPLETE 
QUEST_FLAGS_COMPLETION_AREA_TRIGGER 
QUEST_FLAGS_PUSHABLE 
QUEST_FLAGS_HAS_CONDITION 
QUEST_FLAGS_HIDE_REWARD_POI 
QUEST_FLAGS_RAID_GROUP 
QUEST_FLAGS_EXPANSION_ONLY 
QUEST_FLAGS_NO_MONEY_FROM_XP 
QUEST_FLAGS_HIDE_REWARD 
QUEST_FLAGS_TRACKING_EVENT 
QUEST_FLAGS_DEPRECATE_REPUTATION 
QUEST_FLAGS_DAILY 
QUEST_FLAGS_FLAGS_PVP 
QUEST_FLAGS_DEPRECATED 
QUEST_FLAGS_WEEKLY 
QUEST_FLAGS_AUTOCOMPLETE 
QUEST_FLAGS_DISPLAY_ITEM_IN_TRACKER 
QUEST_FLAGS_DISABLE_COMPLETION_TEXT 
QUEST_FLAGS_AUTO_ACCEPT 
QUEST_FLAGS_PLAYER_CAST_ACCEPT 
QUEST_FLAGS_PLAYER_CAST_COMPLETE 
QUEST_FLAGS_UPDATE_PHASE_SHIFT 
QUEST_FLAGS_SOR_WHITELIST 
QUEST_FLAGS_LAUNCH_GOSSIP_COMPLETE 
QUEST_FLAGS_REMOVE_EXTRA_GET_ITEMS 
QUEST_FLAGS_HIDE_UNTIL_DISCOVERED 
QUEST_FLAGS_PORTRAIT_FROM_LOG 
QUEST_FLAGS_SHOW_ITEM_WHEN_COMPLETE 
QUEST_FLAGS_LAUNCH_GOSSIP_ACCEPT 
QUEST_FLAGS_ITEM_GLOW_ON_COMPLETE 
QUEST_FLAGS_FAIL_ON_LOGOUT 

Definition at line 112 of file QuestDef.h.

◆ QuestFlags2

Enumerator
QUEST_FLAGS2_NONE 
QUEST_FLAGS2_KEEP_ADDITIONAL_ITEMS 
QUEST_FLAGS2_SUPPRESS_GOSSIP_COMPLETE 
QUEST_FLAGS2_SUPPRESS_GOSSIP_ACCEPT 
QUEST_FLAGS2_DISALLOW_PLAYER_AS_QUESTGIVER 
QUEST_FLAGS2_DISPLAY_CLASS_CHOICE_REWARDS 
QUEST_FLAGS2_DISPLAY_SPEC_CHOICE_REWARDS 
QUEST_FLAGS2_REMOVE_FROM_LOG_ON_PERIDOIC_RESET 
QUEST_FLAGS2_ACCOUNT_LEVEL_QUEST 
QUEST_FLAGS2_LEGENDARY_QUEST 
QUEST_FLAGS2_NO_GUILD_XP 
QUEST_FLAGS2_RESET_CACHE_ON_ACCEPT 
QUEST_FLAGS2_NO_ABANDON_ON_ANY_OBJECTIVE_COMPLETE 
QUEST_FLAGS2_RECAST_ACCEPT_SPELL_ON_LOGIN 
QUEST_FLAGS2_UPDATE_ZONE_AURAS 
QUEST_FLAGS2_NO_CREDIT_FOR_PROXY 
QUEST_FLAGS2_DISPLAY_AS_DAILY_QUEST 

Definition at line 149 of file QuestDef.h.

◆ QuestGiverStatus

Enumerator
DIALOG_STATUS_NONE 
DIALOG_STATUS_UNK 
DIALOG_STATUS_UNAVAILABLE 
DIALOG_STATUS_LOW_LEVEL_AVAILABLE 
DIALOG_STATUS_LOW_LEVEL_REWARD_REP 
DIALOG_STATUS_LOW_LEVEL_AVAILABLE_REP 
DIALOG_STATUS_INCOMPLETE 
DIALOG_STATUS_REWARD_REP 
DIALOG_STATUS_AVAILABLE_REP 
DIALOG_STATUS_AVAILABLE 
DIALOG_STATUS_REWARD2 
DIALOG_STATUS_REWARD 

Definition at line 96 of file QuestDef.h.

◆ QuestObjectiveType

Enumerator
QUEST_OBJECTIVE_TYPE_NPC 
QUEST_OBJECTIVE_TYPE_ITEM 
QUEST_OBJECTIVE_TYPE_GO 
QUEST_OBJECTIVE_TYPE_NPC_INTERACT 
QUEST_OBJECTIVE_TYPE_CURRENCY 
QUEST_OBJECTIVE_TYPE_SPELL 
QUEST_OBJECTIVE_TYPE_FACTION_REP 
QUEST_OBJECTIVE_TYPE_FACTION_REP2 
QUEST_OBJECTIVE_TYPE_MONEY 
QUEST_OBJECTIVE_TYPE_PLAYER 
QUEST_OBJECTIVE_TYPE_DUMMY 
QUEST_OBJECTIVE_TYPE_PET_BATTLE_TAMER 
QUEST_OBJECTIVE_TYPE_PET_BATTLE_ELITE 
QUEST_OBJECTIVE_TYPE_PET_BATTLE_PVP 
QUEST_OBJECTIVE_TYPE_END 

Definition at line 191 of file QuestDef.h.

◆ QuestShareMessages

Enumerator
QUEST_PARTY_MSG_SHARING_QUEST 
QUEST_PARTY_MSG_CANT_TAKE_QUEST 
QUEST_PARTY_MSG_ACCEPT_QUEST 
QUEST_PARTY_MSG_DECLINE_QUEST 
QUEST_PARTY_MSG_BUSY 
QUEST_PARTY_MSG_LOG_FULL 
QUEST_PARTY_MSG_HAVE_QUEST 
QUEST_PARTY_MSG_FINISH_QUEST 
QUEST_PARTY_MSG_CANT_BE_SHARED_TODAY 
QUEST_PARTY_MSG_SHARING_TIMER_EXPIRED 
QUEST_PARTY_MSG_NOT_IN_PARTY 

Definition at line 50 of file QuestDef.h.

◆ QuestSpecialFlags

Enumerator
QUEST_SPECIAL_FLAGS_NONE 
QUEST_SPECIAL_FLAGS_REPEATABLE 
QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT 
QUEST_SPECIAL_FLAGS_AUTO_ACCEPT 
QUEST_SPECIAL_FLAGS_DF_QUEST 
QUEST_SPECIAL_FLAGS_MONTHLY 
QUEST_SPECIAL_FLAGS_CAST 
QUEST_SPECIAL_FLAGS_DB_ALLOWED 
QUEST_SPECIAL_FLAGS_TIMED 

Definition at line 170 of file QuestDef.h.

◆ QuestStatus

Enumerator
QUEST_STATUS_NONE 
QUEST_STATUS_COMPLETE 
QUEST_STATUS_INCOMPLETE 
QUEST_STATUS_FAILED 
QUEST_STATUS_REWARDED 
MAX_QUEST_STATUS 

Definition at line 84 of file QuestDef.h.

◆ QuestTradeSkill

Enumerator
QUEST_TRSKILL_NONE 
QUEST_TRSKILL_ALCHEMY 
QUEST_TRSKILL_BLACKSMITHING 
QUEST_TRSKILL_COOKING 
QUEST_TRSKILL_ENCHANTING 
QUEST_TRSKILL_ENGINEERING 
QUEST_TRSKILL_FIRSTAID 
QUEST_TRSKILL_HERBALISM 
QUEST_TRSKILL_LEATHERWORKING 
QUEST_TRSKILL_POISONS 
QUEST_TRSKILL_TAILORING 
QUEST_TRSKILL_MINING 
QUEST_TRSKILL_FISHING 
QUEST_TRSKILL_SKINNING 
QUEST_TRSKILL_JEWELCRAFTING 

Definition at line 65 of file QuestDef.h.