diff options
Diffstat (limited to 'src/server/game/Handlers/QuestHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/QuestHandler.cpp | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index 08345bc59d7..bed1cc72f66 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -340,30 +340,26 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPackets::Quest::Quest _player->PlayerTalkClass->SendQuestGiverOfferReward(quest, packet.QuestGiverGUID, true); } -void WorldSession::HandleQuestgiverRequestRewardOpcode(WorldPacket& recvData) +void WorldSession::HandleQuestgiverRequestRewardOpcode(WorldPackets::Quest::QuestGiverRequestReward& packet) { - uint32 questId; - ObjectGuid guid; - recvData >> guid >> questId; + TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_REQUEST_REWARD npc = %s, quest = %u", packet.QuestGiverGUID.ToString().c_str(), packet.QuestID); - TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_REQUEST_REWARD npc = %s, quest = %u", guid.ToString().c_str(), questId); - - Object* object = ObjectAccessor::GetObjectByTypeMask(*_player, guid, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT); - if (!object || !object->hasInvolvedQuest(questId)) + Object* object = ObjectAccessor::GetObjectByTypeMask(*_player, packet.QuestGiverGUID, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT); + if (!object || !object->hasInvolvedQuest(packet.QuestID)) return; // some kind of WPE protection if (!_player->CanInteractWithQuestGiver(object)) return; - if (_player->CanCompleteQuest(questId)) - _player->CompleteQuest(questId); + if (_player->CanCompleteQuest(packet.QuestID)) + _player->CompleteQuest(packet.QuestID); - if (_player->GetQuestStatus(questId) != QUEST_STATUS_COMPLETE) + if (_player->GetQuestStatus(packet.QuestID) != QUEST_STATUS_COMPLETE) return; - if (Quest const* quest = sObjectMgr->GetQuestTemplate(questId)) - _player->PlayerTalkClass->SendQuestGiverOfferReward(quest, guid, true); + if (Quest const* quest = sObjectMgr->GetQuestTemplate(packet.QuestID)) + _player->PlayerTalkClass->SendQuestGiverOfferReward(quest, packet.QuestGiverGUID, true); } void WorldSession::HandleQuestgiverCancel(WorldPacket& /*recvData*/) @@ -455,7 +451,7 @@ void WorldSession::HandleQuestConfirmAccept(WorldPacket& recvData) if (!_player->IsInSameRaidWith(originalPlayer)) return; - if (!!originalPlayer->CanShareQuest(questId)) + if (!originalPlayer->CanShareQuest(questId)) return; if (!_player->CanTakeQuest(quest, true)) |