aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-01-12 19:08:37 +0100
committerShauren <shauren.trinity@gmail.com>2016-01-12 19:08:37 +0100
commit3c3cde028cbcab64d463707e192fc333d8cadda0 (patch)
tree063001766192e333c035a9009d89b889b963f7a9 /src/server/game/Entities
parente203d78d2a6daa2dc28fc41769e416753a10c08c (diff)
Core/Quests: Fixed quest sharing
Closes #12304 Closes #16183
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/Creature/GossipDef.cpp4
-rw-r--r--src/server/game/Entities/Player/Player.cpp8
2 files changed, 3 insertions, 9 deletions
diff --git a/src/server/game/Entities/Creature/GossipDef.cpp b/src/server/game/Entities/Creature/GossipDef.cpp
index be8553ed47a..711196f6a2b 100644
--- a/src/server/game/Entities/Creature/GossipDef.cpp
+++ b/src/server/game/Entities/Creature/GossipDef.cpp
@@ -408,10 +408,10 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* quest, ObjectGuid npcGU
data << questTitle;
data << questDetails;
data << questObjectives;
- data << uint8(activateAccept ? 1 : 0); // auto finish
+ data << uint8(activateAccept ? 1 : 0); // CGQuestInfo::m_autoLaunched
data << uint32(quest->GetFlags()); // 3.3.3 questFlags
data << uint32(quest->GetSuggestedPlayers());
- data << uint8(0); // IsFinished? value is sent back to server in quest accept packet
+ data << uint8(0); // CGQuestInfo::m_startQuestCheat
if (quest->HasFlag(QUEST_FLAGS_HIDDEN_REWARDS))
{
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 4fdf25e41c3..95e76a25763 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -15638,13 +15638,7 @@ QuestStatus Player::GetQuestStatus(uint32 quest_id) const
bool Player::CanShareQuest(uint32 quest_id) const
{
Quest const* qInfo = sObjectMgr->GetQuestTemplate(quest_id);
- if (qInfo && qInfo->HasFlag(QUEST_FLAGS_SHARABLE))
- {
- QuestStatusMap::const_iterator itr = m_QuestStatus.find(quest_id);
- if (itr != m_QuestStatus.end())
- return itr->second.Status == QUEST_STATUS_INCOMPLETE;
- }
- return false;
+ return qInfo && qInfo->HasFlag(QUEST_FLAGS_SHARABLE) && IsActiveQuest(quest_id);
}
void Player::SetQuestStatus(uint32 questId, QuestStatus status, bool update /*= true*/)