From 4c96c5039d685b6d2b00d5a439e0a0d12af8403a Mon Sep 17 00:00:00 2001 From: false_genesis Date: Mon, 18 Feb 2008 23:14:31 +0000 Subject: [PATCH] * fixed MSG_MOVE_HEARTBEAT packet handling * correctly update WorldObject positions, but SMSG_MONSTER_MOVE not yet handled (not necessary atm) --- src/Client/World/UpdateData.cpp | 2 ++ src/Client/World/WorldSession.cpp | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Client/World/UpdateData.cpp b/src/Client/World/UpdateData.cpp index bd02f0f..3a0341c 100644 --- a/src/Client/World/UpdateData.cpp +++ b/src/Client/World/UpdateData.cpp @@ -241,6 +241,8 @@ void WorldSession::_MovementUpdate(uint8 objtypeid, uint64 uguid, WorldPacket& r { recvPacket >> x >> y >> z >> o; logdev("FLOATS: x=%f y=%f z=%f o=%f",x,y,z,o); + if(obj->IsWorldObject()) + ((WorldObject*)obj)->SetPosition(x,y,z,o); } } diff --git a/src/Client/World/WorldSession.cpp b/src/Client/World/WorldSession.cpp index 1565b89..a35c155 100644 --- a/src/Client/World/WorldSession.cpp +++ b/src/Client/World/WorldSession.cpp @@ -800,12 +800,18 @@ void WorldSession::_HandleGroupInviteOpcode(WorldPacket& recvPacket) void WorldSession::_HandleMovementOpcode(WorldPacket& recvPacket) { - uint32 flags, time; + uint32 flags, time, unk32; float x, y, z, o; uint64 guid; - std::string plrname; + uint8 unk8; guid = recvPacket.GetPackedGuid(); - recvPacket >> flags >> time >> x >> y >> z >> o; + recvPacket >> flags >> unk8 >> time >> x >> y >> z >> o >> unk32; + DEBUG(logdebug("MOVE: "I64FMT" -> time=%u flags=%u x=%.4f y=%.4f z=%.4f o=%.4f",guid,time,flags,x,y,z,o)); + Object *obj = objmgr.GetObj(guid); + if(obj && obj->IsWorldObject()) + { + ((WorldObject*)obj)->SetPosition(x,y,z,o); + } } void WorldSession::_HandleTelePortAckOpcode(WorldPacket& recvPacket)