Core/Entities: Fixed transport data in update object for non-units

This commit is contained in:
Shauren
2014-11-02 18:53:15 +01:00
parent 4f7bd78b56
commit 2b0d411250
2 changed files with 7 additions and 2 deletions

View File

@@ -211,6 +211,11 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c
break;
}
if (!(flags & UPDATEFLAG_LIVING))
if (WorldObject const* worldObject = dynamic_cast<WorldObject const*>(this))
if (!worldObject->m_movementInfo.transport.guid.IsEmpty())
flags |= UPDATEFLAG_TRANSPORT_POSITION;
if (flags & UPDATEFLAG_STATIONARY_POSITION)
{
// UPDATETYPE_CREATE_OBJECT2 for some gameobject types...
@@ -355,7 +360,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, uint32 flags) const
bool PlayHoverAnim = false;
bool IsSuppressingGreetings = false;
bool HasMovementUpdate = flags & UPDATEFLAG_LIVING;
bool HasMovementTransport = flags & UPDATEFLAG_GO_TRANSPORT_POSITION;
bool HasMovementTransport = flags & UPDATEFLAG_TRANSPORT_POSITION;
bool Stationary = flags & UPDATEFLAG_STATIONARY_POSITION;
bool CombatVictim = flags & UPDATEFLAG_HAS_TARGET;
bool ServerTime = flags & UPDATEFLAG_TRANSPORT;

View File

@@ -42,7 +42,7 @@ enum OBJECT_UPDATE_FLAGS
UPDATEFLAG_LIVING = 0x0008,
UPDATEFLAG_STATIONARY_POSITION = 0x0010,
UPDATEFLAG_VEHICLE = 0x0020,
UPDATEFLAG_GO_TRANSPORT_POSITION = 0x0040,
UPDATEFLAG_TRANSPORT_POSITION = 0x0040,
UPDATEFLAG_ROTATION = 0x0080,
UPDATEFLAG_ANIMKITS = 0x0100,
//UPDATEFLAG_AREATRIGGER = 0x0200,