Core/Units: Removed deprecated BuildMovementPacket method and updated MovementFlags2 enum

This commit is contained in:
Shauren committed 2013-04-01 14:45:47 +02:00
1 parent f63fd0bc18
commit b431a499a7
7 files changed
+177 -202

No files matched your search

+41 -22
View File
@@ -357,6 +357,8 @@ void Object::_BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
uint32 movementFlags = 0;
uint16 movementFlagsExtra = 0;
bool hasTransportTime2 = false;
bool hasTransportTime3 = false;
bool hasFallDirection = false;
bool hasFallData = false;
bool hasPitch = false;
@@ -386,15 +388,28 @@ void Object::_BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
self = ToUnit();
movementFlags = self->m_movementInfo.GetMovementFlags();
movementFlagsExtra = self->m_movementInfo.GetExtraMovementFlags();
hasPitch = ((movementFlags & (MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING)) ||
(movementFlagsExtra & MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING));
hasSpline = self->IsSplineEnabled();
hasSplineElevation = movementFlags & MOVEMENTFLAG_SPLINE_ELEVATION;
hasFallData = movementFlagsExtra & MOVEMENTFLAG2_INTERPOLATED_TURNING;
hasFallDirection = movementFlags & MOVEMENTFLAG_FALLING;
if (GetTypeId() == TYPEID_UNIT)
if (GetTypeId() == TYPEID_PLAYER)
{
hasTransportTime2 = self->m_movementInfo.bits.hasTransportTime2;
hasTransportTime3 = self->m_movementInfo.bits.hasTransportTime3;
hasPitch = self->m_movementInfo.bits.hasPitch;
hasFallData = self->m_movementInfo.bits.hasFallData;
hasFallDirection = self->m_movementInfo.bits.hasFallDirection;
hasSplineElevation = self->m_movementInfo.bits.hasSplineElevation;
}
else
{
hasTransportTime2 = self->HasExtraUnitMovementFlag(MOVEMENTFLAG2_INTERPOLATED_MOVEMENT);
hasPitch = ((movementFlags & (MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING)) ||
(movementFlagsExtra & MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING));
hasFallDirection = movementFlags & MOVEMENTFLAG_FALLING;
hasFallData = hasFallDirection; // FallDirection implies that FallData is set as well
hasSplineElevation = movementFlags & MOVEMENTFLAG_SPLINE_ELEVATION;
movementFlags &= MOVEMENTFLAG_MASK_CREATURE_ALLOWED;
}
data->WriteBit(!movementFlags);
data->WriteBit(G3D::fuzzyEq(self->GetOrientation(), 0.0f)); // Has Orientation
@@ -524,16 +539,16 @@ void Object::_BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
data->WriteByteSeq(transGuid[7]);
*data << uint32(self->GetTransTime());
*data << float(self->GetTransOffsetO());
//if (hasTransportTime2)
// *data << uint32(0);
if (hasTransportTime2)
*data << uint32(self->m_movementInfo.t_time2);
*data << float(self->GetTransOffsetY());
*data << float(self->GetTransOffsetX());
data->WriteByteSeq(transGuid[3]);
*data << float(self->GetTransOffsetZ());
data->WriteByteSeq(transGuid[0]);
//if (hasTransportTime3)
// *data << uint32(0);
if (hasTransportTime3)
*data << uint32(self->m_movementInfo.t_time3);
*data << int8(self->GetTransSeat());
data->WriteByteSeq(transGuid[1]);
@@ -582,8 +597,8 @@ void Object::_BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
data->WriteBit(transGuid[0]);
data->WriteBit(transGuid[5]);
//if (hasTransportTime3)
// *data << uint32(0);
if (hasTransportTime3)
*data << uint32(self->m_movementInfo.t_time3);
data->WriteBit(transGuid[3]);
*data << float(self->GetTransOffsetX());
@@ -597,8 +612,8 @@ void Object::_BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
*data << float(self->GetTransOffsetZ());
*data << int8(self->GetTransSeat());
*data << float(self->GetTransOffsetO());
//if (hasTransportTime2)
// *data << uint32(0);
if (hasTransportTime2)
*data << uint32(self->m_movementInfo.t_time2);
}
if (flags & UPDATEFLAG_ROTATION)
@@ -1521,9 +1536,9 @@ void MovementInfo::OutDebug()
{
sLog->outInfo(LOG_FILTER_GENERAL, "MOVEMENT INFO");
sLog->outInfo(LOG_FILTER_GENERAL, "guid " UI64FMTD, guid);
sLog->outInfo(LOG_FILTER_GENERAL, "flags %u", flags);
sLog->outInfo(LOG_FILTER_GENERAL, "flags2 %u", flags2);
sLog->outInfo(LOG_FILTER_GENERAL, "time %u current time " UI64FMTD "", flags2, uint64(::time(NULL)));
sLog->outInfo(LOG_FILTER_GENERAL, "flags %s (%u)", Movement::MovementFlags_ToString(flags).c_str(), flags);
sLog->outInfo(LOG_FILTER_GENERAL, "flags2 %s (%u)", Movement::MovementFlagsExtra_ToString(flags2).c_str(), flags2);
sLog->outInfo(LOG_FILTER_GENERAL, "time %u current time %u", time, getMSTime());
sLog->outInfo(LOG_FILTER_GENERAL, "position: `%s`", pos.ToString().c_str());
if (t_guid)
{
@@ -1534,14 +1549,19 @@ void MovementInfo::OutDebug()
sLog->outInfo(LOG_FILTER_GENERAL, "time: %u", t_time);
if (flags2 & MOVEMENTFLAG2_INTERPOLATED_MOVEMENT)
sLog->outInfo(LOG_FILTER_GENERAL, "time2: %u", t_time2);
if (bits.hasTransportTime3)
sLog->outInfo(LOG_FILTER_GENERAL, "time3: %u", t_time3);
}
if ((flags & (MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING)) || (flags2 & MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING))
sLog->outInfo(LOG_FILTER_GENERAL, "pitch: %f", pitch);
sLog->outInfo(LOG_FILTER_GENERAL, "fallTime: %u", fallTime);
if (flags & MOVEMENTFLAG_FALLING)
sLog->outInfo(LOG_FILTER_GENERAL, "j_zspeed: %f j_sinAngle: %f j_cosAngle: %f j_xyspeed: %f", j_zspeed, j_sinAngle, j_cosAngle, j_xyspeed);
if (flags & MOVEMENTFLAG_FALLING || bits.hasFallData)
{
sLog->outInfo(LOG_FILTER_GENERAL, "fallTime: %u j_zspeed: %f", fallTime, j_zspeed);
if (flags & MOVEMENTFLAG_FALLING)
sLog->outInfo(LOG_FILTER_GENERAL, "j_sinAngle: %f j_cosAngle: %f j_xyspeed: %f", j_sinAngle, j_cosAngle, j_xyspeed);
}
if (flags & MOVEMENTFLAG_SPLINE_ELEVATION)
sLog->outInfo(LOG_FILTER_GENERAL, "splineElevation: %f", splineElevation);
@@ -2522,8 +2542,7 @@ void WorldObject::BuildMonsterChat(WorldPacket* data, uint8 msgtype, char const*
void Unit::BuildHeartBeatMsg(WorldPacket* data) const
{
data->Initialize(MSG_MOVE_HEARTBEAT, 32);
data->append(GetPackGUID());
BuildMovementPacket(data);
WriteMovementInfo(*data);
}
void WorldObject::SendMessageToSet(WorldPacket* data, bool self)