aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/MovementHandler.cpp9
-rw-r--r--src/game/Player.cpp7
2 files changed, 9 insertions, 7 deletions
diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp
index f518c7f4da4..04033050b40 100644
--- a/src/game/MovementHandler.cpp
+++ b/src/game/MovementHandler.cpp
@@ -459,7 +459,16 @@ void WorldSession::HandleSetActiveMoverOpcode(WorldPacket &recv_data)
return;
if(Unit *mover = ObjectAccessor::GetUnit(*GetPlayer(), guid))
+ {
GetPlayer()->SetMover(mover);
+ if(mover != GetPlayer() && mover->canFly())
+ {
+ WorldPacket data(SMSG_MOVE_SET_CAN_FLY, 12);
+ data.append(mover->GetPackGUID());
+ data << uint32(0);
+ SendPacket(&data);
+ }
+ }
else
{
sLog.outError("HandleSetActiveMoverOpcode: incorrect mover guid: mover is " I64FMT " and should be " I64FMT, guid, _player->m_mover->GetGUID());
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 9d4f60c571d..e849311d79c 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -20215,13 +20215,6 @@ void Player::SetClientControl(Unit* target, uint8 allowMove)
GetSession()->SendPacket(&data);
if(target == this)
SetMover(this);
- else if(target->canFly())
- {
- WorldPacket data(SMSG_MOVE_SET_CAN_FLY, 12);
- data.append(target->GetPackGUID());
- data << uint32(0);
- SendDirectMessage(&data);
- }
}
void Player::UpdateZoneDependentAuras( uint32 newZone )