aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Item/ItemTemplate.h3
-rw-r--r--src/server/game/Entities/Player/Player.cpp6
-rw-r--r--src/server/game/Quests/QuestDef.h28
3 files changed, 24 insertions, 13 deletions
diff --git a/src/server/game/Entities/Item/ItemTemplate.h b/src/server/game/Entities/Item/ItemTemplate.h
index 2c48fbdb50a..1536cce605f 100644
--- a/src/server/game/Entities/Item/ItemTemplate.h
+++ b/src/server/game/Entities/Item/ItemTemplate.h
@@ -307,6 +307,9 @@ enum ItemFlags4
ITEM_FLAG4_NO_SALVAGE = 0x00800000,
ITEM_FLAG4_RECRAFTABLE = 0x01000000,
ITEM_FLAG4_CC_TRINKET = 0x02000000,
+ ITEM_FLAG4_KEEP_THROUGH_FACTION_CHANGE = 0x04000000,
+ ITEM_FLAG4_NOT_MULTICRAFTABLE = 0x08000000,
+ ITEM_FLAG4_DONT_REPORT_LOOT_LOG_TO_SELF = 0x10000000,
};
enum ItemFlagsCustom
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 8b0a25ddcc2..1ce8798ec1a 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -16147,7 +16147,7 @@ QuestGiverStatus Player::GetQuestDialogStatus(Object const* questgiver) const
break;
case QUEST_STATUS_INCOMPLETE:
if (quest->IsImportant())
- result |= QuestGiverStatus::ImportantQuestReward;
+ result |= QuestGiverStatus::ImportantReward;
else if (quest->GetQuestTag() == QuestTagType::CovenantCalling)
result |= QuestGiverStatus::CovenantCallingReward;
else if (quest->HasFlagEx(QUEST_FLAGS_EX_LEGENDARY))
@@ -16187,7 +16187,7 @@ QuestGiverStatus Player::GetQuestDialogStatus(Object const* questgiver) const
if (quest->IsImportant())
result |= isTrivial ? QuestGiverStatus::TrivialImportantQuest : QuestGiverStatus::ImportantQuest;
else if (quest->GetQuestTag() == QuestTagType::CovenantCalling)
- result |= isTrivial ? QuestGiverStatus::TrivialCovenantCallingQuest : QuestGiverStatus::CovenantCallingQuest;
+ result |= QuestGiverStatus::CovenantCallingQuest;
else if (quest->HasFlagEx(QUEST_FLAGS_EX_LEGENDARY))
result |= isTrivial ? QuestGiverStatus::TrivialLegendaryQuest : QuestGiverStatus::LegendaryQuest;
else if (quest->IsDaily())
@@ -16195,6 +16195,8 @@ QuestGiverStatus Player::GetQuestDialogStatus(Object const* questgiver) const
else
result |= isTrivial ? QuestGiverStatus::Trivial : QuestGiverStatus::Quest;
}
+ else if (quest->IsImportant())
+ result |= QuestGiverStatus::FutureImportantQuest;
else if (quest->HasFlagEx(QUEST_FLAGS_EX_LEGENDARY))
result |= QuestGiverStatus::FutureLegendaryQuest;
else
diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h
index 559ba2efd24..e64bdee1124 100644
--- a/src/server/game/Quests/QuestDef.h
+++ b/src/server/game/Quests/QuestDef.h
@@ -176,12 +176,13 @@ enum class QuestGiverStatus : uint64
FutureLegendaryQuest = 0x000800000,
LegendaryReward = 0x001000000,
ImportantQuest = 0x002000000,
- ImportantQuestReward = 0x004000000,
+ ImportantReward = 0x004000000,
TrivialImportantQuest = 0x008000000,
+ FutureImportantQuest = 0x010000000,
ImportantQuestRewardCompleteNoPOI = 0x020000000,
ImportantQuestRewardCompletePOI = 0x040000000,
TrivialJourneyQuest = 0x080000000,
- TrivialCovenantCallingQuest = 0x100000000,
+ FutureJourneyQuest = 0x100000000,
};
DEFINE_ENUM_FLAG(QuestGiverStatus);
@@ -283,7 +284,10 @@ enum QuestFlagsEx2 : uint32
QUEST_FLAGS_EX2_DISPLAY_TIME_REMAINING = 0x00020000,
QUEST_FLAGS_EX2_CLEAR_TASK_PROGRESS_WHEN_ABANDONED = 0x00040000,
QUEST_FLAGS_EX2_SUPPRESS_GREETINGS_ON_COMPLETE = 0x00080000,
- QUEST_FLAGS_EX2_HIDE_REQUIRED_ITEMS_ON_TURN_IN = 0x00100000
+ QUEST_FLAGS_EX2_HIDE_REQUIRED_ITEMS_ON_TURN_IN = 0x00100000,
+ QUEST_FLAGS_EX2_IGNORE_SOULBOUND_ITEMS = 0x00200000,
+ QUEST_FLAGS_EX2_DONT_DEFER_START_EFFECTS = 0x00400000,
+ QUEST_FLAGS_EX2_HIDE_REQUIRED_ITEMS_PRE_TURN_IN = 0x00800000,
};
enum QuestSpecialFlags
@@ -351,14 +355,16 @@ enum QuestObjectiveType
enum QuestObjectiveFlags
{
- QUEST_OBJECTIVE_FLAG_TRACKED_ON_MINIMAP = 0x01, // client displays large yellow blob on minimap for creature/gameobject
- 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_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
+ QUEST_OBJECTIVE_FLAG_TRACKED_ON_MINIMAP = 0x0001, // client displays large yellow blob on minimap for creature/gameobject
+ QUEST_OBJECTIVE_FLAG_SEQUENCED = 0x0002, // client will not see the objective displayed until all previous objectives are completed
+ QUEST_OBJECTIVE_FLAG_OPTIONAL = 0x0004, // not required to complete the quest
+ QUEST_OBJECTIVE_FLAG_HIDDEN = 0x0008, // never displayed in quest log
+ QUEST_OBJECTIVE_FLAG_HIDE_CREDIT_MSG = 0x0010, // skip showing item objective progress
+ QUEST_OBJECTIVE_FLAG_PRESERVE_QUEST_ITEMS = 0x0020,
+ QUEST_OBJECTIVE_FLAG_PART_OF_PROGRESS_BAR = 0x0040, // hidden objective used to calculate progress bar percent (quests are limited to a single progress bar objective)
+ QUEST_OBJECTIVE_FLAG_KILL_PLAYERS_SAME_FACTION = 0x0080,
+ QUEST_OBJECTIVE_FLAG_NO_SHARE_PROGRESS = 0x0100,
+ QUEST_OBJECTIVE_FLAG_IGNORE_SOULBOUND_ITEMS = 0x0200,
};
enum class QuestCompleteSpellType : uint32