aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoschiwald <joschiwald.trinity@gmail.com>2016-12-03 16:28:17 +0100
committerjoschiwald <joschiwald.trinity@gmail.com>2016-12-03 16:28:17 +0100
commite66acf820b3cf1df56bc93a8ac75e151fd7718b5 (patch)
tree6b2015efc51c77d9b210ffb1974b11d5fa05fd5b
parent4e1a263e7c8730d4bbda49cebbbec381f971164a (diff)
Core/Packets: added SMSG_PLAY_SPELL_VISUAL packet class
-rw-r--r--src/server/game/Server/Packets/SpellPackets.cpp16
-rw-r--r--src/server/game/Server/Packets/SpellPackets.h18
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
3 files changed, 35 insertions, 1 deletions
diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp
index 291acbb5381..4f50821c066 100644
--- a/src/server/game/Server/Packets/SpellPackets.cpp
+++ b/src/server/game/Server/Packets/SpellPackets.cpp
@@ -758,6 +758,22 @@ WorldPacket const* WorldPackets::Spells::CancelSpellVisual::Write()
return &_worldPacket;
}
+WorldPacket const* WorldPackets::Spells::PlaySpellVisual::Write()
+{
+ _worldPacket << Source;
+ _worldPacket << Target;
+ _worldPacket << TargetPostion;
+ _worldPacket << SpellVisualID;
+ _worldPacket << TravelSpeed;
+ _worldPacket << MissReason;
+ _worldPacket << ReflectStatus;
+ _worldPacket << Orientation;
+ _worldPacket.WriteBit(SpeedAsTime);
+ _worldPacket.FlushBits();
+
+ return &_worldPacket;
+}
+
WorldPacket const* WorldPackets::Spells::PlaySpellVisualKit::Write()
{
_worldPacket << Unit;
diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h
index 42e247b31bf..18ea49c96af 100644
--- a/src/server/game/Server/Packets/SpellPackets.h
+++ b/src/server/game/Server/Packets/SpellPackets.h
@@ -761,6 +761,24 @@ namespace WorldPackets
int32 SpellVisualID = 0;
};
+ class PlaySpellVisual final : public ServerPacket
+ {
+ public:
+ PlaySpellVisual() : ServerPacket(SMSG_PLAY_SPELL_VISUAL, 16 + 16 + 2 + 4 + 1 + 2 + 4 + 4 * 4) { }
+
+ WorldPacket const* Write() override;
+
+ ObjectGuid Source;
+ ObjectGuid Target;
+ uint16 MissReason = 0;
+ uint32 SpellVisualID = 0;
+ bool SpeedAsTime = false;
+ uint16 ReflectStatus = 0;
+ float TravelSpeed = 0.0f;
+ G3D::Vector3 TargetPostion;
+ float Orientation = 0.0f;
+ };
+
class PlaySpellVisualKit final : public ServerPacket
{
public:
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 5a573c81f19..9a04e018908 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1506,7 +1506,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SCENE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPEAKERBOT_SOUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL_KIT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_TIME_WARNING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PONG, STATUS_NEVER, CONNECTION_TYPE_REALM);