aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
-rw-r--r--src/server/game/Quests/QuestDef.h83
2 files changed, 54 insertions, 31 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 1cba7b51c82..446da0feb52 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -15514,7 +15514,7 @@ void Player::AddQuest(Quest const* quest, Object* questGiver)
GetReputationMgr().SetVisible(factionEntry);
break;
case QUEST_OBJECTIVE_CRITERIA_TREE:
- if (quest->HasFlagEx(QUEST_FLAGS_EX_CLEAR_PROGRESS_OF_CRITERIA_TREE_OBJECTIVES_ON_ACCEPT))
+ if (quest->HasFlagEx(QUEST_FLAGS_EX_IS_WORLD_QUEST))
m_questObjectiveCriteriaMgr->ResetCriteriaTree(obj.ObjectID);
break;
default:
diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h
index 6c662c87b31..3312aa5f89b 100644
--- a/src/server/game/Quests/QuestDef.h
+++ b/src/server/game/Quests/QuestDef.h
@@ -144,7 +144,7 @@ enum QuestFlags : uint32
QUEST_FLAGS_HAS_CONDITION = 0x00000010, // Not used currently
QUEST_FLAGS_HIDE_REWARD_POI = 0x00000020, // Not used currently: Unsure of content
QUEST_FLAGS_RAID = 0x00000040, // Can be completed while in raid
- QUEST_FLAGS_TBC = 0x00000080, // Not used currently: Available if TBC expansion enabled only
+ QUEST_FLAGS_WAR_MODE_REWARDS_OPT_IN = 0x00000080, // Not used currently
QUEST_FLAGS_NO_MONEY_FROM_XP = 0x00000100, // Not used currently: Experience is not converted to gold at max level
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))
QUEST_FLAGS_TRACKING = 0x00000400, // These quests are automatically rewarded on quest complete and they will never appear in quest log client side.
@@ -174,37 +174,59 @@ enum QuestFlags : uint32
// last checked in 19802
enum QuestFlagsEx : uint32
{
- QUEST_FLAGS_EX_NONE = 0x0000000,
- QUEST_FLAGS_EX_KEEP_ADDITIONAL_ITEMS = 0x0000001,
- QUEST_FLAGS_EX_SUPPRESS_GOSSIP_COMPLETE = 0x0000002,
- QUEST_FLAGS_EX_SUPPRESS_GOSSIP_ACCEPT = 0x0000004,
- QUEST_FLAGS_EX_DISALLOW_PLAYER_AS_QUESTGIVER = 0x0000008,
- QUEST_FLAGS_EX_DISPLAY_CLASS_CHOICE_REWARDS = 0x0000010,
- QUEST_FLAGS_EX_DISPLAY_SPEC_CHOICE_REWARDS = 0x0000020,
- QUEST_FLAGS_EX_REMOVE_FROM_LOG_ON_PERIDOIC_RESET = 0x0000040,
- QUEST_FLAGS_EX_ACCOUNT_LEVEL_QUEST = 0x0000080,
- QUEST_FLAGS_EX_LEGENDARY_QUEST = 0x0000100,
- QUEST_FLAGS_EX_NO_GUILD_XP = 0x0000200,
- QUEST_FLAGS_EX_RESET_CACHE_ON_ACCEPT = 0x0000400,
- QUEST_FLAGS_EX_NO_ABANDON_ONCE_ANY_OBJECTIVE_COMPLETE = 0x0000800,
- QUEST_FLAGS_EX_RECAST_ACCEPT_SPELL_ON_LOGIN = 0x0001000,
- QUEST_FLAGS_EX_UPDATE_ZONE_AURAS = 0x0002000,
- QUEST_FLAGS_EX_NO_CREDIT_FOR_PROXY = 0x0004000,
- QUEST_FLAGS_EX_DISPLAY_AS_DAILY_QUEST = 0x0008000,
- QUEST_FLAGS_EX_PART_OF_QUEST_LINE = 0x0010000,
- QUEST_FLAGS_EX_QUEST_FOR_INTERNAL_BUILDS_ONLY = 0x0020000,
- QUEST_FLAGS_EX_SUPPRESS_SPELL_LEARN_TEXT_LINE = 0x0040000,
- QUEST_FLAGS_EX_DISPLAY_HEADER_AS_OBJECTIVE_FOR_TASKS = 0x0080000,
- QUEST_FLAGS_EX_GARRISON_NON_OWNERS_ALLOWED = 0x0100000,
- QUEST_FLAGS_EX_REMOVE_QUEST_ON_WEEKLY_RESET = 0x0200000,
- QUEST_FLAGS_EX_SUPPRESS_FAREWELL_AUDIO_AFTER_QUEST_ACCEPT = 0x0400000,
- QUEST_FLAGS_EX_REWARDS_BYPASS_WEEKLY_CAPS_AND_SEASON_TOTAL = 0x0800000,
- QUEST_FLAGS_EX_CLEAR_PROGRESS_OF_CRITERIA_TREE_OBJECTIVES_ON_ACCEPT = 0x1000000
+ QUEST_FLAGS_EX_NONE = 0x00000000,
+ QUEST_FLAGS_EX_KEEP_ADDITIONAL_ITEMS = 0x00000001,
+ QUEST_FLAGS_EX_SUPPRESS_GOSSIP_COMPLETE = 0x00000002,
+ QUEST_FLAGS_EX_SUPPRESS_GOSSIP_ACCEPT = 0x00000004,
+ QUEST_FLAGS_EX_DISALLOW_PLAYER_AS_QUESTGIVER = 0x00000008,
+ QUEST_FLAGS_EX_DISPLAY_CLASS_CHOICE_REWARDS = 0x00000010,
+ QUEST_FLAGS_EX_DISPLAY_SPEC_CHOICE_REWARDS = 0x00000020,
+ QUEST_FLAGS_EX_REMOVE_FROM_LOG_ON_PERIDOIC_RESET = 0x00000040,
+ QUEST_FLAGS_EX_ACCOUNT_LEVEL_QUEST = 0x00000080,
+ QUEST_FLAGS_EX_LEGENDARY_QUEST = 0x00000100,
+ QUEST_FLAGS_EX_NO_GUILD_XP = 0x00000200,
+ QUEST_FLAGS_EX_RESET_CACHE_ON_ACCEPT = 0x00000400,
+ QUEST_FLAGS_EX_NO_ABANDON_ONCE_ANY_OBJECTIVE_COMPLETE = 0x00000800,
+ QUEST_FLAGS_EX_RECAST_ACCEPT_SPELL_ON_LOGIN = 0x00001000,
+ QUEST_FLAGS_EX_UPDATE_ZONE_AURAS = 0x00002000,
+ QUEST_FLAGS_EX_NO_CREDIT_FOR_PROXY = 0x00004000,
+ QUEST_FLAGS_EX_DISPLAY_AS_DAILY_QUEST = 0x00008000,
+ QUEST_FLAGS_EX_PART_OF_QUEST_LINE = 0x00010000,
+ QUEST_FLAGS_EX_QUEST_FOR_INTERNAL_BUILDS_ONLY = 0x00020000,
+ QUEST_FLAGS_EX_SUPPRESS_SPELL_LEARN_TEXT_LINE = 0x00040000,
+ QUEST_FLAGS_EX_DISPLAY_HEADER_AS_OBJECTIVE_FOR_TASKS = 0x00080000,
+ QUEST_FLAGS_EX_GARRISON_NON_OWNERS_ALLOWED = 0x00100000,
+ QUEST_FLAGS_EX_REMOVE_QUEST_ON_WEEKLY_RESET = 0x00200000,
+ QUEST_FLAGS_EX_SUPPRESS_FAREWELL_AUDIO_AFTER_QUEST_ACCEPT = 0x00400000,
+ QUEST_FLAGS_EX_REWARDS_BYPASS_WEEKLY_CAPS_AND_SEASON_TOTAL = 0x00800000,
+ QUEST_FLAGS_EX_IS_WORLD_QUEST = 0x01000000,
+ QUEST_FLAGS_EX_NOT_IGNORABLE = 0x02000000,
+ QUEST_FLAGS_EX_AUTO_PUSH = 0x04000000,
+ QUEST_FLAGS_EX_NO_SPELL_COMPLETE_EFFECTS = 0x08000000,
+ QUEST_FLAGS_EX_DO_NOT_TOAST_HONOR_REWARD = 0x10000000,
+ QUEST_FLAGS_EX_KEEP_REPEATABLE_QUEST_ON_FACTION_CHANGE = 0x20000000,
+ QUEST_FLAGS_EX_KEEP_PROGRESS_ON_FACTION_CHANGE = 0x40000000,
+ QUEST_FLAGS_EX_PUSH_TEAM_QUEST_USING_MAP_CONTROLLER = 0x80000000
};
enum QuestFlagsEx2 : uint32
{
- QUEST_FLAGS_EX2_NO_WAR_MODE_BONUS = 0x2
+ QUEST_FLAGS_EX2_RESET_ON_GAME_MILESTONE = 0x00000001,
+ QUEST_FLAGS_EX2_NO_WAR_MODE_BONUS = 0x00000002,
+ QUEST_FLAGS_EX2_AWARD_HIGHEST_PROFESSION = 0x00000004,
+ QUEST_FLAGS_EX2_NOT_REPLAYABLE = 0x00000008,
+ QUEST_FLAGS_EX2_NO_REPLAY_REWARDS = 0x00000010,
+ QUEST_FLAGS_EX2_DISABLE_WAYPOINT_PATHING = 0x00000020,
+ QUEST_FLAGS_EX2_RESET_ON_MYTHIC_PLUS_SEASON = 0x00000040,
+ QUEST_FLAGS_EX2_RESET_ON_PVP_SEASON = 0x00000080,
+ QUEST_FLAGS_EX2_ENABLE_OVERRIDE_SORT_ORDER = 0x00000100,
+ QUEST_FLAGS_EX2_FORCE_STARTING_LOC_ON_ZONE_MAP = 0x00000200,
+ QUEST_FLAGS_EX2_BONUS_LOOT_NEVER = 0x00000400,
+ QUEST_FLAGS_EX2_BONUS_LOOT_ALWAYS = 0x00000800,
+ QUEST_FLAGS_EX2_HIDE_TASK_ON_MAIN_MAP = 0x00001000,
+ QUEST_FLAGS_EX2_HIDE_TASK_IN_TRACKER = 0x00002000,
+ QUEST_FLAGS_EX2_SKIP_DISABLED_CHECK = 0x00004000,
+ QUEST_FLAGS_EX2_ENFORCE_MAXIMUM_QUEST_LEVEL = 0x00008000
};
enum QuestSpecialFlags
@@ -260,9 +282,10 @@ enum QuestObjectiveFlags
QUEST_OBJECTIVE_FLAG_SEQUENCED = 0x02, // client will not see the objective displayed until all previous objectives are completed
QUEST_OBJECTIVE_FLAG_OPTIONAL = 0x04, // not required to complete the quest
QUEST_OBJECTIVE_FLAG_HIDDEN = 0x08, // never displayed in quest log
- QUEST_OBJECTIVE_FLAG_HIDE_ITEM_GAINS = 0x10, // skip showing item objective progress
- QUEST_OBJECTIVE_FLAG_PROGRESS_COUNTS_ITEMS_IN_INVENTORY = 0x20, // item objective progress counts items in inventory instead of reading it from updatefields
+ QUEST_OBJECTIVE_FLAG_HIDE_CREDIT_MSG = 0x10, // skip showing item objective progress
+ QUEST_OBJECTIVE_FLAG_PRESERVE_QUEST_ITEMS = 0x20,
QUEST_OBJECTIVE_FLAG_PART_OF_PROGRESS_BAR = 0x40, // hidden objective used to calculate progress bar percent (quests are limited to a single progress bar objective)
+ QUEST_OBJECTIVE_FLAG_KILL_PLAYERS_SAME_FACTION = 0x80
};
struct QuestGreeting