aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitchesD <majklprofik@seznam.cz>2015-07-16 22:01:22 +0200
committerMitchesD <majklprofik@seznam.cz>2015-07-16 22:01:22 +0200
commitcf9fa507d0f7c75632b253bfbb78e140a637e7a5 (patch)
treec506669f41df77b68e764d6875bfa208203d1721
parent8340ea4566d260ac0f341450e7623f0d2f3b488d (diff)
Core/PacketIO: updated CMSG_SUMMON_RESPONSE
-rw-r--r--src/server/game/Handlers/MovementHandler.cpp9
-rw-r--r--src/server/game/Server/Packets/MovementPackets.cpp6
-rw-r--r--src/server/game/Server/Packets/MovementPackets.h11
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
-rw-r--r--src/server/game/Server/WorldSession.h3
5 files changed, 22 insertions, 9 deletions
diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp
index 13914adcae3..597ddc296cd 100644
--- a/src/server/game/Handlers/MovementHandler.cpp
+++ b/src/server/game/Handlers/MovementHandler.cpp
@@ -511,17 +511,12 @@ void WorldSession::HandleMovementAckMessage(WorldPackets::Movement::MovementAckM
GetPlayer()->ValidateMovementInfo(&movementAck.Ack.movementInfo);
}
-void WorldSession::HandleSummonResponseOpcode(WorldPacket& recvData)
+void WorldSession::HandleSummonResponseOpcode(WorldPackets::Movement::SummonResponse& packet)
{
if (!_player->IsAlive() || _player->IsInCombat())
return;
- ObjectGuid summoner_guid;
- bool agree;
- recvData >> summoner_guid;
- recvData >> agree;
-
- _player->SummonIfPossible(agree);
+ _player->SummonIfPossible(packet.Accept);
}
void WorldSession::HandleSetCollisionHeightAck(WorldPackets::Movement::MoveSetCollisionHeightAck& setCollisionHeightAck)
diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp
index 789c37cd72a..65847ccfa6e 100644
--- a/src/server/game/Server/Packets/MovementPackets.cpp
+++ b/src/server/game/Server/Packets/MovementPackets.cpp
@@ -674,3 +674,9 @@ void WorldPackets::Movement::MoveTimeSkipped::Read()
_worldPacket >> MoverGUID;
_worldPacket >> TimeSkipped;
}
+
+void WorldPackets::Movement::SummonResponse::Read()
+{
+ _worldPacket >> SummonerGUID;
+ Accept = _worldPacket.ReadBit();
+}
diff --git a/src/server/game/Server/Packets/MovementPackets.h b/src/server/game/Server/Packets/MovementPackets.h
index 2543a990937..22d1b62a08c 100644
--- a/src/server/game/Server/Packets/MovementPackets.h
+++ b/src/server/game/Server/Packets/MovementPackets.h
@@ -401,6 +401,17 @@ namespace WorldPackets
ObjectGuid MoverGUID;
uint32 TimeSkipped = 0;
};
+
+ class SummonResponse final : public ClientPacket
+ {
+ public:
+ SummonResponse(WorldPacket&& packet) : ClientPacket(CMSG_SUMMON_RESPONSE, std::move(packet)) { }
+
+ void Read() override;
+
+ bool Accept = false;
+ ObjectGuid SummonerGUID;
+ };
}
ByteBuffer& operator<<(ByteBuffer& data, Movement::MonsterSplineFilterKey const& monsterSplineFilterKey);
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 8d59f77b0ea..b497c7830a0 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -761,7 +761,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_STAND_STATE_CHANGE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::StandStateChange, &WorldSession::HandleStandStateChangeOpcode);
DEFINE_HANDLER(CMSG_START_SPECTATOR_WAR_GAME, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_START_WAR_GAME, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
- DEFINE_OPCODE_HANDLER_OLD(CMSG_SUMMON_RESPONSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSummonResponseOpcode );
+ DEFINE_HANDLER(CMSG_SUMMON_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Movement::SummonResponse, &WorldSession::HandleSummonResponseOpcode);
DEFINE_HANDLER(CMSG_SUPPORT_TICKET_SUBMIT_BUG, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Ticket::SupportTicketSubmitBug, &WorldSession::HandleSupportTicketSubmitBug);
DEFINE_HANDLER(CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Ticket::SupportTicketSubmitComplaint, &WorldSession::HandleSupportTicketSubmitComplaint);
DEFINE_HANDLER(CMSG_SUPPORT_TICKET_SUBMIT_SUGGESTION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Ticket::SupportTicketSubmitSuggestion, &WorldSession::HandleSupportTicketSubmitSuggestion);
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index 2ff82e187bd..e8627f1ed22 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -360,6 +360,7 @@ namespace WorldPackets
class SetActiveMover;
class MoveSetCollisionHeightAck;
class MoveTimeSkipped;
+ class SummonResponse;
}
namespace NPC
@@ -1313,7 +1314,7 @@ class WorldSession
void HandleQueryCorpseLocation(WorldPackets::Query::QueryCorpseLocationFromClient& packet);
void HandleQueryCorpseTransport(WorldPackets::Query::QueryCorpseTransport& packet);
void HandleResurrectResponse(WorldPackets::Misc::ResurrectResponse& packet);
- void HandleSummonResponseOpcode(WorldPacket& recvData);
+ void HandleSummonResponseOpcode(WorldPackets::Movement::SummonResponse& packet);
void HandleJoinChannel(WorldPackets::Channel::JoinChannel& packet);
void HandleLeaveChannel(WorldPackets::Channel::LeaveChannel& packet);