aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/SpellHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/SpellHandler.cpp')
-rw-r--r--src/server/game/Handlers/SpellHandler.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp
index ef5a749f9c6..d1c65951a5d 100644
--- a/src/server/game/Handlers/SpellHandler.cpp
+++ b/src/server/game/Handlers/SpellHandler.cpp
@@ -271,12 +271,15 @@ void WorldSession::HandleGameObjectUseOpcode(WorldPacket& recvData)
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Recvd CMSG_GAMEOBJ_USE Message [guid=%u]", GUID_LOPART(guid));
- // ignore for remote control state
- if (_player->m_mover != _player)
- return;
-
if (GameObject* obj = GetPlayer()->GetMap()->GetGameObject(guid))
+ {
+ // ignore for remote control state
+ if (_player->m_mover != _player)
+ if (!_player->IsOnVehicle(_player->m_mover) || !_player->IsMounted() && !obj->GetGOInfo()->IsUsableMounted())
+ return;
+
obj->Use(_player);
+ }
}
void WorldSession::HandleGameobjectReportUse(WorldPacket& recvPacket)