aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Object/Object.cpp15
-rw-r--r--src/server/game/Entities/Object/Object.h1
2 files changed, 16 insertions, 0 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 75f9ec052f4..a83dfea2a48 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -3575,6 +3575,21 @@ void WorldObject::PlayDirectMusic(uint32 musicId, Player* target /*= nullptr*/)
SendMessageToSet(WorldPackets::Misc::PlayMusic(musicId).Write(), true);
}
+void WorldObject::PlayObjectSound(int32 soundKitId, ObjectGuid targetObjectGUID, Player* target /*= nullptr*/, int32 broadcastTextId /*= 0*/)
+{
+ WorldPackets::Misc::PlayObjectSound pkt;
+ pkt.TargetObjectGUID = targetObjectGUID;
+ pkt.SourceObjectGUID = GetGUID();
+ pkt.SoundKitID = soundKitId;
+ pkt.Position = GetPosition();
+ pkt.BroadcastTextID = broadcastTextId;
+
+ if (target)
+ target->SendDirectMessage(pkt.Write());
+ else
+ SendMessageToSet(pkt.Write(), true);
+}
+
void WorldObject::DestroyForNearbyPlayers()
{
if (!IsInWorld())
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index b1281a3cff7..7be261600a7 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -580,6 +580,7 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
void PlayDistanceSound(uint32 soundId, Player* target = nullptr);
void PlayDirectSound(uint32 soundId, Player* target = nullptr, uint32 broadcastTextId = 0);
void PlayDirectMusic(uint32 musicId, Player* target = nullptr);
+ void PlayObjectSound(int32 soundKitId, ObjectGuid targetObject, Player* target = nullptr, int32 broadcastTextId = 0);
void AddObjectToRemoveList();