diff options
author | Shauren <shauren.trinity@gmail.com> | 2020-11-05 20:06:11 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2020-12-08 18:16:46 +0100 |
commit | 5095bcbf1cf57dae0e58e1d1251b566952352047 (patch) | |
tree | c13145c9ae7914409eb180c17d592a9ace8a7b11 | |
parent | c673199f194fb683a88eb531e9642a49f1ed1b35 (diff) |
Core/Quests: Define new quest flags
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Quests/QuestDef.h | 83 |
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 |