diff options
author | Trista <aconstantgoal@abv.bg> | 2013-03-09 05:20:42 +0200 |
---|---|---|
committer | Trista <aconstantgoal@abv.bg> | 2013-03-09 05:24:33 +0200 |
commit | ed378ad63c6cb0bcb0bd8cbf3548f468e6ea1d1c (patch) | |
tree | 15a48e4afce5999b951b73cf813c6fcd27a82db3 /src/server/game/Handlers/SpellHandler.cpp | |
parent | 83c98d6dff6e3c1a4577bc206692a4f294415d66 (diff) |
Core/GameObjects: Implement support for HandleGameObjectUse from vehicle or mount
Diffstat (limited to 'src/server/game/Handlers/SpellHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/SpellHandler.cpp | 11 |
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) |