aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjoschiwald <joschiwald.trinity@gmail.com>2016-12-03 16:45:30 +0100
committerjoschiwald <joschiwald.trinity@gmail.com>2016-12-03 16:45:30 +0100
commit7ee0e2ad08fa73a1f71fe12bbac293c9a24dc0c5 (patch)
tree0d0612244d31b7fcf607d6a48c590dfebc153365 /src
parente66acf820b3cf1df56bc93a8ac75e151fd7718b5 (diff)
Core/Packets: added SMSG_PLAY_SPEAKERBOT_SOUND packet class
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Object/Object.cpp15
-rw-r--r--src/server/game/Entities/Object/Object.h4
-rw-r--r--src/server/game/Server/Packets/MiscPackets.cpp8
-rw-r--r--src/server/game/Server/Packets/MiscPackets.h13
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
5 files changed, 30 insertions, 12 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 7efce3d5976..edd737b1771 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -2978,23 +2978,20 @@ bool WorldObject::IsInPhase(WorldObject const* obj) const
return Trinity::Containers::Intersects(_phases.begin(), _phases.end(), obj->GetPhases().begin(), obj->GetPhases().end());
}
-void WorldObject::PlayDistanceSound(uint32 sound_id, Player* target /*= NULL*/)
+void WorldObject::PlayDistanceSound(uint32 soundId, Player* target /*= nullptr*/)
{
- WorldPacket data(SMSG_PLAY_SPEAKERBOT_SOUND, 4 + 8);
- data << uint32(sound_id);
- data << GetGUID();
if (target)
- target->SendDirectMessage(&data);
+ target->SendDirectMessage(WorldPackets::Misc::PlaySpeakerbotSound(GetGUID(), soundId).Write());
else
- SendMessageToSet(&data, true);
+ SendMessageToSet(WorldPackets::Misc::PlaySpeakerbotSound(GetGUID(), soundId).Write(), true);
}
-void WorldObject::PlayDirectSound(uint32 sound_id, Player* target /*= NULL*/)
+void WorldObject::PlayDirectSound(uint32 soundId, Player* target /*= nullptr*/)
{
if (target)
- target->SendDirectMessage(WorldPackets::Misc::PlaySound(GetGUID(), sound_id).Write());
+ target->SendDirectMessage(WorldPackets::Misc::PlaySound(GetGUID(), soundId).Write());
else
- SendMessageToSet(WorldPackets::Misc::PlaySound(GetGUID(), sound_id).Write(), true);
+ SendMessageToSet(WorldPackets::Misc::PlaySound(GetGUID(), soundId).Write(), true);
}
void WorldObject::DestroyForNearbyPlayers()
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index 082f3dde6d7..bbab30659b2 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -610,8 +610,8 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
virtual uint8 getLevelForTarget(WorldObject const* /*target*/) const { return 1; }
- void PlayDistanceSound(uint32 sound_id, Player* target = NULL);
- void PlayDirectSound(uint32 sound_id, Player* target = NULL);
+ void PlayDistanceSound(uint32 soundId, Player* target = nullptr);
+ void PlayDirectSound(uint32 soundId, Player* target = nullptr);
virtual void SaveRespawnTime() { }
void AddObjectToRemoveList();
diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp
index 6cde22d5130..dbd8771d9f2 100644
--- a/src/server/game/Server/Packets/MiscPackets.cpp
+++ b/src/server/game/Server/Packets/MiscPackets.cpp
@@ -442,6 +442,14 @@ WorldPacket const* WorldPackets::Misc::PlaySound::Write()
return &_worldPacket;
}
+WorldPacket const* WorldPackets::Misc::PlaySpeakerbotSound::Write()
+{
+ _worldPacket << SourceObjectGUID;
+ _worldPacket << int32(SoundKitID);
+
+ return &_worldPacket;
+}
+
void WorldPackets::Misc::FarSight::Read()
{
Enable = _worldPacket.ReadBit();
diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h
index 7985b0085c5..47dc8ea29eb 100644
--- a/src/server/game/Server/Packets/MiscPackets.h
+++ b/src/server/game/Server/Packets/MiscPackets.h
@@ -611,6 +611,19 @@ namespace WorldPackets
int32 SoundKitID = 0;
};
+ class TC_GAME_API PlaySpeakerbotSound final : public ServerPacket
+ {
+ public:
+ PlaySpeakerbotSound() : ServerPacket(SMSG_PLAY_SPEAKERBOT_SOUND, 20) { }
+ PlaySpeakerbotSound(ObjectGuid const& sourceObjectGUID, int32 soundKitID)
+ : ServerPacket(SMSG_PLAY_SPEAKERBOT_SOUND, 20), SourceObjectGUID(sourceObjectGUID), SoundKitID(soundKitID) { }
+
+ WorldPacket const* Write() override;
+
+ ObjectGuid SourceObjectGUID;
+ int32 SoundKitID = 0;
+ };
+
class CompleteCinematic final : public ClientPacket
{
public:
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 9a04e018908..fc636fa7f87 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1505,7 +1505,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_ORPHAN_SPELL_VISUAL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
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_SPEAKERBOT_SOUND, STATUS_NEVER, 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);