diff options
| author | Shauren <shauren.trinity@gmail.com> | 2018-04-24 23:59:37 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2018-04-24 23:59:37 +0200 |
| commit | b172ba7b8a440faf068a6ea8c60fc2a1640689a6 (patch) | |
| tree | a838680c6d7f3f7595a1352c35bdfdbfbd9d410a /src/server/game/Entities/Player | |
| parent | c05d887e8d554d51b7c0066e3acd8214eb3c3d4e (diff) | |
Core/Quests: Implemented quest greeting locales
Diffstat (limited to 'src/server/game/Entities/Player')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 21 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.h | 2 |
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); |
