aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/SpellHandler.cpp
diff options
context:
space:
mode:
authorVincent_Michael <Vincent_Michael@gmx.de>2013-03-10 01:08:55 +0100
committerVincent_Michael <Vincent_Michael@gmx.de>2013-03-10 01:08:55 +0100
commita9b740ab747332dde2967426027c43f98efbebac (patch)
tree04f3999dd51a9eb2d7811f751dad124242390fb8 /src/server/game/Handlers/SpellHandler.cpp
parent83a5043741c0ef3d96ff59571305eae30d360ed5 (diff)
parentf3617abdba8c247d4e9f423e5e97e3b42dab7b41 (diff)
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/game/AI/EventAI/CreatureEventAI.cpp src/server/game/AI/EventAI/CreatureEventAIMgr.h src/server/game/Entities/Creature/Creature.cpp src/server/game/Entities/Object/Object.cpp src/server/game/Entities/Player/Player.cpp src/server/game/Entities/Unit/Unit.cpp src/server/game/Entities/Unit/Unit.h src/server/game/Guilds/Guild.cpp src/server/game/Handlers/MailHandler.cpp src/server/game/Spells/Auras/SpellAuraEffects.cpp src/server/game/Spells/Auras/SpellAuras.cpp src/server/game/Spells/SpellEffects.cpp src/server/scripts/Commands/cs_misc.cpp src/server/scripts/Commands/cs_modify.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp src/server/scripts/Kalimdor/zone_azshara.cpp src/server/scripts/Kalimdor/zone_darkshore.cpp src/server/scripts/Kalimdor/zone_durotar.cpp src/server/scripts/Kalimdor/zone_orgrimmar.cpp src/server/scripts/Spells/spell_mage.cpp src/server/shared/Packets/ByteBuffer.h
Diffstat (limited to 'src/server/game/Handlers/SpellHandler.cpp')
-rw-r--r--src/server/game/Handlers/SpellHandler.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp
index c98a9fbcb5c..6ec94e4bf52 100644
--- a/src/server/game/Handlers/SpellHandler.cpp
+++ b/src/server/game/Handlers/SpellHandler.cpp
@@ -81,7 +81,7 @@ void WorldSession::HandleClientCastFlags(WorldPacket& recvPacket, uint8 castFlag
void WorldSession::HandleUseItemOpcode(WorldPacket& recvPacket)
{
- // TODO: add targets.read() check
+ /// @todo add targets.read() check
Player* pUser = _player;
// ignore for remote control state
@@ -293,12 +293,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)
@@ -595,7 +598,7 @@ void WorldSession::HandleSpellClick(WorldPacket& recvData)
if (!unit)
return;
- // TODO: Unit::SetCharmedBy: 28782 is not in world but 0 is trying to charm it! -> crash
+ /// @todo Unit::SetCharmedBy: 28782 is not in world but 0 is trying to charm it! -> crash
if (!unit->IsInWorld())
return;