Core/PacketIO: updated CMSG_SUMMON_RESPONSE

This commit is contained in:
MitchesD
2015-07-16 22:01:22 +02:00
parent 8340ea4566
commit cf9fa507d0
5 changed files with 22 additions and 9 deletions

View File

@@ -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)

View File

@@ -674,3 +674,9 @@ void WorldPackets::Movement::MoveTimeSkipped::Read()
_worldPacket >> MoverGUID;
_worldPacket >> TimeSkipped;
}
void WorldPackets::Movement::SummonResponse::Read()
{
_worldPacket >> SummonerGUID;
Accept = _worldPacket.ReadBit();
}

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);