diff options
| author | Duarte Duarte <dnpd.dd@gmail.com> | 2015-02-12 02:37:42 +0000 |
|---|---|---|
| committer | Duarte Duarte <dnpd.dd@gmail.com> | 2015-02-12 02:37:42 +0000 |
| commit | 20aa605485a0772910766255a8e5e4ba2f2d92bc (patch) | |
| tree | 9dcde00afcaa7cb6638e0fb813ef48bc7ab8f8ff /src/server/game/Server | |
| parent | 6678635cc7e4df00a265d19653dbbfc2ef5c8eec (diff) | |
Core/Packets: Update and enable CMSG_USE_ITEM
Ref #14115
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/SpellPackets.cpp | 9 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/SpellPackets.h | 19 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.h | 3 |
4 files changed, 27 insertions, 6 deletions
diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp index bc1507ebadb..b88f876dd49 100644 --- a/src/server/game/Server/Packets/SpellPackets.cpp +++ b/src/server/game/Server/Packets/SpellPackets.cpp @@ -223,6 +223,15 @@ void WorldPackets::Spells::PetCastSpell::Read() _worldPacket >> Cast; } + +void WorldPackets::Spells::UseItem::Read() +{ + _worldPacket >> PackSlot; + _worldPacket >> Slot; + _worldPacket >> CastItem; + _worldPacket >> Cast; +} + ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Spells::TargetLocation const& targetLocation) { data << targetLocation.Transport; diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h index 7cc6e322387..ed84885f0a0 100644 --- a/src/server/game/Server/Packets/SpellPackets.h +++ b/src/server/game/Server/Packets/SpellPackets.h @@ -188,8 +188,8 @@ namespace WorldPackets struct SpellCastRequest { uint8 CastID = 0; - uint32 SpellID = 0; - uint32 Misc = 0; + int32 SpellID = 0; + int32 Misc = 0; uint8 SendCastFlags = 0; SpellTargetData Target; MissileTrajectoryRequest MissileTrajectory; @@ -201,7 +201,6 @@ namespace WorldPackets class CastSpell final : public ClientPacket { public: - CastSpell(WorldPacket&& packet) : ClientPacket(CMSG_CAST_SPELL, std::move(packet)) { } void Read() override; @@ -212,7 +211,6 @@ namespace WorldPackets class PetCastSpell final : public ClientPacket { public: - PetCastSpell(WorldPacket&& packet) : ClientPacket(CMSG_PET_CAST_SPELL, std::move(packet)) { } void Read() override; @@ -221,6 +219,19 @@ namespace WorldPackets SpellCastRequest Cast; }; + class UseItem final : public ClientPacket + { + public: + UseItem(WorldPacket&& packet) : ClientPacket(CMSG_USE_ITEM, std::move(packet)) { } + + void Read() override; + + uint8 PackSlot; + uint8 Slot; + ObjectGuid CastItem; + SpellCastRequest Cast; + }; + struct SpellMissStatus { uint8 Reason = 0; diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 74ca625ab6c..8230a246265 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -886,7 +886,7 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_USED_FOLLOW, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_USE_CRITTER_ITEM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_USE_EQUIPMENT_SET, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetUse ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_USE_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleUseItemOpcode ); + DEFINE_HANDLER(CMSG_USE_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Spells::UseItem, &WorldSession::HandleUseItemOpcode); DEFINE_OPCODE_HANDLER_OLD(CMSG_USE_TOY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_HANDLER(CMSG_VIOLENCE_LEVEL, STATUS_AUTHED, PROCESS_INPLACE, WorldPackets::Misc::ViolenceLevel, &WorldSession::HandleViolenceLevel); DEFINE_OPCODE_HANDLER_OLD(CMSG_VOICE_ADD_IGNORE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index b2c2e94534e..e6b5b3b215d 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -281,6 +281,7 @@ namespace WorldPackets class CancelAura; class CastSpell; class PetCastSpell; + class UseItem; class SetActionButton; } @@ -997,7 +998,7 @@ class WorldSession void HandleAttackStopOpcode(WorldPackets::Combat::AttackStop& packet); void HandleSetSheathedOpcode(WorldPacket& recvPacket); - void HandleUseItemOpcode(WorldPacket& recvPacket); + void HandleUseItemOpcode(WorldPackets::Spells::UseItem& packet); void HandleOpenItemOpcode(WorldPacket& recvPacket); void HandleCastSpellOpcode(WorldPackets::Spells::CastSpell& castRequest); void HandleCancelCastOpcode(WorldPacket& recvPacket); |
