aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorDuarte Duarte <dnpd.dd@gmail.com>2015-02-12 02:37:42 +0000
committerDuarte Duarte <dnpd.dd@gmail.com>2015-02-12 02:37:42 +0000
commit20aa605485a0772910766255a8e5e4ba2f2d92bc (patch)
tree9dcde00afcaa7cb6638e0fb813ef48bc7ab8f8ff /src/server/game/Server
parent6678635cc7e4df00a265d19653dbbfc2ef5c8eec (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.cpp9
-rw-r--r--src/server/game/Server/Packets/SpellPackets.h19
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
-rw-r--r--src/server/game/Server/WorldSession.h3
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);