aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Player
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2018-04-24 23:59:37 +0200
committerShauren <shauren.trinity@gmail.com>2018-04-24 23:59:37 +0200
commitb172ba7b8a440faf068a6ea8c60fc2a1640689a6 (patch)
treea838680c6d7f3f7595a1352c35bdfdbfbd9d410a /src/server/game/Entities/Player
parentc05d887e8d554d51b7c0066e3acd8214eb3c3d4e (diff)
Core/Quests: Implemented quest greeting locales
Diffstat (limited to 'src/server/game/Entities/Player')
-rw-r--r--src/server/game/Entities/Player/Player.cpp21
-rw-r--r--src/server/game/Entities/Player/Player.h2
2 files changed, 11 insertions, 12 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 27db6496e84..531b3bb16a0 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -14398,7 +14398,7 @@ void Player::SendPreparedGossip(WorldObject* source)
{
if (PlayerTalkClass->GetGossipMenu().Empty() && !PlayerTalkClass->GetQuestMenu().Empty())
{
- SendPreparedQuest(source->GetGUID());
+ SendPreparedQuest(source);
return;
}
}
@@ -14475,7 +14475,7 @@ void Player::OnGossipSelect(WorldObject* source, uint32 optionIndex, uint32 menu
break;
case GOSSIP_OPTION_QUESTGIVER:
PrepareQuestMenu(guid);
- SendPreparedQuest(guid);
+ SendPreparedQuest(source);
break;
case GOSSIP_OPTION_VENDOR:
case GOSSIP_OPTION_ARMORER:
@@ -14645,7 +14645,7 @@ void Player::PrepareQuestMenu(ObjectGuid guid)
}
}
-void Player::SendPreparedQuest(ObjectGuid guid)
+void Player::SendPreparedQuest(WorldObject* source)
{
QuestMenu& questMenu = PlayerTalkClass->GetQuestMenu();
if (questMenu.Empty())
@@ -14662,36 +14662,35 @@ void Player::SendPreparedQuest(ObjectGuid guid)
{
if (qmi0.QuestIcon == 4)
{
- PlayerTalkClass->SendQuestGiverRequestItems(quest, guid, CanRewardQuest(quest, false), true);
+ PlayerTalkClass->SendQuestGiverRequestItems(quest, source->GetGUID(), CanRewardQuest(quest, false), true);
return;
}
// Send completable on repeatable and autoCompletable quest if player don't have quest
/// @todo verify if check for !quest->IsDaily() is really correct (possibly not)
else
{
- Object* object = ObjectAccessor::GetObjectByTypeMask(*this, guid, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT | TYPEMASK_ITEM);
- if (!object || (!object->hasQuest(questId) && !object->hasInvolvedQuest(questId)))
+ if (!source->hasQuest(questId) && !source->hasInvolvedQuest(questId))
{
PlayerTalkClass->SendCloseGossip();
return;
}
- if (object->GetTypeId() != TYPEID_UNIT || object->GetUInt64Value(UNIT_NPC_FLAGS) & UNIT_NPC_FLAG_GOSSIP)
+ if (source->GetTypeId() != TYPEID_UNIT || source->GetUInt64Value(UNIT_NPC_FLAGS) & UNIT_NPC_FLAG_GOSSIP)
{
if (quest->IsAutoAccept() && CanAddQuest(quest, true) && CanTakeQuest(quest, true))
- AddQuestAndCheckCompletion(quest, object);
+ AddQuestAndCheckCompletion(quest, source);
if (quest->IsAutoComplete() && quest->IsRepeatable() && !quest->IsDailyOrWeekly())
- PlayerTalkClass->SendQuestGiverRequestItems(quest, guid, CanCompleteRepeatableQuest(quest), true);
+ PlayerTalkClass->SendQuestGiverRequestItems(quest, source->GetGUID(), CanCompleteRepeatableQuest(quest), true);
else
- PlayerTalkClass->SendQuestGiverQuestDetails(quest, guid, true, false);
+ PlayerTalkClass->SendQuestGiverQuestDetails(quest, source->GetGUID(), true, false);
return;
}
}
}
}
- PlayerTalkClass->SendQuestGiverQuestListMessage(guid);
+ PlayerTalkClass->SendQuestGiverQuestListMessage(source);
}
bool Player::IsActiveQuest(uint32 quest_id) const
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index a514a35d096..b167ad36423 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1357,7 +1357,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
}
void PrepareQuestMenu(ObjectGuid guid);
- void SendPreparedQuest(ObjectGuid guid);
+ void SendPreparedQuest(WorldObject* source);
bool IsActiveQuest(uint32 quest_id) const;
Quest const* GetNextQuest(ObjectGuid guid, Quest const* quest) const;
bool CanSeeStartQuest(Quest const* quest);