aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/QuestHandler.cpp
diff options
context:
space:
mode:
authorRat <gmstreetrat@gmail.com>2014-11-29 14:52:53 +0100
committerRat <gmstreetrat@gmail.com>2014-11-29 14:52:53 +0100
commiteda9094226983fc719378af5c1eca1a7ce93428e (patch)
tree2461148a06096691d40255452538d52e4bc8698f /src/server/game/Handlers/QuestHandler.cpp
parent8c4761e820d1185afb3d6384c47e0a53dce42fbc (diff)
parent96f9451b850994fe2e92db43b4bc6327ae7e1734 (diff)
Merge branch '6.x' of https://github.com/TrinityCore/TrinityCore into Spells
Diffstat (limited to 'src/server/game/Handlers/QuestHandler.cpp')
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp35
1 files changed, 10 insertions, 25 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index 26451751b5d..f591a5fa988 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -31,17 +31,16 @@
#include "Battleground.h"
#include "ScriptMgr.h"
#include "GameObjectAI.h"
+#include "QuestPackets.h"
-void WorldSession::HandleQuestgiverStatusQueryOpcode(WorldPacket& recvData)
+void WorldSession::HandleQuestgiverStatusQueryOpcode(WorldPackets::Quest::QuestGiverStatusQuery& packet)
{
- ObjectGuid guid;
- recvData >> guid;
uint32 questStatus = DIALOG_STATUS_NONE;
- Object* questGiver = ObjectAccessor::GetObjectByTypeMask(*_player, guid, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT);
+ Object* questGiver = ObjectAccessor::GetObjectByTypeMask(*_player, packet.QuestGiverGUID, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT);
if (!questGiver)
{
- TC_LOG_INFO("network", "Error in CMSG_QUESTGIVER_STATUS_QUERY, called for non-existing questgiver (%s)", guid.ToString().c_str());
+ TC_LOG_INFO("network", "Error in CMSG_QUESTGIVER_STATUS_QUERY, called for non-existing questgiver (%s)", packet.QuestGiverGUID.ToString().c_str());
return;
}
@@ -66,7 +65,7 @@ void WorldSession::HandleQuestgiverStatusQueryOpcode(WorldPacket& recvData)
}
//inform client about status of quest
- _player->PlayerTalkClass->SendQuestGiverStatus(questStatus, guid);
+ _player->PlayerTalkClass->SendQuestGiverStatus(questStatus, packet.QuestGiverGUID);
}
void WorldSession::HandleQuestgiverHelloOpcode(WorldPacket& recvData)
@@ -639,19 +638,14 @@ void WorldSession::HandleQuestPushResult(WorldPacket& recvPacket)
}
}
-void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket*/)
+void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPackets::Quest::QuestGiverStatusMultipleQuery& /*packet*/)
{
TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY");
- uint32 count = 0;
-
- WorldPacket data(SMSG_QUESTGIVER_STATUS_MULTIPLE, 4 + 8 + 4);
- data << uint32(count); // placeholder
+ WorldPackets::Quest::QuestGiverStatusMultiple response;
for (GuidSet::const_iterator itr = _player->m_clientGUIDs.begin(); itr != _player->m_clientGUIDs.end(); ++itr)
{
- uint32 questStatus = DIALOG_STATUS_NONE;
-
if (itr->IsAnyTypeCreature())
{
// need also pet quests case support
@@ -661,11 +655,7 @@ void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket
if (!questgiver->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER))
continue;
- questStatus = _player->GetQuestDialogStatus(questgiver);
-
- data << questgiver->GetGUID();
- data << uint32(questStatus);
- ++count;
+ response.QuestGiver.emplace_back(questgiver->GetGUID(), _player->GetQuestDialogStatus(questgiver));
}
else if (itr->IsGameObject())
{
@@ -673,16 +663,11 @@ void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket
if (!questgiver || questgiver->GetGoType() != GAMEOBJECT_TYPE_QUESTGIVER)
continue;
- questStatus = _player->GetQuestDialogStatus(questgiver);
-
- data << questgiver->GetGUID();
- data << uint32(questStatus);
- ++count;
+ response.QuestGiver.emplace_back(questgiver->GetGUID(), _player->GetQuestDialogStatus(questgiver));
}
}
- data.put<uint32>(0, count); // write real count
- SendPacket(&data);
+ SendPacket(response.Write());
}
void WorldSession::HandleQueryQuestsCompleted(WorldPacket& /*recvData*/)