Rebase resync

This commit is contained in:
Antz 2020-02-17 09:19:44 +00:00
parent a0797532e8
commit 1997c1e903
3106 changed files with 11118 additions and 627576 deletions

View file

@ -1,4 +1,4 @@
/*
/**
* This code is part of MaNGOS. Contributor & Copyright details are in AUTHORS/THANKS.
*
* This program is free software; you can redistribute it and/or modify
@ -32,7 +32,7 @@
#include "MapPersistentStateMgr.h"
#include "ObjectMgr.h"
void WorldSession::HandleMoveWorldportAckOpcode(WorldPacket& /*recv_data*/)
void WorldSession::HandleMoveWorldportAckOpcode(WorldPacket & /*recv_data*/)
{
DEBUG_LOG("WORLD: got MSG_MOVE_WORLDPORT_ACK.");
HandleMoveWorldportAckOpcode();
@ -252,9 +252,12 @@ void WorldSession::HandleMoveTeleportAckOpcode(WorldPacket& recv_data)
void WorldSession::HandleMovementOpcodes(WorldPacket& recv_data)
{
uint32 opcode = recv_data.GetOpcode();
DEBUG_LOG("WORLD: Recvd %s (%u, 0x%X) opcode", LookupOpcodeName(opcode), opcode, opcode);
recv_data.hexlike();
Opcodes opcode = recv_data.GetOpcode();
if (!sLog.HasLogFilter(LOG_FILTER_PLAYER_MOVES))
{
DEBUG_LOG("WORLD: Received opcode %s (%u, 0x%X)", LookupOpcodeName(opcode), opcode, opcode);
recv_data.hexlike();
}
Unit* mover = _player->GetMover();
Player* plMover = mover->GetTypeId() == TYPEID_PLAYER ? (Player*)mover : NULL;
@ -291,8 +294,8 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recv_data)
void WorldSession::HandleForceSpeedChangeAckOpcodes(WorldPacket& recv_data)
{
uint32 opcode = recv_data.GetOpcode();
DEBUG_LOG("WORLD: Recvd %s (%u, 0x%X) opcode", LookupOpcodeName(opcode), opcode, opcode);
Opcodes opcode = recv_data.GetOpcode();
DEBUG_LOG("WORLD: Received %s (%u, 0x%X) opcode", recv_data.GetOpcodeName(), opcode, opcode);
/* extract packet */
ObjectGuid guid;
@ -363,7 +366,7 @@ void WorldSession::HandleForceSpeedChangeAckOpcodes(WorldPacket& recv_data)
void WorldSession::HandleSetActiveMoverOpcode(WorldPacket& recv_data)
{
DEBUG_LOG("WORLD: Recvd CMSG_SET_ACTIVE_MOVER");
DEBUG_LOG("WORLD: Received opcode CMSG_SET_ACTIVE_MOVER");
recv_data.hexlike();
ObjectGuid guid;
@ -379,22 +382,18 @@ void WorldSession::HandleSetActiveMoverOpcode(WorldPacket& recv_data)
void WorldSession::HandleMoveNotActiveMoverOpcode(WorldPacket& recv_data)
{
DEBUG_LOG("WORLD: Recvd CMSG_MOVE_NOT_ACTIVE_MOVER");
DEBUG_LOG("WORLD: Received opcode CMSG_MOVE_NOT_ACTIVE_MOVER");
recv_data.hexlike();
ObjectGuid old_mover_guid;
MovementInfo mi;
recv_data >> old_mover_guid.ReadAsPacked();
recv_data >> mi;
if (_player->GetMover()->GetObjectGuid() == old_mover_guid)
if (_player->GetMover()->GetObjectGuid() == mi.GetGuid())
{
sLog.outError("HandleMoveNotActiveMover: incorrect mover guid: mover is %s and should be %s instead of %s",
_player->GetMover()->GetGuidStr().c_str(),
_player->GetGuidStr().c_str(),
old_mover_guid.GetString().c_str());
recv_data.rpos(recv_data.wpos()); // prevent warnings spam
mi.GetGuid().GetString().c_str());
return;
}
@ -403,7 +402,7 @@ void WorldSession::HandleMoveNotActiveMoverOpcode(WorldPacket& recv_data)
void WorldSession::HandleMountSpecialAnimOpcode(WorldPacket& /*recvdata*/)
{
// DEBUG_LOG("WORLD: Recvd CMSG_MOUNTSPECIAL_ANIM");
// DEBUG_LOG("WORLD: Received opcode CMSG_MOUNTSPECIAL_ANIM");
WorldPacket data(SMSG_MOUNTSPECIAL_ANIM, 8);
data << GetPlayer()->GetObjectGuid();
@ -425,40 +424,36 @@ void WorldSession::HandleMoveKnockBackAck(WorldPacket& recv_data)
return;
}
ObjectGuid guid;
MovementInfo movementInfo;
recv_data >> guid.ReadAsPacked();
recv_data >> Unused<uint32>(); // knockback packets counter
recv_data >> movementInfo;
if (!VerifyMovementInfo(movementInfo, guid))
if (!VerifyMovementInfo(movementInfo, movementInfo.GetGuid()))
return;
HandleMoverRelocation(movementInfo);
WorldPacket data(MSG_MOVE_KNOCK_BACK, recv_data.size() + 15);
data << mover->GetPackGUID();
WorldPacket data(SMSG_MOVE_UPDATE_KNOCK_BACK, recv_data.size() + 15);
data << movementInfo;
data << movementInfo.GetJumpInfo().sinAngle;
data << movementInfo.GetJumpInfo().cosAngle;
data << movementInfo.GetJumpInfo().xyspeed;
data << movementInfo.GetJumpInfo().velocity;
mover->SendMessageToSetExcept(&data, _player);
}
void WorldSession::SendKnockBack(float angle, float horizontalSpeed, float verticalSpeed)
{
ObjectGuid guid = GetPlayer()->GetObjectGuid();
float vsin = sin(angle);
float vcos = cos(angle);
WorldPacket data(SMSG_MOVE_KNOCK_BACK, 9 + 4 + 4 + 4 + 4 + 4);
data << GetPlayer()->GetPackGUID();
data << uint32(0); // Sequence
data << float(vcos); // x direction
WorldPacket data(SMSG_MOVE_KNOCK_BACK, 9 + 4 + 4 + 4 + 4 + 4 + 1 + 8);
data.WriteGuidMask<0, 3, 6, 7, 2, 5, 1, 4>(guid);
data.WriteGuidBytes<1>(guid);
data << float(vsin); // y direction
data << uint32(0); // Sequence
data.WriteGuidBytes<6, 7>(guid);
data << float(horizontalSpeed); // Horizontal speed
data.WriteGuidBytes<4, 5, 3>(guid);
data << float(-verticalSpeed); // Z Movement speed (vertical)
data << float(vcos); // x direction
data.WriteGuidBytes<2, 0>(guid);
SendPacket(&data);
}